Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A Equipo9 Proyecto Etapa 3
A Equipo9 Proyecto Etapa 3
PROGRAMACIÓN CONCURRENTE
Equipo 2:
DIEGO TRISTAN MEZA GARCÍA
CAROLINA MONTES DE OCA GÓMEZ
TANIA PACHUCA SOLARES
16/10/2023
Etapa 1 del Proyecto integrador
I. Identificación y análisis de la programación concurrente
1.1 Identificación de las primitivas de PVM (Parallel Virtual Machine) en C
//Variables globales
int n,n2[4],suma=0;
//FUNCION MAIN
int main(){
pedir_datos();
pedir_datos2();
Mostrar();
getch();
return 0;
}
//Desarrollo de funcion
//Pedir datos
void pedir_datos(){
system("cls");
//mostrar
void Mostrar(){
}
1. Primero. Realiza el programa usando un enfoque secuencial (sin
paralelismo) observando su comportamiento
Para este punto se utilizaron 2 máquinas virtuales llamadas Mater y otro
Slave1 con las imágenes de Linux MINT (para no tener problemas a un
futuro con pvm3 se modifican los nombres del usuario de las
maquinas).
Después utilizando las terminales de cada uno se tiene que verificar la comunicación entre ellos
Se agregan las direcciones modificadas al host en ambas maquinas
Una vez extraído, se copia la carpeta pvm3 y se pega en el escritorio, dentro de la carpeta
abrimos otra llamada bin y creamos una carpeta llamada LINUX64 (ahí se ejecutaran
nuestros códigos de hello y hello_other que se encuentran en la carpeta examples en
pvm3) en ambas máquinas.
Después, instalaremos pvm3 en ambas máquinas.
3.2 Identificar los problemas que presentan la exclusión mutua y la sección crítica en
programación secuencial
Consideramos 5 filósofos que comparten una mesa redonda con cinco sillas, una
para cada filósofo. En el centro de la mesa hay una fuente de arroz y la mesa se
ha puesto con sólo cinco palillos Cuando un filósofo piensa, no se relaciona, pero
cuando un filósofo siente hambre toma los palillos más próximos a él los cuales
van de izquierda y a la derecha. Un filósofo sólo puede tomar un palillo cada vez,
pero no puede tomar un palillo que esté en manos de otro filosofo Cuando un
filósofo hambriento ha conseguido dos palillos, come sin soltar sus palillos, cuando
termina de comer, los coloca de nuevo sobre la mesa y vuelve a pensar.
Resultado de la ejecución:
Problema Lectores / escritores
0 0 0 0
x 1=x 1 , x 2=x 2 , x 3 =x3 , x 4 … . , x n=x n
x (1 )=( x 11 , x 12 , x 13 … x1n )
x (2 )=( x 21 , x 22 , x 23 … x2n)
En general:
Los métodos indirectos también llamados métodos iterativos son muy útiles
en sistemas
lineales mayores de orden 15 (o sea, n=15 renglones i*15 columnas j).
Están estructurados en la forma simbólica
y 1= y 0 + Δ y 0
y 2= y 1 + Δ y 1
y n= y n−1+ Δ y n−1
El valor actual es igual, al valor anterior más un incremento que depende
del
procedimiento en cuestión.
En estos métodos se realizan iteraciones para aproximarse a la solución de
𝑥 = [𝑥𝑖] aprovechando las características de la matriz de coeficientes A, y
tratando de usar un
menor número de pasos que en un método directo. Algunos de los métodos
más
conocidos son Jacobi, Gauss-Seidel y sobre relajaciones sucesivas (SOR).
condición
de convergencia equivale a exigir que
(k +1)
xi = (bi - Σ(Aij * xj (k )) para j ≠ i) / Aii
Donde:
1x + 2y - z = 6
2x + 8y + z = 7
3x - 2y + 4z = 9
A = | 1 2 -1 |
|2 8 1 |
| 3 -2 4 |
x=|x|
|y|
|z|
b=|6|
|7|
|9|