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

Темпи зростання населення з mclapply()

Як Statistical Programmer, ви багато бутафорите (bootstrap) в R. Одна з ваших регулярних задач — побудувати бутстрап-розподіл для середнього темпу зростання населення для різних країн за заданий період.

Поточний код у продакшені використовує кластер PSOCK і parLapply() для паралелізації цього процесу з метою пришвидшення виконання. Проте цього все ще недостатньо швидко для продакшн-потреб. Ваш керівник попросив вас порівняти продуктивність кластерів PSOCK та FORK.

gr_list завантажено у ваш робочий простір. Кожен елемент gr_list містить темпи зростання населення для певної країни з 2001 по 2021 роки. Функція бутстрапу boot_dist() також доступна. Пакети parallel та microbenchmark завантажено.

Ця вправа є частиною курсу

Паралельне програмування в R

Переглянути курс

Інструкції до вправи

  • Використайте FORK-версію parLapply().
  • Передайте список вхідних даних.
  • Передайте функцію, яку треба застосувати до кожного елемента вхідних даних.
  • Вкажіть чотири ядра для кластера FORK.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

microbenchmark(
  "PSOCK" = {
    cl <- makeCluster(4)
    parLapply(cl, gr_list, boot_dist)
    stopCluster(cl)
  },
  # Use the FORK version of parLapply()
  "FORK" = ___(
    # Supply input
    ___,
    # Supply function to apply
    ___,
    # Specify number of cores
    ___ = ___),
  times = 1)
Редагувати та запускати код