2015-03-29 17 views
6

C'è un modo per ottenere J per utilizzare più core? Pensavo che parte del vantaggio di APL/J fosse che i costrutti linguistici si prestavano bene a soluzioni parallele.Multi-core J - Parallelizzazione

Guardando al mio utilizzo della CPU (sono su OSX) c'è chiaramente solo un singolo processore in uso.

Ho una funzione heavy-f che agisce su un elenco e non vedo perché non è stato possibile dividere l'elenco in 4 parti e riassemblare i risultati?

+0

Sfortunatamente no, ma se hai scritto la tua soluzione in modo orientato all'array, puoi eseguire più istanze del tuo programma per diversi segmenti dei tuoi array. – Eelvex

+2

Questo è un peccato. Qualunque dialetto di APL esegue multi-core? – user1202733

+0

Mi sono imbattuto praticamente nello stesso problema, quindi ho adottato un approccio un po 'più radicale, ho deciso di scrivere un compilatore per un linguaggio che è fondamentalmente J. Gli obiettivi includono il supporto multi-core, il supporto GPGPU (CUDA/OpenCL), e la distribuzione del compito su LAN. Non è ancora finito, ma puoi tenere il passo con i progressi su https://github.com/Synthetica9/HyperJ – Synthetica

risposta

0

ArrayFire potrebbe valerne la pena. Il suo OpenCL con supporto per AMD/nvidia e backback di riserva alla CPU. La sua elaborazione di array. Dovrebbe legarsi facilmente a J, come nel Matlab.