2009-11-04 12 views
5

Wir haben derzeit eine leistungsstarke wissenschaftliche Anwendung in C++ geschrieben, die Intel Math Kernel Library verwendet.Hochleistungs-Math-Bibliothek für .NET/C# und Java

Wir überlegen, eine Benchmark-Anwendung geschrieben in Java und .NET/C# zu schreiben, um den Leistungsunterschied zu vergleichen. Um dies zu tun, brauchen wir auch eine gute (kommerzielle ist bevorzugt) Math-Bibliothek für beide. Kennt jemand eine mathematisch äquivalente Bibliothek für Java/C#?

Als eine Nebenbemerkung: C++ hat Intel TBB Bibliothek, um mit Multithreading zu helfen. Haben .NET/C# und Java etwas Entsprechendes?

+0

Haben Sie darüber nachgedacht, nur einen Wrapper für die C++ - Bibliothek für C# und Java zu schreiben? –

+1

Java hat java.util.concurrent und Unterpakete. Ich bin mit TBB nicht sehr vertraut, aber das ist Suns Art Threading zu machen. – KitsuneYMG

+0

@Aaron: yeah..Ich habe auch darüber nachgedacht. Danke über den Kommentar. – sivabudh

Antwort

1

Lol ... wieso dachte ich nicht schon mal daran?

Verwenden Sie einfach Intel MKL Math-Bibliothek in Java und .NET!

Siehe die folgenden Links:

+1

Das Hauptargument ist, dass der resultierende C# -Code nicht mehr tragbar ist z. Mono/Linux, da es auf eine API/DLL angewiesen ist, die außerhalb der CLR ausgeführt wird. – redcalx

+0

danke für die guten gedanken. Ich habe eine Frage im Intel MKL-Forum gestellt, um zu sehen, ob die MKL-Linux-Version mit der Mono-Implementierung funktioniert oder nicht. Wenn nicht, was ist ihr Plan? Danke noch einmal. – sivabudh

+0

@ the-locster: Intel hat darauf geantwortet, dass Mono * noch nicht * unterstützt wird. Also Mann ... zu schlecht. – sivabudh

4

kann ich mit C# helfen:

Hier ist eine andere Frage SO, die various C# math libraries

bespricht Und Sie einen Blick auf PLINQ für C# Multithreading Hilfe zu nehmen.

+0

hey..danke für diesen Link. Btw... bist du in einer wissenschaftlichen Gemeinschaft? Wenn ja, verwenden Sie C# bei der Arbeit? Hast du irgendwelche Erfahrung mit einer C# (High-Performance) Math-Bibliothek? – sivabudh

+0

Ich schreibe eine diskrete Event-Simulation namens Micro Saint Sharp. Wir sind vor 7 Jahren von C auf C gewechselt. Die Leistung ist großartig. Ich verwende keine externen Mathematikbibliotheken. Die einzige spezielle Mathematikklasse, die wir verwenden, ist die Berechnung verschiedener zufälliger Verteilungen, deren Leistung war nie ein Simulationsengpass. –

+0

Ich bin ziemlich überrascht, die Leistung von C# ist auf Augenhöhe mit C. Das ist großartig zu hören! – sivabudh

1

ALGLIB ist eine plattformübergreifende numerische Analyse- und Datenverarbeitungsbibliothek. Und es ist kostenlos - ALGLIB wird unter einer GPL-Lizenz (Version 2 oder höher) vertrieben.Es enthält:

Differentialgleichungen

Linear

Matrix- und Vektoroperationen Gleichungen Eigenwerte und Eigenvektoren

numerische Integration, Interpolation und Fitting, Optimization

FFT, Faltung, Korrelation

Statistik: allgemeine Algorithmen, Hypothesentests

Datenanalyse: Klassifizierung, Regression, andere Aufgaben

Sonderfunktionen

0

SuanShu ist eine große Sammlung von numerischen Algorithmen. Es wird gut unterstützt. Es hat sowohl eine Java-Version als auch eine KOSTENLOSE C# -Version.