2009-11-04 6 views
5

Attualmente abbiamo un'applicazione scientifica ad alte prestazioni scritto in C++ che fa uso di Intel Math Kernel Library.libreria matematica ad alte prestazioni per .NET/C# e Java

Stiamo valutando la scrittura di un'applicazione di riferimento scritto in Java e .NET/C# per confrontare la differenza di prestazioni. Per fare ciò, abbiamo anche bisogno di una buona libreria commerciale (preferita) per entrambi. Qualcuno sa di una libreria equivalente alla matematica per Java/C#?

Come sidenote: C++ ha Intel TBB biblioteca per aiutarvi con il multithreading. .NET/C# e Java hanno qualcosa di equivalente?

+0

hai pensato di scrivere solo un wrapper per la libreria C++ per C# e Java? –

+1

Java ha java.util.concurrent e subpackages. Non ho molta familiarità con TBB, ma questo è il modo in cui Sun fa il threading. – KitsuneYMG

+0

@ Aaron: sì ... ci ho pensato anche io. grazie del commento però – sivabudh

risposta

1

Lol .. perché non ci ho pensato prima?

Basta usare biblioteca Intel MKL matematica in Java e .NET!

Vedere i seguenti link:

+1

L'argomento principale è che il codice C# risultante non è più portabile ad es. mono/linux perché dipende da una API/DLL in esecuzione all'esterno del CLR. – redcalx

+0

grazie per i buoni pensieri. Ho postato una domanda sul forum Intel MKL per vedere se la versione di MKL linux funzionerà con l'implementazione Mono o meno. In caso contrario, qual è il loro piano. Grazie ancora. – sivabudh

+0

@ the-locster: Intel ha risposto che Mono non è supportato * ancora *. Quindi l'uomo..troppo cattivo. – sivabudh

4

che possa aiutare con C#:

Ecco un altro SO domanda che discute various C# math libraries

E si può dare un'occhiata a PLINQ aiuto C# multithreading.

+0

hey..grazie per quel collegamento. Btw ... sei in una comunità scientifica? Se è così, usi C# al lavoro? hai qualche esperienza con qualsiasi lib di matematica C# (ad alte prestazioni)? – sivabudh

+0

Scrivo un'applicazione di simulazione di eventi discreti chiamata Micro Saint Sharp. Siamo passati da C a C# 7 anni fa. La performance è grandiosa. Non uso alcuna libreria matematica esterna. L'unica classe matematica speciale che usiamo è per il calcolo di varie distribuzioni casuali, le cui prestazioni non sono mai state un collo di bottiglia di simulazione. –

+0

Sono piuttosto sorpreso che le prestazioni di C# siano alla pari con C. È bello ascoltarle! – sivabudh

1

ALGLIB è una libreria di analisi numerica e di elaborazione dati multipiattaforma. Ed è gratuito - ALGLIB è distribuito sotto licenza GPL (versione 2 o successiva).Esso contiene:

equazioni differenziali

lineare equazioni

Matrix e vettoriale operazioni, autovalori e autovettori

numerica integrazione, interpolazione e montaggio, ottimizzazione

FFT, convoluzione, correlazione

Statistiche: algoritmi generali, test di ipotesi

Analisi dei dati: classificazione, di regressione, altri compiti

Funzioni speciali

0

SuanShu è una grande collezione di algoritmi numerici. È ben supportato Ha sia una versione Java che una versione C# GRATUITA.