Ich benutze foreach-Paket in R. Ich tun cl<-makeCluster(no_cores,outfile='log.txt')
registerDoParallel(cl)
, um die Sockets zu öffnen, und ich verwende 10 Kerne, weil ich 10 unabhängige Berechnungen in meiner Schleife ausführen . Ich kann sehen, dass die Steckdosen geöffnet sind, bekomme ich von htop:makecluster in R öffnet parallele Buchsen aber nicht alle
32315 elise 20 0 205M 32404 3612 S 0,0 0,0 0: 00.18 ├─/usr/lib64/R/bin/exec/R --slave --no-restore -e parallel :::. slaveRSOCK() --arg MAST
32301 elise 20 0 1154M 964M 4168 R 100. 0,7 0: 08.16 us─/usr/lib64/R/bin/exec/R --slave --no-restore -e parallel :::. SlaveRSOCK() --arg MAST
32289 elise 20 0 2793M 2591M 4332 S 0.0 2.0 0: 36.99 us/usr/lib64/R/bin/exec/R --lave --no-restore -e parallel :::. slaveRSOCK() --arg MAST
...
für jede der 10 Buchsen. Mein Problem ist, dass während der Berechnung nur eine oder zwei der Kerne anstelle der 10 verwendet werden, auch wenn die 10 Berechnungen unabhängig sind. Mein R Code:
output=foreach (i=1:nb_sets,
.combine=list,
.multicombine=TRUE,
.export=c(...),
.packages = c("e1071","ROCR")) %dopar% {...}
und nb_sets = 10. Was noch seltsamer ist, ist, dass dieser Code früher gut funktionierte (Berechnungen auf den 10 Kernen wurden ziemlich schnell ausgeführt), also denke ich, dass es auf der Serverseite ein Problem geben könnte, aber ich habe keine Ahnung, was es sein könnte.
Hat jemand eine Idee von was könnte das Problem verursachen und wie es zu beheben?
Vielen Dank im Voraus!