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

อัตราการเติบโตของประชากรด้วย 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)
แก้ไขและรันโค้ด