2015-03-29 11 views
6

Czy istnieje sposób, aby J użył wielu rdzeni? Sądziłem, że częścią korzyści z APL/J jest to, że konstrukcje językowe dobrze nadają się do rozwiązań równoległych.Wielordzeniowe J - Paralelizacja

Patrząc na moje wykorzystanie procesora (jestem na OSX) jest wyraźnie tylko jeden procesor w użyciu.

Mam ciężką funkcję działającą na liście i nie rozumiem, dlaczego nie można podzielić listy na 4 części i ponownie złożyć wyniki?

+0

Niestety nie, ale jeśli napisałeś swoje rozwiązanie w sposób zorientowany na tablicę, możesz uruchomić wiele instancji programu dla różnych segmentów swoich tablic. – Eelvex

+2

Szkoda. Czy jakikolwiek dialekt APL działa wielordzeniowo? – user1202733

+0

Wpadłem na ten sam problem, więc podjąłem nieco radykalne podejście, postanowiłem napisać kompilator dla języka, który jest w zasadzie J. Cele obejmują obsługę wielu rdzeni, obsługę GPGPU (CUDA/OpenCL), i dystrybucja zadania za pośrednictwem sieci LAN. To jeszcze nie koniec, ale możesz być na bieżąco z postępem na https://github.com/Synthetica9/HyperJ – Synthetica

Odpowiedz

0

ArrayFire może warto zaglądać. Jego OpenCL z obsługą AMD/nvidia i backward fallback do CPU. Przetwarzanie macierzy. Powinien on łatwo wiązać się z J, tak jak w matlabie.