Im Post vom 2. Februar 2022 haben wir gesehen, wie wir mit recht wenig Aufwand die automatische Parallelisierung der For-Schleife in LabVIEW aktivieren können. Diese Parallelisierung führt bei Multi-Core Systemen dazu, dass die Performance gesteigert wird und unsere Algorithmen schneller ausgeführt werden. Heute wollen wir zusätzlich die Anzahl an parallelen Instanzen mit Hilfe des VI´s CPU Information automatisch bestimmen.
In Beispiel vom letzten mal haben wir in einer inneren For-Schleife 10M Zufallszahlen erzeugt und in einem Array gespeichert. Diesen Prozess haben wir 100 Mal wiederholt um einen aussagekräftigeren Mittelwert zu bekommen.
Abhängig von der zuletzt verwendeten CPU (AMD Ryzen 7 3800x 8-Core) haben wir die Anzahl an parallelen Instanzen der For-Schleife fix auf 8 eingestellt.
Damit ist dieses VI optimiert für unseren PC. Jedoch leider nicht flexible auf anderen Systemen einsetzbar, da wir uns mit der CPU Architektur auf anderen Systemen auseinandersetzen müssten um so die ideale Zahl an parallelen Instanzen zu ermitteln und den fix eingestellten Wert P (der For-Schleife) ändern müssten.
Dies können wir elegant lösen. Wir wollen die Anzahl der parallelen Instanzen programmatisch ermitteln und setzen. Dazu verwenden wir das VI CPU Information aus der Application Control Palette.
Damit können wir unter anderem die # of cores per package auslesen. Diesen Output verwenden wir nun um P der For-Schleife (Anzahl an parallelen Instanzen zu setzen)
Damit ist jetzt die For-Schleife automatisch für jedes System auf dem das VI ausgeführt wird optimiert.
Diese und viele weitere Tricks lernt ihr in unseren Schulungen und Consultings. Link zu den Terminen
Link zum Beispielprojekt:
Die Programm Beispiele stellen nur einen Ausschnitt einer Gesamtapplikation dar. Verwendung der Code Beispiele auf eigene Gefahr.