Темпи зростання населення з 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)