Multiplicacion de matrices
Alejandro Talia
Facultad Politecnica
Universidad Nacional de Asunción
aletalia@gmail.com
ResumenEn este documento se presentan estrategias para la multiplicación dematrices en forma paralela utilizando dos herramientas distintas, hilos y openmp, con los cuales se puede explotar la utilización en paralelo de los distintos núcleos de una computadora.
PalabrasclaveNucleo, optimización, matriz, producto, independencia de datos.
IntroducciónEn la multiplicación de matrices cuadradas, existe una variedad de formas en la que se pueden paralelizar las los cálculosde manera a maximizar el rendimiento. En las secciones posteriores se verán algunas definiciones, estrategias, y herramientas utilizadas para la solución de este problema, además de una conclusión alfinal de este documento.
DefinicionesHilosLos hilos son mecanismos que permiten a un programa realizar más de una tarea de forma simultánea. Parece que se ejecutan en forma concurrente, el kernellos ejecuta de forma asincrónica, interrumpiendo cada hilo cada cierto tiempo para proporcionar a otros la posibilidad de ser ejecutados. Un hilo existe dentro de un proceso: los hilos son granos deejecución más finos que los procesos. Cuando se invoca a un programa, Linux crea un nuevo proceso y en ese proceso crea un único hilo el cual ejecuta el programa de forma secuencial. Ese hilo puede crearotros hilos, todos los cuales corren el mismo programa en el mismo proceso, pero cada thread podría estar ejecutando una parte diferente del programa en cada instante de tiempo.
ThreadsCuando unprograma hace fork, el proceso hilo corre el mismo programa que el padre, con su misma memoria virtual, descriptores de archivo, etc. El proceso hijo puede modificar la memoria, cerrar descriptores dearchivo etc. sin afectar a su padre y vice-versa. Cuando un programa crea otro thread, no se copia nada. El hilo creador y el creado comparten el mismo espacio de memoria, descriptores de archivo, y...
Regístrate para leer el documento completo.