Ho uno script che viene eseguito ripetutamente e restituisce un risultato per ogni riga nella tabella dei dati.Non posso essere scomposto in un'operazione per ogni cella della tabella, quindi ogni iterazione restituisce un vettore di risultati corrispondente a un valore per ogni riga della tabella dati.
dt=current data table();
nr=n rows(dt);
result=J(nr, 1, .)
/*
script body assigns values to result vector
*/
result;
Devo ripetere questa operazione centinaia o migliaia di volte e ogni iterazione richiede circa 0,5 secondi.Raccolgo tutti i risultati restituiti in una matrice che poi verrà ulteriormente riassunta.L'ordine dei risultati generati non ha importanza.
Se questo potesse essere parallelizzato/multi-thread, funzionerebbe molto più velocemente.
Voglio usare la funzione Parallel Assign (), che ha la sintassi.Penso che quello che devo fare è creare una variabile globale matrice_risultato = [], passalo alla funzione locale utilizzata in Parallel Assign() e quindi alla fine dell'espressione aggiungi the risultato vettore al matrice_risultato.matrice_risultato avrà nr righe e n_iterazioni colonne.
</CODE></PRE>
<P>Qualche suggerimento su come fare questo.In definitiva, ciò che è necessario fare è calcolare il risultato medio per ogni riga in<STRONG> matrice_risultato</STRONG> per ottenere un valore assegnato per ogni riga nella tabella dati, cioè</P>
<PRE><CODE class=" language-jsl">final_result_vector = V Mean(results_matrix`);