parApply로 전환하기
parallel 패키지를 사용해 코드를 병렬로 실행하려면 기본 워크플로는 세 단계로 구성돼요.
makeCluster()로 클러스터를 만듭니다.- 작업을 수행합니다.
stopCluster()로 클러스터를 중지합니다.
가장 간단한 방법은 makeCluster()에 숫자를 전달하는 거예요. 이렇게 하면 기본 유형의 클러스터가 생성되고, 해당 개수만큼의 코어에서 코드가 실행됩니다.
객체 dd는 열이 10개, 행이 100개인 데이터 프레임입니다. 다음 코드는 apply()를 사용해 각 열의 중앙값을 계산해요:
apply(dd, 2, median)
이를 병렬로 실행하려면 parApply()로 apply()를 바꾸면 됩니다. 이 함수의 인자는 동일하지만, 일반적인 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)