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

Wer hat Ahnung vom Cloud Computing?

 

psigh
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.12.2014, 14:01     Titel: Wer hat Ahnung vom Cloud Computing?
  Antworten mit Zitat      
Hallo Leute,

ich weiß nicht genau, ob ich im richtigen Forum bin, aber ich versuch's einfach mal. Seid längerem frage ich mich, welche Probleme sich dafür eignen, sie auf einer Cloud wie z.B. einer Amazon EC2 Cloud zu lösen. Ich habe mir hier ein kleines Beispiel ausgedacht.

Gegeben ist eine Koeffizientenmatrix A und ein "Zielvektor" E, in dem irgendwelche Zahlen stehen. Dabei hat b wesentlich mehr Zeilen als A Spalten hat. Die Matrix A ist so aufgebaut, dass in den ersten zwei Zeilen Parametervektoren stehen, deren Einträge frei wählbar sind (X und Y). Die darauffolgenden Zeilen entstehen von selbst, wenn man irgendwelche Werte für X und Y gewählt hat.

X=[x_1 x_2.....x_n]
Y=[y_1 y_2.....y_n]
E=[e_1 e_2.....e_m]

m>n

A=[ X
Y
X.*Y
X.^2.*Y
.
.
.
.]


Jetzt berechnet man A.\E und erhält einen Gewichtsvektor w und damit eine Lösung für A*w~E im Sinne der kleinsten Quadrate. Ich möchte jetzt die Vektoren X und Y finden, so dass A*w sehr nahe an E liegt. Das könnte man ja z.B. mit fminunc machen. Dann werden in jedem Iterationsdurchgang erstmal 2n Richtungsableitungen gebildet (wir haben ja 2n frei wählbare Parameter), danach die zweiten Ableitungen, Step-Halfing usw. Also mit anderen Worten: Es wird sehr oft A.\E ausgerechnet.

Wenn jetzt z.B. n=10000 und m=20000 ist, dauert das alles (jedenfalls auf meinem Rechner) Jahre. Absolut unmöglich für mich, das auszurechnen. Würde so eine Rechnung auf einer Cloud super schnell gehen, oder kann man das nicht sagen?


Vielen Dank für Eure Hilfe

Dominik
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.12.2014, 13:29     Titel:
  Antworten mit Zitat      
Hallo,

grundsätzlich setzt Cloud Computing zur Beschleunigung von Berechnungen voraus, dass sich die Berechnungen parallelsieren lassen. Das ist hier insofern gegeben, dass die Funktionsauswertungen für den Gradienten parallel durchgeführt werden können; die Option 'UseParallel' ist z.B. bei fmincon verfügbar.
Ich würde bei Nutzung dieser Option in Verbindung mit batch mit der 'Pool'-Option eine deutliche Beschleunigung erwarten. Wie groß diese Beschleunigung ist, hängt natürlich nicht zuletzt von der Anzahl der verwendeten Rechenkerne ab. Letztlich muss man das einfach ausprobieren.

Eine ganz andere Frage wäre, ob das Vorhaben in dieser Form sinnvoll ist. Wenn m groß ist, entstehen ja sehr hohe Potenzen von x und y, d.h. sehr starkes Schwingen und damit verbunden Instabilität.
Zudem wird mit fminunc ein lokales Minimum gesucht, meist ist man aber an dem globalen Minimum interessiert.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.12.2014, 13:54     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für Deine Antwort. Die Useparallel Funktion kenne ich und habe ich auch schon benutzt. Die Batchfunktion kenne ich noch gar nicht. Ich muss mir mal durchlesen, worum es da geht.


Die Anmerkung mit bezügl. großem m stimmt. Mir ging es aber an dieser Stelle nur um ein Beispiel.

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

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.12.2014, 14:00     Titel:
  Antworten mit Zitat      
Hallo,

zu batch:
Wenn man einen parallel pool nutzt, werden die Worker vom Client verwaltet. Das bedeutet gerade in Fällen wie bei fminunc, dass viel Kommunikation zwischen Workern und Client entsteht, und das ist natürlich problematisch, wenn die Worker auf der Cloud sind.
Stattdessen kann man batch mit der 'Pool'-Option verwenden, so dass der Hauptcode auf einem Worker auf dem Cluster läuft. Dann passiert die Kommunikation mit diesem einen Worker statt mit dem Client, was deutlich schneller gehen dürfte.
Siehe auch hier
http://de.mathworks.com/videos/seri.....ting-tutorials-97719.html
insbesondere Video 5.

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 - 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.