|
|
Matlab nur maximal 12% CPU Auslastung |
|
leider bereits belegt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2017, 16:47
Titel: Matlab nur maximal 12% CPU Auslastung
|
|
Hallo,
Matlab läuft bei mir auf einem Dual CPU Server unter Windows Server 2016. Leider scheint Matlab nie mehr als ca. 12% der CPU zu nutzen. Ich habe bereits versucht, einen Parallel Pool zu starten mit 8 Workern (2x4Kerne). Das scheint aber auch nicht zu helfen. Muss ich in meiner Funktion etwas anpassen? Die Funktion beinhaltet primär mehrere Iterationen über eine While Schleife
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.07.2017, 08:33
Titel:
|
|
|
|
leider bereits belegt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.07.2017, 08:41
Titel:
|
|
Gibt es dann eine Möglichkeit, wie ich die CPU-Nutzung erhöhen kann? Die Schleifen laufen unnötig lange, da einfach 80% der verfügbaren Ressourcen nicht genutzt werden. Über die Windows eigene Prozesspriorisierung habe ich es bereits versucht. Selbst "Realtime" scheint hier keine Auswirkungen zu haben.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.07.2017, 17:20
Titel:
|
|
Hallo,
Zitat: |
Gibt es dann eine Möglichkeit, wie ich die CPU-Nutzung erhöhen kann? |
Das hängt vom Inhalt der while-Schleife ab. Wenn sie beispielsweise zeitintensive for-Schleifen enthält: ja.
Zitat: |
Die Schleifen laufen unnötig lange, da einfach 80% der verfügbaren Ressourcen nicht genutzt werden. |
Ob das unnötig ist oder nicht, ist Ansichtssache.
Die Frage ist, ob eine Parallelisierung möglich ist. Wenn eine Person 8 Minuten braucht, um Spaghetti zu kochen, kannst du ja auch nicht erwarten, dass 8 Personen dann die Spaghetti in einer Minute gekocht haben.
Mehr kann man ohne genauere Kenntnis des Codes einfach nicht sagen.
Grüße,
Harald
|
|
|
leider bereits belegt |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.07.2017, 17:27
Titel:
|
|
Ich habe mich nun etwas in Parallel Pooling eingelesen. Unter anderem auch in Parfor.
Da bei meinen While Schleifen jede auf der vorigen aufbaut, ist ein Nutzen von ParFor und eigentlich des kompletten Parallel Pooling nicht möglich.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.07.2017, 18:21
Titel:
|
|
Hallo,
while-Schleifen sind wie gesagt nicht parallelisierbar.
Wenn aber jede Iteration der while-Schleife min. einige Sekunden braucht und der Inhalt der Schleife parallelisierbar ist, dann kann das eine Option sein.
Grüße,
Harald
|
|
|
leider bereits vergeben |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2017, 08:02
Titel:
|
|
Jeder Durchlauf benötigt leider nur ein bis zwei Sekunden und der Inhalt ist schwer parallelisierbar. Ich werde es jetzt mal über zwei Schleifen versuchen, wobei die erste mit größeren Schritten eine Approximation rechnet und diese dann in die zweite übergibt.
Matlab R2017a unterstützt anscheinend, dass man manuell Ergebnisse einer Funktion in den Cache schreibt mit memoize. Ich werde mal versuchen, ob ich das noch einbauen kann.
Gibt es eine Möglichkeit herauszufinden, was an der While-Schleife die lange Durchlaufzeit verursacht, ohne den Prozessor richtig auszulasten?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2017, 17:25
Titel:
|
|
Hallo,
das gibt es nur den Profiler (HOME --> Run and Time).
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|