mclapply()로 인구 증가율 계산하기
통계 프로그래머로서 R에서 부트스트래핑을 자주 수행하십니다. 정기적으로 진행하는 분석 중 하나는 주어진 기간 동안 여러 국가의 평균 인구 증가율에 대한 분포를 부트스트랩으로 추정하는 일입니다.
현재 운영 코드에서는 PSOCK 클러스터와 parLapply()를 사용해 이 과정을 병렬화하여 효율적으로 실행하고 있습니다. 그러나 운영 환경의 요구에는 여전히 속도가 부족합니다. 상사는 PSOCK과 FORK 클러스터의 성능을 비교해 보라고 요청했습니다.
gr_list는 작업 공간에 로드되어 있습니다. gr_list의 각 원소에는 2001년부터 2021년까지 특정 국가의 인구 증가율이 담겨 있습니다. 부트스트랩 함수 boot_dist()도 제공됩니다. parallel과 microbenchmark 패키지는 로드되어 있습니다.
이 연습은 강의의 일부입니다
R의 병렬 프로그래밍
연습 안내
parLapply()의 FORK 버전을 사용하세요.- 입력 리스트를 전달하세요.
- 입력의 각 원소에 적용할 함수를 지정하세요.
- FORK 클러스터의 코어 수를 4개로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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)