www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Laufzeit komischerweise hoch
Laufzeit komischerweise hoch < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Laufzeit komischerweise hoch: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 16:46 Di 27.06.2006
Autor: Christoph_der_Psychologe

Hallo, alle zusammen!
Als erstes natürlich:
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Ich habe ein Problem mit MatLab und bin als Psychologe und MatLab-Neuling mit derart informatorischen Problemen überfordert, deswegen würde ich mich freuen, wenn mir jemand helfen könnte.

Ich habe ein MatLab-Programm geschrieben, dass aus 2 Teilen besteht:
1. Teil: Import einer csv-Datei (40MB), die ca. 820.000 Zeilen über 29 Spalten ergibt (ja, das is ne Menge Holz...)
2. Teil: zwei for-schleife, die nacheinander simple Berechnungen über alle Zeilen und Spalten durchführen (erst die 1. Schleife über alle Zeilen und Spalten, dann die 2.)

Wenn ich das gesamte Programm ausführe, wird gleich die erste for-Schleife nur langsam ausgeführt. Bei der Datenmenge schätze ich, dass der Rechner mit nur dieser Schleife etwa 4 Stunden beschäftigt ist.  
Wenn ich das Programm aber im Editor öffne und erst nur den Import markiere und ausführen lasse und, sobald er fertig ist, die beiden for-Schleifen markiere und ausführe, dann wird jede Schleifen in ca. 3 min abgearbeitet.
Obwohl in beiden Fällen genau derselbe Programmcode verwendet wird, ist die Laufzeit des Gesamtprogramms 50 mal so hoch. Eigentlich wird ja auch im Gesamtprogramm schrittweise vorgegangen, so dass überhaupt kein Unterschied bestehen sollte.
Da ich 30 Dateien habe und nicht jeweils 5 Programme nacheinander für jede Datei starten will, hätte ich natürlich gerne nur ein Programm, was alles macht.

Irgendwie naheliegend war für mich, dass es mit dem Speicher zusammenhängt. Also, dass bei der Ausführung des Gesamtprogramms noch Speicher durch die Importierung belegt ist und es dadurch zu der Verlangsamung kommt. Also habe ich folgendes probiert:
1. Größerer PC (CPU+RAM)--> Import geht schneller, Problem bleibt bestehen
2. vorherige Allocierung aller verwendeten Matrizen --> Import geht noch schneller, aber immer noch gleiches Problem
3. 60 Sek. Pause nach Import in das Programm einbauen --> kein Effekt
4. Aufspaltung in mehrere .m-files, die von einem globalen .m-file aufgerufen werden --> kein Effekt
5. mit pcode .m files in .p files umgewandelt und in globalen file gesteckt --> kein Effekt

Jetzt bin ich mit meinem Latein am Ende, wobei ich von den .p - files nicht viel Ahnung hab. Vielleicht kann man damit noch was machen.

Also, wenn jemand eine Idee hat, woran es liegt, oder weiß, wie ich vielleicht den Speicher zwischendurch putzen kann, dann wäre ich echt dankbar. Die Auswertung dieser Daten macht soviel Arbeit, dass ich jeden Aufwand bei der Aufbereitung verhindern möchte.

Mfg

Christoph

        
Bezug
Laufzeit komischerweise hoch: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:02 Mi 28.06.2006
Autor: dormant

Hi!

Ich kann mir nur schwer vorstellen, was da schiefgeht, aber wenn du mal den Code angibst, dann hätte ich vielleicht ne Idee.

Gruß,
dormant

Bezug
                
Bezug
Laufzeit komischerweise hoch: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:16 Mi 28.06.2006
Autor: viktory_hh

Ich bin sehr gespannt, schicke mal den Code rüber :-)))

kann vielleicht helfen, HOFFENTLICH !!!!!



Bezug
                        
Bezug
Laufzeit komischerweise hoch: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:54 Mo 03.07.2006
Autor: Christoph_der_Psychologe

Guten Morgen, liebe MatLab-Freunde!

Also, als erstes vielleicht: Ich hab keine Erklärung für das Prolem, aber eine Lösung, die, wenn auch unschön, funktioniert. Ich habe jetzt in das Programm direkt nach dem Import eine Speicherung des Workspace eingebaut, dann ein "clear all" und dann ein erneutes Laden des Workspace. Damit funktioniert es jetzt. Ich habe eigentlich schon viel zu viel Zeit in das Problem gesteckt und gebe mich damit zufrieden. Für diejenigen, die sich aber weiter damit beschäftigen möchten, stelle ich mal das Programm mit ein:

[url=1] Datei-Anhang [mm] [C:\abschnitte_und_fuellen.m] [/mm]

Ich weiß nicht, ob das hilft, da ich die Daten nicht mit einstellen kann. Aber vielleicht interessiert sich ja trotzdem wer dafür.

Vielen Dank für alle Ratschläge!

Christoph


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]