|
|
Wer hat Ahnung vom Cloud Computing? |
|
psigh |

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.12.2014, 14:01
Titel: Wer hat Ahnung vom Cloud Computing?
|
 |
|
 |
|
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
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.12.2014, 13:29
Titel:
|
 |
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
|
|
|
psigh |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.12.2014, 13:54
Titel:
|
 |
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
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.12.2014, 14:00
Titel:
|
 |
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
|
|
|
|
|
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.
|
|