Die Suche ergab 16 Treffer

von Gigaz
Freitag 3. Juni 2016, 18:48
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Danke :)

Inzwischen läuft das Programm und fittet parallelisiert. Ich musste allerdings aufs Python pp-Modul umsteigen, weil die joblib-Parallel-Prozesse offenbar nur I/O-Aufgaben beschleunigen.
Ich bin optimistisch, dass ich demnächst noch ein paar Bugs ausmerzen und ein echtes Python-Modul ...
von Gigaz
Donnerstag 2. Juni 2016, 07:38
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Gigaz: Deine Myclass muß einfach nur das Pickle-Protokoll unterstützen. Dann lassen sich auch c-Klassen serialisieren.

Danke :D

Ich werde das Picke-Protokoll sicher implementieren. Ich aber festgestellt dass es eigentlich viel günstiger ist wenn ich folgendendermaßen parallelisiere:


def ...
von Gigaz
Mittwoch 1. Juni 2016, 12:30
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Gigaz: Das Problem ist, dass Exemplare Deiner Klasse von `joblib` nicht korrekt serialisiert werden können:

Aha, ok. Hast du einen Tip wie ich das Problem löse?
Meine naive Vorstellung ist grade, dass es eine Möglichkeit geben sollte, der Klasse Myclass eine Methode zum picklen zu geben. :K Mal ...
von Gigaz
Mittwoch 1. Juni 2016, 09:35
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Hallo,

schonmal daran gedacht, das Ganze auf der GPU zu rechnen?
Viele Tausend Datenpunkte mit ihrerseits vielen Hundert kleinen Matrixmultiplikationen hört sich nach guter Parallelisierbarkeit an.
Ich bin vor einiger Zeit auf eine Bibliothek namens Arrayfire (C/C++ und Python-Wrapper) gestoßen ...
von Gigaz
Freitag 6. Mai 2016, 10:34
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Ich habe auch schon festgestellt beim Testen dass die Zahlen die ich in python eingebe offenbar nicht im C-Programm ankommen :lol:
Deine neue Variante funktioniert jetzt aber. Vielen Dank.
von Gigaz
Freitag 6. Mai 2016, 08:42
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@ Blackjack. Danke nochmal.
Der Vorschlag mit input[0].ptr hat nicht kompiliert, deine Idee mit einem zusätzlichen Pointer war aber richtig. Die funktionierende Syntax ist

cdef void *ptr
ptr = <void *>input

L=Take_A_Class_Pointer(ptr)

Und die C++-Funktion packt dann mit

int Take_A_Class ...
von Gigaz
Mittwoch 4. Mai 2016, 16:55
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Ich habe fast nur autodidaktisch Programmieren gelernt, daher kann ich das mit dem Unpräzise leider nicht so ohne weiteres ändern.

Es gibt diverse Codeschnipsel für Cython wenn man googelt, aber je komplexer das Problem desto weniger findet man.
Ich hab jetzt eine detailliertere Anfrage auf python ...
von Gigaz
Mittwoch 4. Mai 2016, 16:12
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Gigaz: `double` ist ja aber auch ein Typ bei dem es Sinn macht einen Zeiger zu haben. Python-Objekte sind ja selbst schon Zeiger. Was versprichst Du Dir denn davon Python-Objekte in ein Numpy-Array zu speichern? Statt beispielsweise in einer Liste?

Eigentlich verspreche ich mir davon gar nichts ...
von Gigaz
Mittwoch 4. Mai 2016, 15:05
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Ich bin nicht sicher, ob ich dich völlig verstehe.
Wenn ich statt Layer einfach "object" schreibe kriege ich jedenfalls eine andere Fehlermeldung. :(

def __Reflectivity(np.ndarray[object] HS):
PyRefl(&HS[0])
Pythonreflectivity.pyx:121:11: Cannot take address of Python variable

Stünde da statt ...
von Gigaz
Mittwoch 4. Mai 2016, 13:50
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Gigaz: Die Fehlermeldung sagt's ja eigentlich schon: Der Typ darf nur `object` (das wäre dann jedes beliebige Python-Objekt) ein numerischer Typ oder eine Struktur sein (für Record-Arrays). Wenn `Layer` aus Python-Sicht eine Klasse ist, dann wäre `object` richtig, allerdings machen Numpy-Arrays ...
von Gigaz
Mittwoch 4. Mai 2016, 13:21
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

So, erste Frage zur Benutzung von Cython :D

Ich habe eine Klasse namens "Layer" definiert, die alle Eigenschaften einer optischen Lage kennt.

Wenn ich versuche, Cython eine Funktion zu geben, die als Eingabewert ein Layerwertiges Array nimmt, dann kriege ich eine Fehlermeldung.

def ...
von Gigaz
Samstag 23. April 2016, 13:55
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

BlackJack hat geschrieben:@Gigaz: Das „global interpreter lock“ (GIL) bei CPython ist Dir ein Begriff?
Bisher nicht, scheint aber wichtig zu sein :mrgreen: Ich habe bisher nie irgendwas in Python parallelisiert, aber ich habe einfach mal angenommen es ist nicht viel schwieriger als openmp für C.
von Gigaz
Samstag 23. April 2016, 13:05
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Hyperion Danke. Über die Parallelisierung habe ich mir weiter oben Gedanken gemacht. Da letztlich der Benutzer auch seine Daten fitten will ist es nicht sinnvoll auf dieser niedrigen Ebene den Code zu parallelisieren. Die Parallelisierung läuft dann so dass zB. jeder neue Punkt im Fitparameter-Raum ...
von Gigaz
Freitag 22. April 2016, 20:32
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

@Sirius man muss für jeden einzelnen Datenpunkt durch die Schichten-Schleife, die ist leider nicht außen rum.

Die Algorithmen existieren in C alle, wir haben sie selbst geschrieben und optimiert. Die Problemstellung gibt es leider nicht her dass man mit mathematisch optimierten Algorithmen was ...
von Gigaz
Freitag 22. April 2016, 18:10
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Re: Röntgenoptik-Projekt

Wenn ichs probiert hätte wüsste ich es. Man kommt aber um eine Iteration durch alle Schichten nicht herum, und darin ist Python bekanntlich langsam. Numpy ist wahrscheinlich keine Option. Cython vielleicht schon eher, ich muss es mir mal ansehen.
von Gigaz
Freitag 22. April 2016, 17:42
Forum: Wissenschaftliches Rechnen
Thema: Röntgenoptik-Projekt
Antworten: 31
Zugriffe: 11934

Röntgenoptik-Projekt

Hallo erstmal an alle :)

Ich bin Doktorand für experimentelle Physik. Bei der Diskussion mit einem Kollegen hatte ich vor kurzem die Idee, dass wir möglichweise ein Python-Paket schreiben und veröffentlichen sollten.

In der ersten Version soll man damit die Röntgenreflektion und Transmission von ...