Ho un ciclo for che è qualcosa di simile:corsa un ciclo for in parallelo a R
for (i=1:150000) {
tempMatrix = {}
tempMatrix = functionThatDoesSomething() #calling a function
finalMatrix = cbind(finalMatrix, tempMatrix)
}
Potrebbe dirmi come fare questo parallelo?
Ho provato questo in base a un esempio online, ma non sono sicuro che la sintassi sia corretta. Inoltre non ha aumentato la velocità molto.
finalMatrix = foreach(i=1:150000, .combine=cbind) %dopar% {
tempMatrix = {}
tempMatrix = functionThatDoesSomething() #calling a function
cbind(finalMatrix, tempMatrix)
}
gestire le cose in parallelo richiede un po 'di spese generali. Otterrai solo una notevole accelerazione se 'functionThatDoSomething 'richiede abbastanza tempo per il tuo sovraccarico. – Gregor
Penso che ci sia anche molto più lavoro che devi fare prima che questo post sia qualificato. Cerca i pacchetti 'paralleli' e' doParallel', ad esempio ... – gregmacfarlane
Non dovresti aver bisogno di questo - 'cbind (finalMatrix, tempMatrix)' - se stai usando l'argomento '.combine', restituisci la funzione produzione. – nrussell