Microbenchmark: revenues
आप एक ऑनलाइन सेलर के लिए Data Analyst के रूप में काम करते हैं. आपने एक महीने में बिके अलग‑अलग प्रोडक्ट्स की सेल्स डेटा क्वेरी की है. यह आपके वर्कस्पेस में ls_sales नाम की एक लिस्ट के रूप में उपलब्ध है. इस लिस्ट का हर एलिमेंट किसी दिए गए प्रोडक्ट की revenues का एक वेक्टर है.
आप दिन‑प्रतिदिन revenue की ग्रोथ देखना चाहते हैं. इसका मतलब है cumulative sum निकालना. Base R में यह काम करने के लिए cumsum() नाम का फंक्शन है. लेकिन आप देखना चाहते हैं कि parallelization से मदद मिलती है या नहीं. आप ls_sales के हर एलिमेंट पर cumsum() को sequential तरीके से और parallel तरीके से अप्लाई करके नतीजों की तुलना करना चाहते हैं. आपके लिए parallel और microbenchmark पैकेज लोड कर दिए गए हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में पैरेलल प्रोग्रामिंग
अभ्यास निर्देश
microbenchmark()कॉल में sequential और parallel दोनों वर्ज़न को आर्ग्युमेंट्स के रूप में पास करें.- उपलब्ध सभी cores में से दो घटाकर उतने का एक क्लस्टर बनाइए.
parLapply()का उपयोग करके उस क्लस्टर परls_salesके लिएcumsum()को parallel में अप्लाई कीजिए.- computation पूरा होने पर क्लस्टर को रोक दीजिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Pass the code to microbenchmark
___
"lapply" = lapply(ls_sales, cumsum),
"parLapply" = {
# Make a cluster of all cores minus two
cluster <- ___
# Use cluster to apply in parallel
parLapply(cluster, ___, ___)
# Stop cluster
___
},
times = 3
___