2014-06-20 6 views
2

병렬을 사용 중입니다. stopCluster (cl) 코드가 실행되기 전에 코드가 중단되면 (예 : 버그가 있거나 R 콘솔이 종료 된 경우) R 프로세스가 계속 실행됩니다! 새로운 MacBook Pro를 사용하고 있습니다. 내 활동 모니터에서는 R 콘솔을 종료 한 후에도 8 개의 R 프로세스가 실행중인 것을 볼 수 있습니다. 내가 그들을 막을 수있는 유일한 방법은 내 컴퓨터를 다시 시작하는 것입니다. 또한 활동 모니터에서 개별적으로 개별적으로 종료 할 수 있습니다. 더 나은 해결책이 있습니까?R 종료 후 R 프로세스가 중지되지 않음

cl <- makeCluster(getOption('cl.cores', detectCores())) 
clusterEvalQ(cl, library(data.table)) 
clusterEvalQ(cl, require(zoo)) 
... 
stopCluster(cl) 
+0

그게 내가'터미널에서 불량 R 인스턴스 pid' 죽일 발생합니다. – JeremyS

답변

2

당신은 parallel 패키지에 mcKill 낮은 수준의 기능을 사용할 수 있습니다 :

는 자식 프로세스에 신호를 보낸다는 패키지 도구에서 pskill에 해당합니다.

예 : 리눅스에

p <- mcparallel(scan(n = 1, quiet = TRUE)) 
parallel:::mckill(p) 
[1] TRUE 
parallel:::mckill(p) ## check that the process is really killed 
Error in FUN(3202L[[1L]], ...) : 'mckill' failed