DoMC를 사용하여 병렬 foreach 루프를 작성하려고하지만 이상한 행동이 진행되고 있습니다. 코드는이R for foreops for 루프를 포함하는 foreach
for (file in files) {
do stuff
for (extra in extras) {
do some heavy stuff
}
}
- 나는 DoMC 또는 DoParallel로드, 루프가 하나 개의 코어를 사용하는 시작처럼 보이지만 두 번째 루프는 4 개 코어를 활용
- 나는 루프 foreach는 할 %를 전환 할 때 정확히 똑같은 동작을합니다.
- 외부 루프에 foreach를 사용하고 내부 루프를 for 루프로두면 스크립트가 느려집니다. 그것은 4jobs 병렬로 시작하고 그들은 모두 중지하고 점진적으로 CPU 사용이 감소합니다.
내가 원하는 것은 내부 루프가 아닌 상단 루프를 병렬 처리하는 것입니다. 누가 무슨 일이 일어날 지 알고 있니? 나는 과거에 foreach와 doMC를 사용 해본 적이 없으며 이전에는이 문제가 없었습니다.
감사합니다. 감사합니다. 문제가 다르기 때문에 새로운 질문을 게시해야합니다. – Michael
내부 계산과 변환이 많은 매우 큰 데이터 세트를 wrrking하는 경우 CPU가 작동하는 속도를 높이면 급격한 메모리 팽창이 발생할 가능성이 있습니다.'rm()'과'gc()'를 사용해보십시오. 프레임 또는 파일에 영구 메모리에 추가 된 후 임시 데이터를 지우는 것이 좋습니다. 메모리가 지워지면 새 멀티 코어 프로그램을 따라갈 수 있습니다. – sconfluentus