किस तरह की समस्याएँ parallel computing से लाभ पाती हैं

कार्यकुशल R कोड लिखना

Colin Gillespie

Jumping Rivers & Newcastle University

खाना बनाना

एक अतिरिक्त मदद

बहुत सारे रसोइए

बहुत सारे रसोइए शोरबा बिगाड़ रहे हैं

कार्यकुशल R कोड लिखना

समानांतर चलाना

  • हर analysis कई cores का लाभ नहीं ले सकता
    • कई statistical algorithms सिर्फ एक core ही उपयोग कर सकते हैं

तो parallel computing कहाँ मदद करती है?

कार्यकुशल R कोड लिखना

Monte-Carlo simulations

for(i in 1:8)
    sims[i] <- monte_carlo()
# User defined function
combine_simulations(sims)
  • 8 core मशीन
    • प्रति core एक simulation
    • अंत में results को combine करें
  • Embarrassingly parallel
कार्यकुशल R कोड लिखना

सब कुछ parallel नहीं चलता

x <- 1:8
for(i in 2:8)
    x[i] <- x[i-1]
x[8] = x[7] = ... x[2] = x[1] = 1
  • क्या इसे parallel चलाया जा सकता है?
    • नहीं
      • लेकिन parallel computing में evaluation का order predict नहीं किया जा सकता
      • हमें गलत उत्तर मिलेगा, क्योंकि x[3] शायद x[2] से पहले evaluate हो जाए
कार्यकुशल R कोड लिखना

अनुमान का नियम

क्या loop आगे और पीछे दोनों तरह चल सकता है?

for(i in 1:8)
    sim[i] <- monte_carlo_simulation()

for(i in 8:1)
    sim[i] <- monte_carlo_simulation()
  • दोनों loops समान परिणाम देते हैं
  • इसलिए हम loops को parallel चला सकते हैं
कार्यकुशल R कोड लिखना

अनुमान का नियम

क्या loop आगे और पीछे दोनों तरह चल सकता है?

x <- 1:8
for(i in 2:8)
    x[i] <- x[i-1]
for(i in 8:2)
    x[i] <- x[i-1]
  • इन loops के उत्तर अलग आते हैं
    • पहला: x[8] = x[7] = ... = 1
    • दूसरा: x[8] = x[7] = 7
  • parallel computing उपयोग नहीं कर सकते

याद रखें: अगर आप अपना loop उल्टा चला सकते हैं, तो आप संभवतः parallel computing उपयोग कर सकते हैं.

कार्यकुशल R कोड लिखना

अभ्यास करते हैं!

कार्यकुशल R कोड लिखना

Preparing Video For Download...