Matriz dispersa de acceso concurrente en Java

Estoy buscando una biblioteca de matriz / álgebra lineal en Java que proporcione una matriz dispersa que se pueda escribir simultáneamente desde diferentes hilos. La mayoría de las bibliotecas con las que me he encontrado no proporcionan matrices dispersas, o 1.) las respaldan con un mapa de hash abierto, o 2.) las almacenan en formato CSR o CSC que no es del todo apto para subprocesos múltiples construcción. En este momento, estoy reuniendo las entradas en paralelo usando un mapa de hash concurrente y llenando la matriz dispersa de un solo hilo, pero esto parece una pérdida de recursos (espacio para almacenar el mapa de hash concurrente y tiempo para completar esencialmente el matriz dos veces).

Respuesta 1

No se puede simplemente hacer mágicamente escasamente paralelas las rutinas de álgebra matricial escasamente. Abordar estos problemas implica algunos de los algoritmos de análisis numérico más complejos y sigue siendo objeto de una intensa investigación.

No dice lo que quiere hacer con estas matrices, pero imagino que quiere una solución para los sistemas de ecuaciones lineales. Si desea eso en paralelo, necesitará una biblioteca de terceros, matrices muy grandes y probablemente algo de dinero.

La forma más común de ensamblar matrices dispersas es ensamblarlas en formato triplete y convertirlas a formato comprimido de fila o columna. El ensamblaje puede ser costoso, pero es fácil de hacer en paralelo. Simplemente deje que cada hilo tenga su propia lista de trillizos y empalmelos antes de convertirlos a formato comprimido.

Respuesta: 2

esta interfaz es utilizada por la clase SMTPAppender en log4j. Tiene un método que devuelve un estado (si se activa una alerta por correo electrónico o no). El problema es que quiero agregar alguna funcionalidad a ...

Me gustaría tener un registro seguro en mi aplicación, de modo que: si registro algo, la función de registro debería regresar felizmente si y solo si el registro fue exitoso, el archivo de registro no debería ser ...

He escrito dos programas. Ahora cada programa usa subprocesos para enviar y recibir paquetes al mismo tiempo. Cada vez que envío paquetes desde el servidor al cliente, el mensaje en el cliente termina ...

Aquí hay un código recortado de mi problema: Proceso proceso = Runtime.getRuntime (). Exec (comando); if (process.waitFor ()! = 0) arroja una nueva excepción ("error"); lector = nuevo ...