Мікробенчмарк для виручки
Ви працюєте дата-аналітиком в онлайн-магазині. Ви отримали дані про продажі різних товарів за місяць. У вашому робочому середовищі це список ls_sales. Кожен елемент цього списку — вектор значень виручки для певного товару.
Ви хочете подивитися, як змінювалася виручка день за днем. Це означає обчислити кумулятивну суму. У базовому R є функція cumsum(), яка це робить. Але ви хочете перевірити, чи допоможе паралелізація. Ви плануєте застосувати cumsum() до кожного елемента ls_sales послідовно і паралельно та порівняти результати. Пакети parallel і microbenchmark уже завантажено для вас.
Ця вправа є частиною курсу
Паралельне програмування в R
Інструкції до вправи
- Передайте послідовну й паралельну версії як аргументи у виклик
microbenchmark(). - Створіть кластер з усіх доступних ядер мінус два.
- Використайте кластер, щоб застосувати
cumsum()доls_salesпаралельно за допомогоюparLapply(). - Зупиніть кластер після завершення обчислень.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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
___