Nous sommes le calcul de quelque chose dont l'exécution est liée par des opérations matricielles. (Quelques détails ci-dessous si vous êtes intéressé.) Cette expérience nous a amenés à la question suivante:
Ne folkloriques ont de l'expérience avec les performances des bibliothèques Java pour la matrice de mathématiques (par exemple, multiplier, inverse, etc.)? Par exemple:
J'ai cherché et rien trouvé.
Détails de notre système de comparaison de la vitesse:
Nous sommes à l'aide d'Intel FORTRAN (ifort (IFORT) 10.1 20070913). Nous avons ré-implémenté en Java (1.6) à l'aide d'Apache commons mathématiques 1.2 matrice de la fpo, et il convient à tous ses chiffres de précision. (Nous avons des raisons pour vouloir en Java.) (Java doubles, Fortran real*8). Fortran: 6 minutes, Java 33 minutes), de même machine. jvisualm profilage montre beaucoup de temps passé dans RealMatrixImpl.{getEntry,isValidCoordinate} (qui semblent avoir disparu d'inédits Apache commons mathématiques 2.0, mais le 2.0 n'est plus rapide). Fortran est l'aide de l'Atlas routines BLAS (dpotrf, etc.).
Évidemment, cela dépend de notre code dans chaque langue, mais nous pensons que la plupart du temps, c'est l'équivalent de la matrice des opérations.
Dans plusieurs autres calculs qui n'impliquent pas de bibliothèques, Java n'a pas été beaucoup plus lent, et parfois beaucoup plus rapide.