SlideShare una empresa de Scribd logo
1 de 9
ACTIVIDAD 4
Equipo 2
1465105 Carlos Santiago Serrano Ramírez
1441938 Alfonso Manuel Aguilar Leyva
1447717 Ricardo Joan Garza Reyna
1488566 David Stefano muñoz Benavides
1423807Virgilio Ángel de la Garza Quijano
MULTIPLICACION DE MATRIZ
 Por simplicidad, todo el tiempo trabajaremos
con matrices cuadradas de tamaño n x n.
 Consideramos que el número de
procesadores de los que disponen las
máquinas paralelas es p.
 Las matrices a multiplicar serán A * B y A * C
para visualizar con mayor facilidad el
funcionamiento de un sistema paralelo.
 Para llenar las matrices se utilizo el siguiente
algoritmo:
 for(int a = 0; a < 100; a++){
 for(int b = 0; b < 100; b++){
 A[a][b] =
(int)Math.floor(Math.random()*9+1);
 B[a][b] =
(int)Math.floor(Math.random()*9+1);
 C[a][b] =
(int)Math.floor(Math.random()*9+1);
 }
 }
 En la siguiente línea de código se muestra la
creación delThreadPool:
 ExecutorService tarea = Executors.newFixedThreadPool(2);
 En este caso se utilizaron 2 hilos para resolver
2 tareas la multiplicación de la matriz A * B y
A * C.
 A continuación se muestra la parte de código
encargada de llamar a la clase Hilo para que
realice las tareas (en este caso 2 tareas):
for(int i = 0; i < 2; i++){
tarea.submit(new Hilo(i));}
 La clase que realiza la tarea principal:
 class Hilo implements Runnable
 Dentro de esta clase se encuentra el
algoritmo para resolver las matrices lo mas
relevante del código es:
 for(int i = 0; i < 100; i++){
 for(int j = 0; j < 100; j++){
 for(int k = 0; k < 100; k++){
 Matriz.Res1[i][j] += Matriz.A[i][k] * Matriz.B[k][j];}}}
 AlgunasTécnicas básicas en las que nos
basaremos para la creación de
un algoritmo paralelo.

Divide and Conquer(Divide yVencerás):
 1. Dividir.- Dividir el problema original en sub
problemas mas pequeñas que serán mas fáciles de
realizar.
 2.Vencerás.- Resolver los sub problemas
 3. Unir.- Combinar las soluciones

Conclusiones
 El tiempo de ejecución se disminuye según la
cantidad de hilos que se manejen y aumenta
con la cantidad de tareas, también aumenta
con la cantidad de datos a procesar, sin
embargo no es tan relevante como con la
cantidad de tareas a manejar.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

C4 mate funciones raíz cuadrada - 4º
C4 mate   funciones raíz cuadrada  - 4ºC4 mate   funciones raíz cuadrada  - 4º
C4 mate funciones raíz cuadrada - 4º
 
Practica 3
Practica 3Practica 3
Practica 3
 
Operaciones binarias
Operaciones binariasOperaciones binarias
Operaciones binarias
 
Practica 9
Practica 9Practica 9
Practica 9
 
Factoreo 3
Factoreo 3Factoreo 3
Factoreo 3
 
1 matrices
1 matrices1 matrices
1 matrices
 
17 arreglos bidimensionales java
17 arreglos bidimensionales java17 arreglos bidimensionales java
17 arreglos bidimensionales java
 
Arreglos bidimensionales o matrices
Arreglos bidimensionales o matricesArreglos bidimensionales o matrices
Arreglos bidimensionales o matrices
 
Optimización
OptimizaciónOptimización
Optimización
 
Vectores
VectoresVectores
Vectores
 
Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Graficas
GraficasGraficas
Graficas
 
Graficas
GraficasGraficas
Graficas
 
Actividad 2 programacion orientada a objetos jaren gonzalez
Actividad 2 programacion orientada a objetos  jaren gonzalezActividad 2 programacion orientada a objetos  jaren gonzalez
Actividad 2 programacion orientada a objetos jaren gonzalez
 
01recta
01recta01recta
01recta
 
Graficas
GraficasGraficas
Graficas
 
0. formato producto integrador
0. formato producto integrador0. formato producto integrador
0. formato producto integrador
 
