Come afferma il titolo: qual è esattamente la differenza tra @parallel
e pmap
? Non intendo che l'ovvio sia una macro per un ciclo e l'altro funzioni sulle funzioni, intendo esattamente come differisce la loro implementazione e come dovrei usare questa conoscenza per scegliere tra loro?Qual è esattamente la differenza tra @parallel e pmap?
Il motivo che mi chiedo è che molte delle applicazioni che scrivo potrebbe utilizzare costruire: Potrei scrivere un ciclo e calcolare qualcosa con @parallel
, o avvolgere quello che sarebbe stato in loop in una funzione e chiamare pmap
su quella . Ho seguito il consiglio di usare @parallel
per cose che sono veloci da valutare e pmap
per le chiamate in cui ogni attività richiede molto più tempo (come afferma nella documentazione), ma sento che se ho una migliore comprensione di ciò che sta facendo io essere in grado di fare scelte migliori
Ad esempio: lo @parallel
divide il lavoro prima di valutare? Ho notato che se eseguo un ciclo parallelo in cui ogni chiamata interna richiede una quantità casuale di tempo, lo @parallel
può richiedere molto tempo perché alla fine ho ancora pochissimi processi ancora funzionanti. pmap
sulla stessa microtest non sembra avere questo: è pmap
ridistribuire il lavoro come necessario?
Altre domande come queste derivano dalla mia ignoranza su cosa esattamente comedifferisce da @parallel
.