อัตราการเติบโตของประชากรด้วย mclapply()
ในฐานะนักเขียนโปรแกรมสถิติ คุณทำ bootstrapping ใน R เป็นประจำ หนึ่งในการวิเคราะห์ที่ทำบ่อยคือการ bootstrap การแจกแจงสำหรับค่าเฉลี่ยอัตราการเติบโตของประชากรในแต่ละประเทศตามช่วงเวลาที่กำหนด
โค้ดที่ใช้งานอยู่ในปัจจุบันใช้คลัสเตอร์แบบ PSOCK และ parLapply() เพื่อประมวลผลแบบขนาน อย่างไรก็ตาม ยังทำงานช้าเกินไปสำหรับความต้องการในการผลิต หัวหน้าจึงขอให้เปรียบเทียบประสิทธิภาพระหว่างคลัสเตอร์แบบ PSOCK และ FORK
gr_list ถูกโหลดไว้ในพื้นที่ทำงานแล้ว แต่ละ element ของ gr_list มีข้อมูลอัตราการเติบโตของประชากรของแต่ละประเทศตั้งแต่ปี 2001 ถึง 2021 ฟังก์ชัน bootstrap ชื่อ boot_dist() ก็พร้อมใช้งานเช่นกัน และโหลดแพ็กเกจ parallel และ microbenchmark ไว้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนโปรแกรมแบบขนานใน R
คำแนะนำการฝึกหัด
- ใช้
parLapply()เวอร์ชัน FORK - ระบุรายการ input ที่ต้องการ
- ระบุฟังก์ชันที่จะนำไปใช้กับแต่ละ element ใน input
- กำหนดจำนวนคอร์เป็น 4 คอร์สำหรับคลัสเตอร์แบบ FORK
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
microbenchmark(
"PSOCK" = {
cl <- makeCluster(4)
parLapply(cl, gr_list, boot_dist)
stopCluster(cl)
},
# Use the FORK version of parLapply()
"FORK" = ___(
# Supply input
___,
# Supply function to apply
___,
# Specify number of cores
___ = ___),
times = 1)