Chuyển sang parApply
Để chạy mã song song bằng gói parallel, quy trình cơ bản có ba bước.
- Tạo một cluster bằng
makeCluster(). - Thực hiện công việc.
- Dừng cluster bằng
stopCluster().
Cách đơn giản nhất để tạo cluster là truyền một số vào makeCluster(). Cách này tạo một cluster kiểu mặc định, chạy mã trên từng đó lõi.
Đối tượng dd là một data frame với 10 cột và 100 hàng. Đoạn mã sau dùng apply() để tính trung vị theo cột:
apply(dd, 2, median)
Để chạy phần này theo kiểu song song, bạn thay apply() bằng parApply(). Các đối số của hàm này giống nhau, ngoại trừ việc nó nhận thêm đối số cluster đứng trước các đối số thường dùng của apply().
Bài tập này là một phần của khóa học
Viết mã R hiệu quả
Hướng dẫn bài tập
- Dùng hàm
detectCores()để in số lõi khả dụng ra console. - Tạo một cluster bằng
makeCluster(); đặt số lõi sử dụng bằng 2. Lưu kết quả vàocl. - Viết lại hàm
apply()ở trên thànhparApply(). Nhớ rằng đối số đầu tiên giờ là đối tượng cluster,cl. - Dừng cluster bằng
stopCluster().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)