2009-11-04 16 views
5

Actualmente tenemos una aplicación científica de alto rendimiento escrita en C++ que hace uso de Intel Math Kernel Library.Biblioteca matemática de alto rendimiento para .NET/C# y Java

Estamos considerando escribir una aplicación de prueba escrita en Java y .NET/C# para comparar la diferencia de rendimiento. Para hacer eso, también necesitamos una biblioteca de matemáticas buena (se prefiere comercial) para ambos. ¿Alguien sabe de una biblioteca matemática equivalente para Java/C#?

Como nota al margen: C++ tiene Intel TBB biblioteca para ayudar con el multihilo. ¿.NET/C# y Java tienen algo equivalente?

+0

¿ha pensado en simplemente escribir un contenedor para la biblioteca C++ para C# y Java? –

+1

Java tiene java.util.concurrent y subpaquetes. No estoy muy familiarizado con TBB, pero esta es la forma de enhebrar de Sun. – KitsuneYMG

+0

@ Aaron: sí ... he pensado en eso también. gracias por el comentario sin embargo. – sivabudh

Respuesta

1

Lol .. ¿Por qué no pensé en esto antes?

¡Solo use la biblioteca Intel MKL Math en Java y .NET!

Consulte los siguientes enlaces:

+1

El argumento principal es que el código C# resultante ya no es portátil, p. Ej. mono/linux porque depende de una API/DLL que se ejecuta fuera de la CLR. – redcalx

+0

gracias por los buenos pensamientos. Publiqué una pregunta en el foro Intel MKL para ver si la versión de MKL Linux funcionará con la implementación de Mono o no. Si no, ¿cuál es su plan? Gracias de nuevo. – sivabudh

+0

@ the-locster: Intel respondió que Mono aún no es compatible *. Así que hombre ... muy mal. – sivabudh

4

puedo ayudar con C#:

Aquí es otra cuestión de forma que discute various C# math libraries

Y se puede echar un vistazo a PLINQ ayuda C# multihilo.

+0

hey ... gracias por ese enlace. Por cierto ... ¿estás en una comunidad científica? Si es así, ¿usa C# en el trabajo? ¿tienes alguna experiencia con alguna libreta matemática C# (alto rendimiento)? – sivabudh

+0

Escribo una aplicación de simulación de eventos discretos llamada Micro Saint Sharp. Cambiamos de C a C# hace 7 años. El rendimiento es genial. No uso ninguna biblioteca matemática externa. La única clase especial de matemáticas que usamos es para calcular varias distribuciones aleatorias, su rendimiento nunca ha sido un cuello de botella de simulación. –

+0

Estoy bastante sorprendido de que la performance de C# esté a la par con C. ¡Es genial escucharlo! – sivabudh

1

ALGLIB es una biblioteca multiplataforma de análisis numérico y procesamiento de datos. Y es gratis: ALGLIB se distribuye bajo una licencia GPL (versión 2 o posterior).Contiene:

ecuaciones diferenciales

de ecuaciones lineales

de matriz y vector operaciones, valores y vectores propios

numérica de integración, interpolación y ajuste, Optimización

FFT, convolución, la correlación

Estadística: algoritmos generales, prueba de hipótesis

análisis de datos: clasificación, regresión, otras tareas

funciones especiales

0

SuanShu es una gran colección de algoritmos numéricos. Está bien soportado. Tiene versiones Java y FREE C#.

Cuestiones relacionadas