2015-03-29 9 views
6

Gibt es eine Möglichkeit, J dazu zu bringen, mehrere Kerne zu verwenden? Ich dachte, ein Teil des Vorteils von APL/J war, dass die Sprachkonstrukte sich gut für parallele Lösungen eignen.Multi-Core J - Parallelisierung

Mit Blick auf meine CPU-Auslastung (ich bin auf OSX) gibt es eindeutig nur einen einzigen Prozessor im Einsatz.

Ich habe eine schwere Funktion f auf einer Liste zu handeln, und ich sehe nicht, warum es die Liste nicht in 4 Teile teilen konnte, und die Ergebnisse wieder zusammensetzen?

+0

Leider nicht, aber wenn Sie Ihre Lösung in Array-orientierter Weise geschrieben haben, können Sie mehrere Instanzen Ihres Programms für verschiedene Segmente Ihrer Arrays ausführen. – Eelvex

+2

Das ist schade. Läuft in einem APL-Dialekt Multi-Core? – user1202733

+0

Ich stieß im Grunde auf das gleiche Problem, so nahm ich ein bisschen mehr von einem radikalen Ansatz, entschied ich, einen Compiler für eine Sprache zu schreiben, die im Grunde J ist. Die Ziele umfassen Multi-Core-Unterstützung, GPGPU (CUDA/OpenCL) Unterstützung, und die Verteilung der Aufgabe über LAN. Es ist noch nicht fertig, aber Sie können mit dem Fortschritt bei https://github.com/Synthetica9/HyperJ – Synthetica

Antwort

0

ArrayFire kann einen Blick wert sein. Sein OpenCL mit Unterstützung für AMD/NVIDIA und Rückwärtsfallen auf CPU. Seine Array-Verarbeitung. Es sollte leicht an J binden, wie es in Matlab tut.