Weisen Sie spezifische CPU-spezifische parallele Prozesse auf größeren Computertypen der Google Compute Engine zu

364
Jacob

Ich habe diese SU-Frage bereits gefunden (sie ist ähnlich, aber nicht gleich):

Beschränken der CPU-Auslastung der Google Compute Engine auf 100%

Ich möchte nicht, dass die parallele Verarbeitung voneinander getrennt wird. Die verschiedenen Prozesse müssen regelmäßig miteinander interagieren. Wenn ich das Konzept richtig verstehe, geht es bei Kubernetes darum, verschiedene Prozesse im Sandboxing (Container-Verfahren) zu behandeln, sodass dies nicht möglich ist sich aus Sicherheitsgründen gegenseitig zu stören, wird angenommen, dass es sich um die effizientere Version von Sandboxing-VMs handelt (aka ich muss mir keine Sorgen machen, dass andere Leute und ihre VMs meine VM infizieren) ...

Die einzige Alternative, die ich mir vorstellen kann, ist das Initialisieren mehrerer kleinerer VMs mit nur einer einzigen CPU, die dann über eine REST-API miteinander interagieren. Dies wäre jedoch für mein spezielles Projekt ineffizient, da der für das neuronale Netzwerk benötigte Arbeitsspeicher ein wenig ist weniger als der größte Arbeitsspeicher, der vom größten High-Memory-Maschinentyp zur Verfügung steht ... Ich weiß, dass die Intel-Chips Optimierungsfunktionen haben, aber es gibt sehr spezifische Abschnitte, die ich explizit für die parallele Verarbeitung zuweisen könnte ... hat jemand einen Link?

0

2 Antworten auf die Frage

0
Jacob

https://www.cyberciti.biz/faq/wie-nach-run-command-or-code-in-parallel-in-bash-shell-under-linux-or-unix/

Die Syntax lautet: Befehl & Befehl arg1 arg2 & custom_function &

ODER prog1 & prog2 & wait prog3

In obigem Codebeispiel würden prog1 und prog2 im Hintergrund gestartet, und die Shell würde warten, bis diese beendet sind, bevor das nächste Programm mit dem Namen progr3 gestartet wird.

Um den Status von Jobs in der aktuellen Shell-Sitzung anzuzeigen, führen Sie den Befehl jobs wie folgt aus: $ jobs

0
Jacob

http://www.acuriousanimal.com/2017/08/12/understanding-the-nodejs-cluster-module.html

NodeJS-Prozesse werden in einem einzigen Prozess ausgeführt, was bedeutet, dass sie standardmäßig nicht von Multi-Core-Systemen profitieren. Wenn Sie über eine 8-Kern-CPU verfügen und ein NodeJS-Programm über $ node app.js ausführen, wird sie in einem einzigen Prozess ausgeführt, wodurch der Rest der CPUs verschwendet wird.

Hoffentlich für uns bietet NodeJS das Cluster-Modul an, das eine Reihe von Funktionen und Eigenschaften enthält, die uns beim Erstellen von Programmen helfen, die alle CPUs verwenden. Es ist keine Überraschung, dass der Mechanismus, den das Cluster-Modul zur Maximierung der CPU-Auslastung verwendet, mithilfe von forking-Prozessen durchgeführt wurde, ähnlich wie bei den alten Unix-Systemen von fork ().