|
psigh |

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 20:43
Titel: Parallelisierung
|
 |
Hallo,
ich habe eine Frage zum Thema Parallelisierung.
Ich habe eine Matrix mit 30 Spalten und 3131 Zeilen. Jetzt wird jede spalte abgearbeitet. Es gibt verschiedene Zeitpunkte (zeitpunkte gehen Zeilenweise nach unten) an dem ein Mittelwert aller Werte, die bis zu dem zeitpunkt vorliegen, berechnet werden muss.
Bsp. Zeitpunkte für Spalte 1: 4, 600, 2000
Also Berechnung: Mittelwert von 1:4, von 1:600, von 1:2000
Das wird für jede Spalte gemacht und für jede Spalte gibt es andere Zeitpunkte. Laut Profili report nimmt dieser Vorgang (einer von vielen in dem ganzen Programm) unheimlich viel Zeit in Anspruch. Ich habe nicht die Parallel Computing Toolbox und wollte jetzt mal fragen, ob man das nicht trotzdem irgendwie verbessern kann.
Vielen Dank,
Dominik
|
|
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 20:51
Titel:
|
 |
Ob man etwas beschleunigen kann, lässt sich am Besten an Hand deines Programmcodes sagen
|
|
|
psigh |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 21:00
Titel:
|
 |
In diesem Indikator stehen die Zeitpunkte drin, die betrachtet werden sollen. Z.B. Tag 100, 400 700 usw.
An diesen Tagen wird jeweils für jedes Asses die Standardabweichung der Renditen von Tag eins bis zu dem aktuellen Tag berechnet und in ein Array eingetragen. Jetzt wird der Mittelwertn nicht mit mean berechnet, sondern mit einem speziellen Verfahren. Aber auch wenn ich mean nehme, dauert diese Prozedur seeeehr lange. Länger als alles andere, was ich da mache. Hätte ich nicht gedacht.
Vielen Dank,
Dominik
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 21:22
Titel:
|
 |
Hallo,
die beste Chance dürfte in Vektorisierung (Beseitigung der for-Schleifen) liegen.
Wenn du etwas, das nicht lange dauert, sehr oft machst, kann es in der Summe letztlich doch lange dauern.
Ohne genauere Kenntnis des aufgerufenen Codes wird man dir wohl nicht weiterhelfen können.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.07.2011, 23:51
Titel:
|
 |
Hallo psigh,
Ist die Variable pre-alloziert? Die sehr verschachtelte Indizierung raubt ebenfalls Zeit. Vielleicht ist dies schon schneller:
Noch etwas schneller wären Integertyoen als Index. Wenn Assests z.B. nur 10.000 Elemente enthält:
Gruß, Jan
|
|
|
psigh |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2011, 15:13
Titel:
|
 |
Vielen Dank für Eure Antworten.
Ich hab mich jetzt lange um den Code gekümmert und ihn auch nochmal mit Leute durchgesprochen. Ich habe ein paar Sachen verbessert, was aber nicht wirklich viel gebarcht hat. Die CPU Auslastung ist beo 20% und es wird 4 Stunden gerechnet. Deswegen hab ich jetzt eine andere Lösung. Ich hab den Code in vier verschiedene Codes zerlegt. Ich starte Matlab 4 mal und lasse sie parallel laufen (-: Danach führe ich die Ergebnisse zusammen. Jetzt ist die CPU Auslastung bei 90% und ich spare eine Menge Zeit.
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 23.07.2011, 19:58
Titel:
|
 |
wenn die präallozierung richtig ist kannst du auch vor die größte for-schleife ein "par" (-> parfor) schreiben...
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
psigh |
Themenstarter

Forum-Century
|
 |
Beiträge: 118
|
 |
|
 |
Anmeldedatum: 16.06.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2011, 20:01
Titel:
|
 |
Kann ich doch nicht, weil ich diese toolbox nicht habe
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 24.07.2011, 10:46
Titel:
|
 |
Ahhh...
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
|
|
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.
|
|