เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เปลี่ยนมาใช้ parApply

การรันโค้ดแบบขนานด้วยแพ็กเกจ parallel มีขั้นตอนพื้นฐาน 3 ขั้นตอน ดังนี้

  1. สร้างคลัสเตอร์ด้วย makeCluster()
  2. ประมวลผลงานที่ต้องการ
  3. หยุดคลัสเตอร์ด้วย stopCluster()

วิธีที่ง่ายที่สุดในการสร้างคลัสเตอร์คือส่งตัวเลขให้กับ makeCluster() ซึ่งจะสร้างคลัสเตอร์แบบ default และรันโค้ดบนจำนวนคอร์ตามที่ระบุ

ออบเจกต์ dd คือ data frame ที่มี 10 คอลัมน์และ 100 แถว โค้ดด้านล่างใช้ apply() เพื่อคำนวณค่ามัธยฐานของแต่ละคอลัมน์:

apply(dd, 2, median)

หากต้องการรันแบบขนาน ให้เปลี่ยนจาก apply() เป็น parApply() โดยอาร์กิวเมนต์ของฟังก์ชันนี้เหมือนกันทุกประการ ยกเว้นจะมีอาร์กิวเมนต์ cluster เพิ่มขึ้นมาเป็นตัวแรกก่อนอาร์กิวเมนต์ปกติของ apply()

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียน R Code อย่างมีประสิทธิภาพ

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ฟังก์ชัน detectCores() เพื่อแสดงจำนวนคอร์ที่มีอยู่ใน console
  • สร้างคลัสเตอร์ด้วย makeCluster() โดยกำหนดจำนวนคอร์เป็น 2 แล้วบันทึกผลลัพธ์ไว้ในตัวแปร cl
  • เขียน apply() ข้างต้นใหม่ให้เป็น parApply() โดยอาร์กิวเมนต์แรกต้องเป็นออบเจกต์ cluster คือ cl
  • หยุดคลัสเตอร์ด้วย stopCluster()

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Determine the number of available cores
___

# Create a cluster via makeCluster
cl <- makeCluster(___)

# Parallelize this code
apply(dd, 2, median)

# Stop the cluster
stopCluster(cl)
แก้ไขและรันโค้ด