2013-02-19 9 views
0

여기에 누구도 R에서 스노우 클러스터로 빅 매트릭을 성공적으로 내보냈습니까? bigmatrix 및 attach.resource의 예제에서 주석 처리 된 행은 그렇게 할 수 있다고 말했지만 성공하지는 못했습니다.bigmatrix를 스노우 클러스터로 내보낼 때 R이 충돌 함

library(bigmemory) 
library(snow) 
z <- big.matrix(3, 3, type='integer', init=3) 
cl = makeCluster(8, type = "SOCK") 
clusterEvalQ(cl,{library(bigmemory)}) 
zdescription <- describe(z) 
clusterExport(cl,"zdescription") 
clusterEvalQ(cl,{y <- attach.resource(zdescription)}) #attach.big.matrix also crashes 

또한 내가 마지막으로 문제를 발견

[[1]] 
Warning: This is not advised. Here is the head of the matrix: 

*** caught segfault *** 
address 0x10, cause 'memory not mapped' 

Traceback: 
1: .Call("CGetNrow", [email protected]) 
2: nrow(x) 
3: nrow(x) 
4: .local(x, ...) 
5: head(x) 
6: head(x) 

Possible actions: 
1: abort (with core dump, if enabled) 
2: normal R exit 
3: exit R without saving workspace 
4: exit R saving workspace 

답변

1

(이 경우에도 공유 메모리를 사용하지 않기 때문에 이상하다) 큰 행렬을 백업 파일을 사용하는 경우에도 충돌합니다. 결과를 인쇄하는 동안 문제가 발생한 것처럼 보입니다.

obj이 big.matrix 인 경우 big.clusterEvalQ(cl,{obj})은 오류를 발생시킵니다.

clusterEvalQ(cl,{y <- attach.resource(zdescription);1}) 
:

그래서 문제를 해결하는 방법이 simplily attach.resource 기능 후 일정을 추가하는 것입니다