WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Parallel Computing

 

Torben

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2010, 16:11     Titel: Parallel Computing
  Antworten mit Zitat      
Hallo,

hätte mal eine Frage... bzgl. der Parallel Computing Toolbox....

was "bringt" mir die auf einen Rechnen? hätte zuerst aso verstanden dass ich die brauche um die verschiedenen Kerne anzusprechen?

jetzt wenn ich aber ein Programm laufen lassen... lastet er auch schon alle 4 Kerne aus?

(ohne dass ich die Toolbox habe)

Viele Grüße

Torben


__Andreas__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2010, 08:35     Titel:
  Antworten mit Zitat      
Hallo,


ich bin mir nicht ganz sicher, aber ich denke das die neueren Matlab-Versionen alle bis zu 4 Prozessoren unterstüzen?

und dann mit der Parallel-Computing Toolbox bis zu 8 möglich sind?

Andreas
 
Max2k

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2010, 14:57     Titel:
  Antworten mit Zitat      
Nein, ohne die Paralell Toolbox (und meist auch mit ihr)
lastet Matlab genau einen Prozessor voll aus.
Mit der Paralell Toolbox kannst du so genannte worker starten,
einen pro Prozessor, welche dann wenn du einen paralellen Befehl verwendest, etwas zu tun bekommen (also z.B. parfor).
Das ganze geht aber wiederum nur wenn deine Probleme von einander
unabhängig gelöst werden können (z.B. eine Parameterabschätzung welche auf den Ergebnissen der vorhigen Lösung geruht geht nicht).

Es gibt zu diesem Thema unter Paralell Toolbox ein gutes Video von Mathworks.
Und aus Erfahrung sag ich noch: Benutze so viele buildin functions wie möglich, das ist meist deutlich schneller als paralell laufender, eigener code.

Gruss,
Max
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2010, 19:10     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Nein, ohne die Paralell Toolbox (und meist auch mit ihr)
lastet Matlab genau einen Prozessor voll aus.


Das ist nicht zutreffend.
Es gibt Operationen, die auch ohne Parallel Computing Toolbox in mehrere Threads aufgespalten werden. Das nennt man implizites Multithreading, da der Nutzer dazu nichts beitragen muss.
http://www.mathworks.com/access/hel...../brdo29n-1.html#brdtymf-1

Die Parallel Computing Toolbox erlaubt explizites Multithreading, d.h. der User kann selbst entscheiden, wie die Aufgaben verteilt werden. Der Einsatz dieser Toolbox ist vor allem dann interessant, wenn man
1. hohe CPU-Auslastung und die Anwendung verhältnismäßig wenig andere Resourcen (Speicher) benutzt.
2. die Anwendung leicht in voneinander unabhängige Teile aufspalten kann.

Einfachstes Beispiel für parallelisierbaren seriellen Code:
Code:
for I = 1:N
% voneinander unabhängige (!) Iterationen
end


Da habe ich auf einem Dual-Core-Rechner schon Speedup von Faktor 1,9 und mehr gehabt.

Die Parallel Computing Toolbox erlaubt es zudem, Aufgaben an Cluster-Rechner zu verschicken. Auf diesen Cluster-Rechnern läuft dann MATLAB Distributed Computing Server. Mehr Informationen zu diesen Produkten hier:
http://www.mathworks.de/products/parallel-computing/

Wichtig ist auch, dass man, bevor man an Parallel Computing denkt, erst mal den seriellen Code möglichst effizient gestaltet. Stichwort dazu z.B. Vektorisierung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
PeterPanFlöte

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2010, 20:30     Titel:
  Antworten mit Zitat      
Hallo!
Kann man eigentlich auch ein aus Matlab gestartete Programm parallel ausführen?

Ich habe einen Timer, der laufend neue Messdaten ausliest. Diese Messdaten werden auf einer GUI angezeigt. Auf Knopfdruck auf der GUI kann ich eine .exe ausführen, die mit den aktuellen Messdaten etwas berechnet. In dieser Zeit "wartet" der Timer dann automatisch bis die .exe fertig ist.

Kann ich diese .exe dann auf einem zweiten Kern laufen lassen, so dass mein Timer weiter Messdaten auslesen und anzeigen kann?

MfG
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2010, 22:32     Titel:
  Antworten mit Zitat      
Hallo,

ja, das sollte gehen.

Lab 1:
GUI läuft.
Schickt (labSend) auf Knopfdruck Daten an Lab 2.

Lab 2:
Wartet (labReceive) auf Daten von Lab 1.
Führt ggf. die .exe aus.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
PeterPanFlöte

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2010, 17:32     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Antwort!
Dann werde ich mich wohl mal mit der Toolbox auseinandersetzen...
 
Günny

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 16:52     Titel:
  Antworten mit Zitat      
Hey,
kann man einer vielleicht einen Code schreiben, in dem ich 2 m-files parallel laufen lassen kann?
Werde aus den "Hilfen" hier nicht schlau!

Ablauf:
Gui wird geöffnet (1. m-file)
dann wird aus der Gui das 2. m-file geöffnet, das so lange im Hintergrund laufen soll, solange ein bestimmter button nicht gedrückt wird. erst dann soll es unterbrochen werden.

Ich hoffe ihr könnt mir helfen!

Grüße
 
Günny

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2012, 16:56     Titel:
  Antworten mit Zitat      
Günny hat Folgendes geschrieben:

Ablauf:
Gui wird geöffnet (1. m-file)
dann wird aus der Gui das 2. m-file geöffnet, das so lange im Hintergrund laufen soll, solange ein bestimmter button nicht gedrückt wird. erst dann soll es unterbrochen werden.

Grüße

Während das 2. m-file läuft, soll natürlich in der Gui sachen ausgewählt werden!
 
Larzarus
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 23.02.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2012, 16:05     Titel:
  Antworten mit Zitat      
Hallo ich arbeite gerade an einem ähnlichen Problem.
Hast du eine Lösung gefunden?

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2012, 16:52     Titel:
  Antworten mit Zitat      
Hallo,

eine Möglichkeit mit der Parallel Computing Toolbox wäre:
aus der GUI heraus einen Job erstellen und den mit der local configuration laufen lassen, siehe z.B.
Code:

bis einschließlich submit.

Wenn der Button gedrückt wird, wird der Job abgebrochen (bis 2011b: destroy, in 2012a: delete).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.