Sto cercando una risposta definitiva al parfor di MATLAB per Python (Scipy, Numpy).Parfor per Python
Esiste una soluzione simile a parfor? In caso contrario, qual è la complicazione per crearne uno?
UPDATE: Ecco un tipico codice di calcolo numerico che ho bisogno di accelerare
import numpy as np
N = 2000
output = np.zeros([N,N])
for i in range(N):
for j in range(N):
output[i,j] = HeavyComputationThatIsThreadSafe(i,j)
Un esempio di una funzione di calcolo pesante è:
import scipy.optimize
def HeavyComputationThatIsThreadSafe(i,j):
n = i * j
return scipy.optimize.anneal(lambda x: np.sum((x-np.arange(n)**2)), np.random.random((n,1)))[0][0,0]
+1 non sapeva di client.MultiEngineClient anche se io uso IPython. Grazie per il manzo! –
Non è chiaro per me se posso eseguire un codice accelerato con il framework di calcolo parallelo IPython in modalità di script, cioè non eseguendo ipython. –
@Dat Chu: Certo che puoi. Basta scrivere i comandi che dovresti digitare al prompt in un file ed eseguirlo con Python. (È questo che stai chiedendo?) –