НачатьНачать бесплатно

Микробенчмарк выручки

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