Микробенчмарк выручки
Вы работаете аналитиком данных в интернет-магазине. Вы выгрузили данные о продажах различных товаров за один месяц. В вашем рабочем пространстве доступен список 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
___