Sono curioso delle prestazioni degli algoritmi numerici Java, ad esempio per la moltiplicazione a doppia precisione con matrice matrice, utilizzando le più recenti macchine JIT rispetto, ad esempio, a SSE C++/assembler sintonizzati a mano o controparti Fortran.Prestazioni Java in algoritmi numerici
Ho cercato sul web ma la maggior parte dei risultati proviene da quasi 10 anni fa e ho capito che Java ha progredito parecchio da allora.
Se hai esperienza con Java per applicazioni ad uso intensivo di numeri puoi condividere la tua esperienza. Inoltre, quanto bene funziona Java nei kernel dove i loop sono relativamente brevi e l'accesso alla memoria non è molto uniforme ma è ancora entro i limiti della cache L1? Se tale kernel viene eseguito più volte in successione, JVM può ottimizzarlo durante il runtime?
Grazie
La tua migliore scommessa è quella di metterlo alla prova da solo, poiché il confronto con il C++ sarà difficile in quanto sarà il più veloce e qualsiasi confronto non avrà accesso alla tua particolare implementazione. –
Nota per gli altri che vengono a questa pagina: questa domanda e la maggior parte delle risposte sono del 2009. JVM è molto meglio al giorno d'oggi di quanto non lo fosse una volta. – eis
Si potrebbe voler guardare ND4J, che supporta matrici n-dimensionali per Java. http://nd4j.org/benchmarking.html – tremstat