Task से Subtasks तक
इस अभ्यास में, आप parallel computing का उपयोग करके take_mean_age() फंक्शन अप्लाई करेंगे, जो Olympics events डेटासेट में दिए गए किसी वर्ष के एथलीट की औसत आयु निकालता है। आपके लिए DataFrame athlete_events लोड किया गया है और इसमें अन्य के साथ दो कॉलम शामिल हैं:
Year: वह वर्ष जब ओलंपिक इवेंट हुआAge: ओलंपियन की आयु
आप multiprocessor.Pool API का उपयोग करेंगे, जो आपके workload को कई processes में बाँटने देता है। सैंपल कोड में parallel_apply() फंक्शन परिभाषित है। यह इनपुट के रूप में अप्लाई किया जाने वाला फंक्शन, इस्तेमाल किया गया grouping, और analysis के लिए ज़रूरी cores की संख्या लेता है। ध्यान दें कि प्रत्येक ऑपरेशन का समय मापने के लिए @print_timing डेकोरेटर का उपयोग किया गया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Introduction to Data Engineering
अभ्यास निर्देश
- कोड पूरा कीजिए ताकि आप पहले
1core के साथtake_mean_ageअप्लाई करें, फिर2और अंत में4cores के साथ.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Function to apply a function over multiple cores
@print_timing
def parallel_apply(apply_func, groups, nb_cores):
with Pool(nb_cores) as p:
results = p.map(apply_func, groups)
return pd.concat(results)
# Parallel apply using 1 core
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)
# Parallel apply using 2 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)
# Parallel apply using 4 cores
parallel_apply(take_mean_age, athlete_events.groupby('Year'), ____)