Act 4
description
Transcript of Act 4
Actividad #4
Equipo 5
Aplicación del Algoritmo en paralelo
1.- Inicio2.- Incluir librerías3.- Definición de variables auxiliares (i,j)4.- Empieza a contar el reloj5.- Creación Matriz 16.- Llenado de matriz 1 (random)7.- Creación Matriz 28.- Llenado de matriz 2 (random)9.- Creación de 4 hilos10.- Asignación de tareas a los hilos (4 tareas) Para cada hilo se asignara una porcion de las matrices las cuales fueron divididas en 4 partes, y para cada hilo y cada parte de las matrices se les sumara la misma celda11.- Se creara la matriz resultante12.- Se imprimirá la matriz 1, 2 y resultante13.- Termina conteo de tiempo14.- Imprimir tiempo15.- Fin
Explicación
20% -> Creación de espacios en memoria
40% -> Llenado de matrices (random)
60% -> Creación de hilos y asignación de tareas
80% -> Sumas (Operaciones)
100% -> Impresiones (Fin)
Diagrama de Flujo
1 42 3
1 2
5 5
3 4
5 5
5
Python con Hilos
Python sin Hilos
Tabla comparativa
0% 20% 40% 60% 80% 100%0
0.2
0.4
0.6
0.8
1
1.2
Con hilosSin hilos
C con Hilos
C sin Hilos
C++
20% 40% 60% 80% 100%0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
Con hilosSin Hilos
Java con Hilos
Java sin Hilos
Java
0% 20% 40% 60% 80% 100%0
0.2
0.4
0.6
0.8
1
1.2
1.4
con hilosSin hilos
Comparación entre los 3 lenguajes (con hilos)
0% 20% 40% 60% 80% 100%0
0.2
0.4
0.6
0.8
1
1.2
C++PythonJava
0% 20% 40% 60% 80% 100%0
0.2
0.4
0.6
0.8
1
1.2
1.4
C++
Python
Java
Comparación entre los 3 lenguajes (Sin hilos)
ConclusiónComo se observó en las tablas, el lenguaje Java se tarda mas su tiempo de ejecución; esto es debido a que Java se maneja atreves de una máquina virtual.Para este ejemplo en especifico los lenguajes con menor tiempo de ejecución son c++ seguido de python.Otra de las observaciones, es que en definitiva al momento de dividir las tareas (y asignárselas a los hilos) y paralelizar, reduce el tiempo de ejecución del programa. Aunque en este ejemplo se ve muy poca la diferencia, conforme mas se amplié la matriz mas fácilmente se apreciará el cambio