ich eine for-Schleife, die so etwas wie dieses:Lauf einer for-Schleife parallel in R
for (i=1:150000) {
tempMatrix = {}
tempMatrix = functionThatDoesSomething() #calling a function
finalMatrix = cbind(finalMatrix, tempMatrix)
}
Können Sie mir sagen, wie diese parallel zu machen?
Ich versuchte dies anhand eines Beispiels online, bin mir aber nicht sicher, ob die Syntax korrekt ist. Es hat auch die Geschwindigkeit nicht viel erhöht.
finalMatrix = foreach(i=1:150000, .combine=cbind) %dopar% {
tempMatrix = {}
tempMatrix = functionThatDoesSomething() #calling a function
cbind(finalMatrix, tempMatrix)
}
Lauf Dinge parallel erfordert einiges an Aufwand. Sie werden nur dann eine substantielle Geschwindigkeit erreichen, wenn 'functionThatDoesSomething' genügend Zeit braucht, bis sich der Overhead lohnt. – Gregor
Ich denke, es gibt auch viel mehr Arbeit, die Sie tun müssen, bevor dieser Beitrag qualifiziert ist. Suche nach 'parallel' und' doParallel' Paketen, zum Beispiel ... – gregmacfarlane
Du solltest das nicht brauchen - 'cbind (finalMatrix, tempMatrix)' - Wenn du das '.combine' Argument verwendest, gib einfach die Funktion zurück Ausgabe. – nrussell