parallel पैकेज - parApply

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

Colin Gillespie

Jumping Rivers & Newcastle University

parallel पैकेज

  • 2011 से R का हिस्सा
    library("parallel")
    
    • क्रॉस-प्लेटफ़ॉर्म: कोड Windows, Linux, Mac पर चलता है
    • मानक फंक्शनों के parallel वर्शन उपलब्ध
कार्यकुशल R कोड लिखना

apply() फंक्शन

  • apply() एक for loop जैसा है

    • हम मैट्रिक्स की हर रो/कॉलम पर एक फंक्शन लागू करते हैं
  • 10 कॉलम, 10,000 रो वाली मैट्रिक्स:

m <- matrix(rnorm(100000), ncol = 10)
  • apply, for loop से सुथरा है
res <- apply(m, 1, median)
कार्यकुशल R कोड लिखना

Parallel में कन्वर्ट करना

  • पैकेज लोड करें
    • कोर की संख्या तय करें
    • एक क्लस्टर ऑब्जेक्ट बनाएँ
    • parApply() पर स्विच करें
    • स्टॉप!
library("parallel")
copies_of_r <- 7
cl <- makeCluster(copies_of_r)
parApply(cl, m, 1, median)
stopCluster(cl)
कार्यकुशल R कोड लिखना

बुरी खबर

जैसा Lewis Caroll ने कहा था

The hurrier I go, the behinder I get.

  • कभी-कभी थ्रेड कम्युनिकेशन के कारण parallel रन धीमा होता है
# Serial version
apply(m, 1, median)
# Parallel version
parApply(cl, m, 1, median)
  • दोनों समाधानों का बेंचमार्क करें
कार्यकुशल R कोड लिखना

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

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

Preparing Video For Download...