Cómo usar el lenguaje C para escribir un programa para hacer una matriz de multiplicación que permita 1, 2, 3, 4, 5, 6 o 7 hilos que corren paralelos

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

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!

Este documento, Página en sourceforge.net, enumera casi todos los algoritmos de álgebra lineal disponibles.

Prueba OpenMP.org. Fácil de usar. Simplemente descárguelo, # inclúyalo y coloque ‘#pragma omp parallel for’ encima de su bucle. La aceleración será impresionante.