ПочатиПочніть безкоштовно

Переходимо на 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)
Редагувати та запускати код