Serie 1 MPI

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

ALUMNO: FABIÁN FABIÁN OSCAR DANIEL Materia: computo de alto desempeño

Profesor: m.i. elba Karen saenz garcia GRUPO: 1 Serie 1

Análisis de Solución

Idea principal: (Para hacer el cálculo lo más simple posible, todas las matrices experimentales son matrices
cuadradas)

1. Para las matrices A y B, primero divídalas en pequeños bloques de matriz del mismo formato de bloque
p de acuerdo con el número de subprocesos p, donde cada bloque de matriz solo necesita ser una matriz
cuadrada, que puede ser específicamente de primer orden y de segundo orden O enésimo orden. Aquí
utilicé el número de subprocesos p para el cálculo específico, es decir, todos los procesos excepto el
proceso 0. Después de la división, cada proceso contiene un par de matrices de bloques
correspondientes a las posiciones de la matriz A y la matriz B.
2. Asigne las posiciones iniciales a las matrices A y B. No es fácil describirlo en lenguaje aquí. La
siguiente matriz de bloques se usa como ejemplo.
Estas matrices se dividen en 4 bloques cuadrados de la siguiente manera:

Las operaciones se efectúan de esta manera:


Después de que se inicializan las posiciones A y B, las posiciones correspondientes se multiplican por una
matriz de bloques, y la matriz recombinada es C0.

Después de eso, [todas las filas de la matriz A se desplazan hacia la izquierda una vez de acuerdo con las reglas
anteriores, y todas las columnas de B se desplazan hacia arriba una vez, y luego se multiplican y se agregan
correspondientemente para obtener la matriz C1, y repite los pasos p-1 veces para obtener C1, C2, , Cn.

Cada subproceso envía la matriz de bloques de la matriz C obtenida por sí misma al proceso 0, y la matriz final
C se obtiene.

Resolver el problema del producto de una matriz por un vector

En esta formulación paralela del algoritmo, descomponemos la matriz A en filas, una por cada proceso.

Por lo tanto, cada proceso tendrá una fila de la matriz y el vector por el que se va a multiplicar.

 El proceso 0 genera la matriz A y el vector x.


 La matriz A es distribuida (MPI_Scatter), y el vector difundido (MPI_Bcast).
 Cada proceso opera con los datos que tiene.
 Se reconstruye el vector solución en el proceso 0 mediante MPI_Gather.
Ten en cuenta que el número de filas de la matriz (que va a coincidir con su número de columnas, al asumirse
que la matriz es cuadrada) debe ser igual al número de procesos disponibles.

Cada proceso obtendrá como resultado un número, que al juntarlos (MPI_Gather) en el proceso 0 forman el
vector solución.

También podría gustarte