1. 학습
  2. /
  3. 강의
  4. /
  5. 효율적인 R 코드 작성

Connected

연습 문제

Timings parSapply()

주사위 게임 실행은 매우 병렬화가 쉬운(embarrassingly parallel) 작업입니다. 이런 종류의 시뮬레이션은 보통(항상은 아니지만) 좋은 속도 향상을 제공합니다. 이전과 마찬가지로 microbenchmark() 또는 system.time()을 사용할 수 있어요. 이번 연습에서는 단순화를 위해 system.time()을 사용하겠습니다.

지침

100 XP

play() 함수가 작업 공간에 정의되어 있습니다. 백만이 아니라 십만 번의 게임을 실행한다고 가정하겠습니다.

  • no_of_games를 1e5로 설정하세요.
  • 직렬로 play()를 반복 호출하는 데 걸리는 시간을 측정하려면 system.time()을 사용하세요.
    • 1:no_of_games와 play() 래퍼 함수를 사용해 sapply()를 호출하세요.
    • 결과를 serial에 할당하세요.
    • 이 호출을 system.time()으로 감싸 시간을 측정하세요.
  • 4코어 클러스터 객체를 만들고 play() 함수를 해당 클러스터에 내보내세요.
  • 병렬로 play()를 반복 호출하는 데 걸리는 시간을 system.time()으로 측정하세요.
    • serial을 만들 때 사용한 코드를 병렬에 맞게 수정해 보세요.