Estamos calculando algo cuyo tiempo de ejecución está sujeto a operaciones matriciales. (Algunos detalles a continuación si está interesado). Esta experiencia provocó la siguiente pregunta:
¿Las personas tienen experiencia con el rendimiento de las bibliotecas Java para las matemáticas de matriz (por ejemplo, multiplicar, inversa, etc.)? Por ejemplo:
Busqué y no encontré nada.
Detalles de nuestra comparación de velocidad:
Estamos utilizando Intel FORTRAN (ifort (IFORT) 10.1 20070913). Lo hemos reimplementado en Java (1.6) utilizando operaciones de matriz de Mache 1.2 de Apache commons, y acepta todos sus dígitos de precisión. (Tenemos razones para quererlo en Java). (Java duplica, Fortran real * 8). Fortran: 6 minutos, Java 33 minutos, misma máquina. La creación de perfiles de jvisualm muestra mucho tiempo invertido en RealMatrixImpl. {getEntry, isValidCoordinate} (que parece haber desaparecido en Apache commons math 2.0, pero 2.0 no es más rápido). Fortran está utilizando rutinas Atlas BLAS (dpotrf, etc.).
Obviamente, esto podría depender de nuestro código en cada idioma, pero creemos que la mayor parte del tiempo está en operaciones de matriz equivalentes.
En varios otros cálculos que no involucran bibliotecas, Java no ha sido mucho más lento y, a veces, mucho más rápido.