Seite 3 von 3
Verfasst: Donnerstag 24. Juli 2008, 19:50
von BastiL
Tja ich weiss nicht mehr so richtig weiter. Meine Python-Version ist 2.4.2. Wenn man das Problem googelt dann bekommt man sehr unterschiedliches dazu... Allerdings scheint Python 2.5 damit generell weniger Probleme zu haben. Hat jemand Erfahrungen mit so großen Files?
Verfasst: Donnerstag 24. Juli 2008, 20:23
von Trundle
Zumindest bei der x86_64-Architektur (aka amd64) gilt sizeof(int) == 4 und (C)Python hat intern sehr oft ints benutzt, etwa beim Indizieren oder eben auch bei mmap-Objekten. Mit Python 2.5 wurden diese ints dann durch einen eigenen Datentyp (Py_ssize_t) ersetzt (siehe auch
PEP-0353, um die Vorteile einer 64bit-Architektur nutzen zu können. Mit Python 2.5 sollte also mmap mit großen Dateien funktionieren.
Verfasst: Freitag 25. Juli 2008, 08:39
von BastiL
Kann dieses "sollte" jemand bestätigen? Ich habe eine x86_64 Architektur und überlege auf Python 2.5 upzudaten.
Trundle hat geschrieben:Zumindest bei der x86_64-Architektur (aka amd64) gilt sizeof(int) == 4 und (C)Python hat intern sehr oft ints benutzt, etwa beim Indizieren oder eben auch bei mmap-Objekten. Mit Python 2.5 wurden diese ints dann durch einen eigenen Datentyp (Py_ssize_t) ersetzt (siehe auch
PEP-0353, um die Vorteile einer 64bit-Architektur nutzen zu können. Mit Python 2.5 sollte also mmap mit großen Dateien funktionieren.
Verfasst: Sonntag 27. Juli 2008, 22:12
von Trundle
BastiL hat geschrieben:Kann dieses "sollte" jemand bestätigen? Ich habe eine x86_64 Architektur und überlege auf Python 2.5 upzudaten.
Funktioniert (zumindest mit/unter/über/auf x86_64).
Verfasst: Montag 28. Juli 2008, 20:41
von BastiL
Ok, danke für die Info. Dann werde ich mal ein Update machen.
BastiL
Verfasst: Dienstag 29. Juli 2008, 20:40
von encbladexp
Was auch schön wäre: Ein der der Daten die die re durchwühlt...
Es sollte doch noch ein anderes, und vor allem schnelleres Verfahren für dein Problem geben.
mfg Betz Stefan
Verfasst: Mittwoch 30. Juli 2008, 07:58
von BastiL
encbladexp hat geschrieben:Was auch schön wäre: Ein der der Daten die die re durchwühlt...
Das verstehe ich nicht....? Was meinst Du damit?
Verfasst: Mittwoch 30. Juli 2008, 16:29
von epsilon
Das verstehe ich nicht....? Was meinst Du damit?
Ich denke, der Satz sollte eigentlich
Eine der Dateien die der re durchwühlt...
heißen

Verfasst: Donnerstag 31. Juli 2008, 17:00
von BastiL
das geht leider nicht, da die Files riesig sind und vertrauliche Daten enthalten.
Verfasst: Donnerstag 31. Juli 2008, 17:17
von BastiL
Also ich bin inzwischen etwas weiter:
1. habe ich Python 2.5.2 verfügbar, damit läuft "mem" und "mmap" über Files größer als 2GB
2. scheint das Thempo mit Python 2.5.2 deutlich langsamer zu sein....
Ich muss mir das noch einmal anschauen und poste die Resultate dann.
Verfasst: Freitag 1. August 2008, 06:46
von BlackJack
@BastiL: Vielleicht könntest Du ja eine Testdatei erstellen, die dem Original im Muster entspricht, also z.B. Anfangs- und Endmarkierungen an ungefähr den Stellen, wo sie auch in der Originaldatei stehen und ansonsten irgendwelche Fülldaten.
Du könntest dafür dann auch ein kleines Programm, das diese Datei erstellt ins Netz stellen, statt der Datei selbst.
Ich denke bei diesem Problem ist es nicht ganz unwichtig, dass die Leute ihre Tests auf den selben Daten machen, sonst gibt's zu viele Unterschiede, die einen Vergleich der Benchmarks weniger aussagekräftig machen.
Verfasst: Dienstag 5. August 2008, 19:00
von BastiL
Was die Musterdatei angeht: Wenn müsste es ein Programm sein das eine erzeugt, Datei selbst ist zu groß. Wi eich so etwas schreibe ist mir nicht ganzt klar. Im Prinzip genügt es, vor und hinter dem RE einige Zeilen ASCII zu erzeugen und dazwischen 2GB binäre Daten....
Verfasst: Dienstag 13. Januar 2009, 23:05
von BastiL
So ich habe dieses Thema lange liegen lassen aber jetzt wird das ganze wieder aktuell. Ich habe hier den Link auf eine Beispieldatei, die wir für Benchmarks jetzt verwenden können:
http://euler.yonsei.ac.kr/fluent/tutfil ... l_mesh.zip
Zip auspacken -> Datei filmcool.cas.gz auspacken -> filmcool.cas ist das Musterfile
Wie gesagt muss ich zunächst Binär- und ASCII-Teile trennen. Der Binärteil steht zwischen "(0 "Grid:")" und "(0 "Thread variables:"), alles andere ist ASCII. Ich werde demnächst mal EUre bisherigen Vorschläge auf meinem Musterrechner über diese Datei laufen lassen und die Ergebnisse posten.