การรันโค้ดบน cluster
คุณทำงานให้กับบริษัทที่ปรึกษาด้านข้อมูล ซึ่งใช้โค้ด R แบบ parallel เป็นจำนวนมาก แต่ช่วงนี้ผลลัพธ์เริ่มไม่สม่ำเสมอ บางครั้งโค้ดให้ผลลัพธ์ที่แตกต่างกันแม้จะใช้ input เดิม ก่อนจะแก้ไขปัญหาเพิ่มเติม คุณจึงตัดสินใจตรวจสอบเบื้องต้นกับแต่ละ cluster
คุณได้สร้างตัวแปร test_var และคำนวณผลรวมของสมาชิกทั้งหมดไว้ในตัวแปร test_sum แล้ว ต่อไปจะตรวจสอบว่าแต่ละ cluster สามารถรวมค่าของตัวแปรนี้ได้อย่างถูกต้องหรือไม่ โดย package parallel ถูกโหลดให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมแบบขนานใน R
คำแนะนำการฝึกหัด
- สร้าง cluster ที่มี 4 cores
- ส่งออก
test_varและtest_sumไปยัง cluster - แสดงผล "Accuracy OK" หากผลรวมของ
test_varเท่ากับtest_sumมิฉะนั้นให้แสดงผล "Errors" - หยุดการทำงานของ cluster
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Make a cluster of four cores
cl <- ___
# Export test_var and test_sum to cluster
clusterExport(___, ___, envir = environment())
# Check the sum on cluster
clusterEvalQ(___, {
___
})
# Stop cluster
___