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

Переход к parApply

Для параллельного выполнения кода с помощью пакета parallel используется следующий базовый процесс из трёх шагов.

  1. Создайте кластер с помощью makeCluster().
  2. Выполните нужные вычисления.
  3. Остановите кластер с помощью stopCluster().

Простейший способ создать кластер — передать число в makeCluster(). Это создаст кластер стандартного типа, который будет выполнять код на указанном количестве ядер.

Объект dd — это таблица данных с 10 столбцами и 100 строками. Следующий код использует apply() для вычисления медиан по столбцам:

apply(dd, 2, median)

Чтобы выполнить это в параллельном режиме, замените apply() на parApply(). Аргументы этой функции совпадают с аргументами apply(), за исключением того, что перед обычными аргументами нужно указать объект кластера.

Это упражнение является частью курса

Эффективный код на R

Посмотреть курс

Инструкции к упражнению

  • Используйте функцию detectCores(), чтобы вывести количество доступных ядер в консоль.
  • Создайте кластер с помощью makeCluster(), задав количество ядер равным 2. Сохраните результат в переменную cl.
  • Перепишите приведённую выше функцию apply(), используя parApply(). Обратите внимание: первым аргументом теперь должен быть объект кластера cl.
  • Остановите кластер с помощью stopCluster().

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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)
Редактировать и запускать код