Máxima ejercicio
Máxima ejercicioMáxima ejercicio
Máxima ejercicio
 

Similar a Lab Sistemas Distribuidos y Paralelos Actividad 4

Similar a Lab Sistemas Distribuidos y Paralelos Actividad 4 (20)

Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos Directos
 
Java problems
Java problemsJava problems
Java problems
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Tutorial rapido de octave
Tutorial rapido de octaveTutorial rapido de octave
Tutorial rapido de octave
 
Simulación - Algoritmo lineal
Simulación - Algoritmo linealSimulación - Algoritmo lineal
Simulación - Algoritmo lineal
 
Cecytem
CecytemCecytem
Cecytem
 
Biblioteca java.util por gio
Biblioteca java.util por gioBiblioteca java.util por gio
Biblioteca java.util por gio
 
Informe
InformeInforme
Informe
 
Aline
AlineAline
Aline
 
An 04 metodos-directos
An 04 metodos-directosAn 04 metodos-directos
An 04 metodos-directos
 
3.metodo directo
3.metodo directo3.metodo directo
3.metodo directo
 
Teoría de matrices
Teoría de matricesTeoría de matrices
Teoría de matrices
 
Int_Octave_II_2021.pptx
Int_Octave_II_2021.pptxInt_Octave_II_2021.pptx
Int_Octave_II_2021.pptx
 
colasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdfcolasEjeRe_1_2022.pdf
colasEjeRe_1_2022.pdf
 
Tarea2 08 sol_avion
Tarea2 08 sol_avionTarea2 08 sol_avion
Tarea2 08 sol_avion
 

Lab Sistemas Distribuidos y Paralelos Actividad 4

  • 1. ACTIVIDAD 4 Equipo 2 1465105 Carlos Santiago Serrano Ramírez 1441938 Alfonso Manuel Aguilar Leyva 1447717 Ricardo Joan Garza Reyna 1488566 David Stefano muñoz Benavides 1423807Virgilio Ángel de la Garza Quijano
  • 2. MULTIPLICACION DE MATRIZ  Por simplicidad, todo el tiempo trabajaremos con matrices cuadradas de tamaño n x n.  Consideramos que el número de procesadores de los que disponen las máquinas paralelas es p.  Las matrices a multiplicar serán A * B y A * C para visualizar con mayor facilidad el funcionamiento de un sistema paralelo.
  • 3.  Para llenar las matrices se utilizo el siguiente algoritmo:  for(int a = 0; a < 100; a++){  for(int b = 0; b < 100; b++){  A[a][b] = (int)Math.floor(Math.random()*9+1);  B[a][b] = (int)Math.floor(Math.random()*9+1);  C[a][b] = (int)Math.floor(Math.random()*9+1);  }  }
  • 4.  En la siguiente línea de código se muestra la creación delThreadPool:  ExecutorService tarea = Executors.newFixedThreadPool(2);  En este caso se utilizaron 2 hilos para resolver 2 tareas la multiplicación de la matriz A * B y A * C.  A continuación se muestra la parte de código encargada de llamar a la clase Hilo para que realice las tareas (en este caso 2 tareas): for(int i = 0; i < 2; i++){ tarea.submit(new Hilo(i));}
  • 5.  La clase que realiza la tarea principal:  class Hilo implements Runnable  Dentro de esta clase se encuentra el algoritmo para resolver las matrices lo mas relevante del código es:  for(int i = 0; i < 100; i++){  for(int j = 0; j < 100; j++){  for(int k = 0; k < 100; k++){  Matriz.Res1[i][j] += Matriz.A[i][k] * Matriz.B[k][j];}}}
  • 6.
  • 7.
  • 8.  AlgunasTécnicas básicas en las que nos basaremos para la creación de un algoritmo paralelo.  Divide and Conquer(Divide yVencerás):  1. Dividir.- Dividir el problema original en sub problemas mas pequeñas que serán mas fáciles de realizar.  2.Vencerás.- Resolver los sub problemas  3. Unir.- Combinar las soluciones 
  • 9. Conclusiones  El tiempo de ejecución se disminuye según la cantidad de hilos que se manejen y aumenta con la cantidad de tareas, también aumenta con la cantidad de datos a procesar, sin embargo no es tan relevante como con la cantidad de tareas a manejar.