Bibliotheksfunktionen von Mathematica

9

Ich versuche, CUSP als externen linearen Löser zu verwenden, damit Mathematica die Leistung der GPU nutzen kann. Hier ist die CUSP-Projektwebseite . Ich frage nach einem Vorschlag, wie wir CUSP mit Mathematica integrieren können. Ich bin mir sicher, dass viele von Ihnen hier daran interessiert sein werden, dies zu diskutieren. Ich denke, eine Eingabematrix zu schreiben und sie dann dem CUSP-Programm zuzuführen, ist nicht der richtige Weg. Die Verwendung von Mathematicas LibrarayFunctionLoad wird eine bessere Möglichkeit bieten, die Eingabematrix im Handumdrehen an den GPU-basierten Solver weiterzuleiten. Wie werden die Matrix und die rechte Matrix direkt von Mathematica geliefert?

Hier ist ein CUSP Code Snippet.

%Vor%

Diese Frage gibt uns die Möglichkeit, die Kompilierungsmöglichkeiten von Mathematica 8 zu diskutieren. Es ist auch möglich, das Thema der Mathlink-Schnittstelle von MMA aufzurufen. Ich hoffe, die Leute hier finden dieses Problem würdig und interessant genug, um darüber nachzudenken.

BR

    
PlatoManiac 28.09.2011, 12:41
quelle

1 Antwort

1

Wenn Sie LibraryLink verwenden wollen (für den LibraryFunctionLoad wird auf eine dynamische Bibliotheksfunktion als Mathematica-Downvalue zugegriffen), gibt es eigentlich nicht viel Raum für Diskussionen, LibraryFunctions kann Mathematica-Tensoren von Maschinendoppel- oder Maschinen-Integern erhalten und Sie sind fertig .

Das Mathematica-MTensor-Format ist ein dichtes Array, genau wie Sie es in C natürlich verwenden würden. Wenn CUSP also ein anderes Format verwendet, müssen Sie etwas Kleber-Code schreiben, um zwischen Darstellungen zu übersetzen.

Weitere Informationen finden Sie im LibraryLink-Lernprogramm .

Sie sollten besonders den Abschnitt "Speicherverwaltung von MTensoren" in der Interaktion mit Mathematica Seite, und wählen Sie den Modus "Shared", um einen Mathematica-Tensor als Referenz zu übergeben.

    
jfklein 24.10.2011 20:04
quelle