Führen Sie das GNU Octave-Skript auf mehreren Kernen aus

Führen Sie das GNU Octave-Skript auf mehreren Kernen aus

Ich berechne Monte-Carlo-Simulationen mit GNU Octave 4.0.0 auf meinem 4-Core-PC. Die Simulation dauert fast 4 Stunden, um das Skript 50.000 Mal zu berechnen (spezifisch für mein Problem), was eine Menge Rechenzeit ist. Ich habe mich gefragt, ob es eine Möglichkeit gibt, Octave auf mehreren Kernen gleichzeitig auszuführen, um die Rechenzeit zu verkürzen.

Dank im Voraus.

Antwort1

GNU Parallel unterstützt kein Multithreading, aber esWilleFühren Sie Multiprocessing durch. Das könnte für Sie ausreichend sein:

seq 50000 | parallel my_MC_sim --iteration {}

Die Standardeinstellung ist 1 Prozess pro CPU-Kern und es wird sichergestellt, dass die Ausgabe zweier paralleler Jobs nicht vermischt wird.

Sie können diese Parallelisierung sogar in das Octave-Skript einfügen. Siehehttps://www.gnu.org/software/parallel/parallel_tutorial.html#Shebang

GNU Parallel ist ein allgemeiner Parallelisierer und erleichtert die parallele Ausführung von Jobs auf derselben Maschine oder auf mehreren Maschinen, auf die Sie SSH-Zugriff haben. Es kann häufig eine forSchleife ersetzen.

Wenn Sie 32 verschiedene Jobs haben, die Sie auf 4 CPUs ausführen möchten, können Sie die Parallelisierung ganz einfach durchführen, indem Sie auf jeder CPU 8 Jobs ausführen:

Einfache Terminplanung

GNU Parallel startet stattdessen einen neuen Prozess, wenn einer fertig ist – wodurch die CPUs aktiv bleiben und Zeit gespart wird:

GNU Parallel-Planung

Installation

Wenn GNU Parallel nicht für Ihre Distribution gepackt ist, können Sie eine persönliche Installation durchführen, für die kein Root-Zugriff erforderlich ist. Dies ist in 10 Sekunden erledigt, indem Sie Folgendes tun:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Weitere Installationsoptionen finden Sie unterhttp://git.savannah.gnu.org/cgit/parallel.git/tree/README

Erfahren Sie mehr

Weitere Beispiele:http://www.gnu.org/software/parallel/man.html

Sehen Sie sich die Einführungsvideos an:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Gehen Sie das Tutorial durch:http://www.gnu.org/software/parallel/parallel_tutorial.html

Melden Sie sich für die E-Mail-Liste an, um Unterstützung zu erhalten:https://lists.gnu.org/mailman/listinfo/parallel

verwandte Informationen