Questi sono i miei primi passi con il calcolo parallelo in R. Il codice seguente genera il seguente errore. Sono senza tracce, dal momento che non c'è alcuna funzione di mclapply in ciò che ho scritto, almeno non l'ho esplicitamente messo.paralleli foreach loop producono errori mclapply
Errore:
Error in mclapply(argsList, FUN, mc.preschedule = preschedule, mc.set.seed = set.seed, :
(list) object cannot be coerced to type 'integer'
Calls: %dopar% -> <Anonymous> -> mclapply
Execution halted
Codice:
dist<-array(0, dim=c(320,500,25))
mc<-8
cl<-makeCluster(mc)
registerDoMC(cl)
opts<-list(chunkSize=10)
for(a in 1:25) {
dist[,,a]<-foreach(x=1:500, .combine='cbind', .options.mc=opts) %:%
foreach(y=1:320, .combine='c') %dopar% {
gcd.slc(crdsx[y,x], crdsy[y,x], lot[a,5], lot[a,4])
}
}
stopCluster(cl)
su una macchina diversa, funziona bene con
registerDoParallel(cl)
invece di
registerDoMC(cl)
puoi aggiungere sessionInfo() all'OP? –
Quando si registra un backend parallelo con 'registerDoMC', la funzione' doMC' è impostata per l'esecuzione quando si chiama la funzione '% dopar%'. 'doMC' include una chiamata a' mclapply', quindi è da dove viene. – BenBarnes