शुरू करेंमुफ़्त में शुरू करें

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
___
कोड संपादित करें और चलाएँ