clusterMap() ile sağlık harcamaları
Yakın zamanda yapılan bir sağlık konferansında, toplam sağlık harcamalarının dünya genelinde arttığı iddia edildi.
Sen de oradaydın ve bu iddiayı test etmek için kabaca bazı tahminler almak istiyorsun. 2000 yılından itibaren kişi başı sağlık harcamasını ve nüfusu veren bir veri kümesi buldun. Elinde iki liste var: ls_pop ve ls_exp. Bunlar sırasıyla her ülke için nüfus büyüklüklerini ve kişi başı sağlık harcamasını içeriyor.
İki argüman alan total_exp() adlı bir fonksiyonun var: pop (nüfus) ve exp_pc (kişi başı sağlık harcaması). Bu fonksiyon toplam harcamayı ABD doları cinsinden milyarlar olarak döndürür. Bu fonksiyonu ls_pop ve ls_exp üzerinde paralel olarak uygulamak istiyorsun. parallel paketi yüklendi.
Bu egzersiz, kursun bir parçasıdır
R'da Paralel Programlama
Egzersiz talimatları
total_exp()fonksiyonunuls_popvels_explistesinin her bir elemanına paralel olarak uygula.total_exp()fonksiyonununpopargümanına hangi listenin elemanlarının verileceğini belirt.- Benzer şekilde,
total_exp()fonksiyonununexp_pcargümanına verilecek listeyi belirt.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
total_exp <- function (pop, exp_pc) {
sum(pop * exp_pc)/1e9
}
cl <- makeCluster(4)
# Apply total_exp using cl to multiple arguments
ls_total <- ___(___, ___,
# Specify first argument
pop = ___,
# Specify second argument
exp_pc = ___)
stopCluster(cl)
print(paste("Average yearly increase in USD billions:", round(mean(diff(unlist(ls_total))))))