|
|
|
Optimierung und Auslastung der Prozessoren |
|
| heinzs |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 07.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.10.2011, 10:32
Titel: Optimierung und Auslastung der Prozessoren
|
 |
| |
 |
|
Hallo liebe Forum-Gemeinde,
ich habe folgendes Problem und wäre über Tips erfreut:
Ich habe ein nichtlineares aber kontinuierliches Optimierungsproblem und habe einen Code geschrieben, welcher mir dieses Problem mit Hilfe von fmincon löst. Dabei gibt es zwei Varianten des Problems:
1) Mit etwa 300 Optimierungsvariablen und
2) mit etwa 900 Optimierungsvariablen
Die Optimierung läuft auf einem Server, welcher acht Prozessoren für Matlab zur verfügung gestellt bekommen hat.
Die Laufzeit der beiden Varianten unterscheidet sich natürlich beträchtlich, seltsam ist für mich aber die Prozessorauslastung.
Variante 1) benötigt etwa 10 Sekunden um gelöst zu werden, dabei sind alle Prozessoren immer zwischen 90 und 100% ausgelastet.
Variante 2) benötigt etwa 200 Sekunden, dabei springt die Gesamtauslastung immer sehr schnell zwischen 20% und 60%. Ein Prozessor ist bei 100% Auslastung, die sieben anderen bewegen sich ständig zwischen 0 und 60%.
Nun meine Frage, ob jemand dieses Phänomen kennt, wo es seine Ursache hat und ob es Methoden gibt die Prozessorenleistung aller Prozessoren bei der Variante 2) zu erhöhen um dort ein wenig Laufzeit einzusparen.
Vielen Dank und viele Grüße
Heinz
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 28.10.2011, 11:48
Titel:
|
 |
Hallo,
MATLAB nutzt zunächst mal nur einen Kern. Es gibt folgende Ausnahmen:
- implicit multithreading: vor allem bei Matrix-Vektor-Operationen spaltet MATLAB das automatisch in mehrere Threads auf. Das ist wahrscheinlich das, was bei dir im ersten Beispiel stark und im zweiten Beispiel weniger stark gemacht wird, evtl. weil die Problemstruktur unterschiedlich ist.
- explicit multithreading über Parallel Computing Toolbox: ermöglicht die direkte (benutzergesteuerte oder durch Funktionen in Toolboxen gesteuerte) Auslagerung an andere Kerne. fmincon unterstützt das z.B.
http://www.mathworks.com/help/relea.....box/optim/ug/briutqn.html
Im übrigen ist auch die Frage, wie die Prozessorauslastung gemessen wird. Die Zuverlässigkeit des Windows Task Manager ist da teilweise begrenzt.
Grüße,
Harald
|
|
|
|
| heinzs |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 07.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.10.2011, 12:59
Titel:
|
 |
Hallo Harald,
vielen Dank für die schnelle Antwort. Das Optimierungsproblem ist in beiden Varianten identisch, nur mit einer anderen Anzahl von Variablen und Randbedingungen.
Es stimmt, die Prozessorleitung ist mit dem Taskmanager von Windows beobachtet worden.
Gibt es irgendeinen festen Wert für die Anzahl der Variablen, ab welchem das implicit multithreading schlechter genutzt werden kann?
Vielen Dank für den Hinweis auf die Parallel Computing Toolbox, die werde ich mir wohl noch einmal anschauen.
Viele Grüße
Heinz
|
|
|
|
|
|
|
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 - 2025
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.
|
|