Supongo que está preguntando acerca de la multiplicación de matriz de matriz densa aquí.
Existe el proyecto PLASMA que implementa rutinas de álgebra lineal densa para arquitecturas de memoria compartida, y ha estado apuntando a tales arquitecturas desde cero.
Los paquetes de subprogramas de álgebra lineal básica (BLAS) anteriores también se han modificado para poder ejecutarse en un entorno roscado; Estos incluyen GotoBLAS, Intel’s MKL, ATLAS, Apple’s Accalerate, OpenBLAS y probablemente otros.
El código especializado para la multiplicación de matriz de matriz densa incluye los algoritmos de Gerbessiotis implementados en BSP, que pueden ejecutarse en su arquitectura de destino utilizando MulticoreBSP para C; estos suelen ejecutarse más rápido que sus homólogos basados en MPI. Sin embargo, nunca he visto una comparación con PLASMA u otros códigos diseñados para arquitecturas de memoria compartida.
Pondré lo que creo que son los enlaces más prometedores aquí:
PLASMA por la Universidad de Tennessee
Multiplicación de matriz densa paralela por Gerbessiotis
MulticoreBSP
- ¿Los humanos alguna vez entenderán verdadera y completamente el Universo?
- ¿Qué es un algoritmo para convertir de una matriz de adyacencia a listas de adyacencia?
- ¿Volver a la Universidad para estudiar Matemáticas me ayudará a comprender completamente la lógica del algoritmo de la IA y la Programación Funcional?
- Si tengo una variable, X, en un modelo de regresión que se calcula usando otras tres variables (X = 0.3X1 + 0.5X2 + 0.2X3), ¿está bien que regrese 0.3X1, 0.5X2 y 0.2X3 por separado?
- Cómo salir de la culpa de buscar la solución del problema
En cuanto a cómo implementar la rutina paralela; Esta es una tarea complicada para hacerlo bien. Ver, por ejemplo:
Multiplicación de matriz eficiente en memoria en el modelo BSP de McColl & Tiskin.
¡Estaría interesado en conocer sus experiencias!