การรัน chunk.apply แบบขนาน
ฟังก์ชัน chunk.apply() ยังรองรับการประมวลผลแบบขนานเพื่อให้ทำงานได้เร็วขึ้นด้วย เมื่อกำหนดพารามิเตอร์ CH.PARALLEL ให้มีค่ามากกว่าหนึ่งบนเครื่อง Linux และ Unix (รวมถึง Mac) หลายกระบวนการจะอ่านและประมวลผลข้อมูลพร้อมกัน ส่งผลให้ใช้เวลาน้อยลง อย่างไรก็ตาม บน Windows พารามิเตอร์ CH.PARALLEL จะไม่มีผล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การประมวลผลข้อมูลขนาดใหญ่ใน R
คำแนะนำการฝึกหัด
- วัดประสิทธิภาพของฟังก์ชัน
iotools_read_fun()โดยทดสอบด้วย 1 กระบวนการก่อน แล้วจึงทดสอบด้วย 3 กระบวนการแบบขนาน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
iotools_read_fun <- function(parallel) {
fc <- file("mortgage-sample.csv", "rb")
readLines(fc, n = 1)
chunk.apply(fc, make_msa_table,
CH.MAX.SIZE = 1e5, CH.PARALLEL = parallel)
close(fc)
}
# Benchmark the new function
microbenchmark(
# Use one process
___,
# Use three processes
___,
times = 20
)