Đo vi mô hiệu năng cho doanh thu
Bạn là Data Analyst cho một nhà bán hàng trực tuyến. Bạn đã truy vấn dữ liệu bán hàng cho nhiều sản phẩm được bán trong một tháng. Dữ liệu này có sẵn trong không gian làm việc của bạn dưới dạng một list, ls_sales. Mỗi phần tử của list là một vector doanh thu của một sản phẩm.
Bạn muốn xem doanh thu tăng lên từng ngày như thế nào, tức là cần tính tổng tích lũy. Base R có hàm cumsum() để làm việc này. Nhưng bạn muốn kiểm tra xem chạy song song có giúp ích không. Bạn sẽ áp dụng cumsum() cho từng phần tử của ls_sales theo cách tuần tự và cách song song rồi so sánh kết quả. Các gói parallel và microbenchmark đã được nạp sẵn cho bạn.
Bài tập này là một phần của khóa học
Lập trình song song trong R
Hướng dẫn bài tập
- Truyền cả phiên bản tuần tự và phiên bản song song làm đối số cho một lời gọi
microbenchmark(). - Tạo một cluster sử dụng toàn bộ số lõi khả dụng trừ đi hai.
- Dùng cluster để áp dụng
cumsum()lênls_salestheo cách song song bằngparLapply(). - Dừng cluster sau khi tính toán xong.
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.
# Pass the code to microbenchmark
___
"lapply" = lapply(ls_sales, cumsum),
"parLapply" = {
# Make a cluster of all cores minus two
cluster <- ___
# Use cluster to apply in parallel
parLapply(cluster, ___, ___)
# Stop cluster
___
},
times = 3
___