Pregunta:
¿Qué implementaciones matriciales eficientes existen para Java?
demongolem
2014-02-05 07:50:11 UTC
view on stackexchange narkive permalink

De vez en cuando necesito una biblioteca que pueda realizar la multiplicación de matrices por mí. Creo que he usado EJML más recientemente, pero ese no es necesariamente el paquete más fácil de usar cuando estoy trabajando con vectores de características. Tener un buen paquete puede significar la diferencia en las horas de espera para que se completen sus cálculos. Entonces, ¿cuáles son los paquetes más eficientes que existen? ¿Existen buenos puntos de referencia para respaldar tales afirmaciones hechas por varios paquetes que podrían existir?

Dos respuestas:
#1
+6
demongolem
2014-02-12 08:58:15 UTC
view on stackexchange narkive permalink

Bueno, déjame darte una respuesta ya que esta pregunta es un poco tranquila. En el sitio web de EJML, encontré este gráfico:

enter image description here

Entonces, de acuerdo con esto, EJML es mejor en general usando código Java puro para matrices más pequeñas y MTJ es mejor para tamaños grandes matrices. Nuevamente, hay que tener cuidado con uno de los candidatos que informa, pero esto da una idea de los diferentes paquetes disponibles.

Este es el tipo de respuesta que me hace pensar que este sitio podría funcionar
#2
+1
damienfrancois
2014-02-05 13:12:27 UTC
view on stackexchange narkive permalink

JBLAS es el equivalente a la biblioteca BLAS estándar de C / FORTRAN y es muy rápido. Viene con binarios precompilados y utiliza el hardware de la manera más eficiente posible, cambiando la implementación según el tipo de hardware.

Otra alternativa es JAMA.

Le daré un voto positivo, sin embargo, estaba buscando más detalles sobre qué los hace eficientes / qué tan eficientes son en comparación entre sí.
¿A qué se refiere C / Fortran standard blas? ¿Te refieres a NetBlas? (¿Cuál IIRC existe solo como un referente y está construido alrededor de bucles y es lento). ¿Te refieres a Atlas que se compila para tu propio sistema? ¿Te refieres al OpenBlas altamente optimizado? ¿Te refieres a que busca qué biblioteca BLAS tienes instalado y proporciona una envoltura alrededor de ese? No hay BLAS estándar de C.
Me refiero a la definición original de la API netBLAS.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...