Trabajos Prácticos

2015

Fecha entrega: 30/09/2015
Integrantes: 1 o 2 personas
Enviar el trabajo finalizado al Dr. Cristian Mateos Diaz (cristian.mateos@isistan.unicen.edu.ar).

En el link se encuentra un proyecto Eclipse que implementa en Java tres aplicaciones intensivas en CPU (MolDyn - simulación de fuerzas gravitacionales, MonteCarlo - Simulación de Monte Carlo, Ray Tracer - aplicación del algoritmo de ray tracing 3D). Más detalles sobre estas aplicaciones pueden encontrarse acá. Dentro del proyecto, la clase JGFAllSizeB corre las aplicaciones con un tamaño de entrada fijo en cada caso y realiza un reporte detallado de tiempos de ejecución. Es posible configurar la cantidad de threads utilizados en el cómputo (nthreads = 1 implica ejecución secuencial, nthreads > 1 implica ejecución paralela en varios cores de una máquina).

  1. Reimplemente las tres aplicaciones utilizando la API de concurrencia Java vista en teoría. Para esto, deberá eliminar el código relativo a uso explícito de threads y proceder a su reemplazo por código de la mencionada biblioteca.
  2. Realice una comparación experimental entre las aplicaciones obtenidas, y las versiones originales utilizando 1 o más threads. Tenga en cuenta los criterios para la realización de experimentos con software paralelo dados en teoría, vale decir:
    • Para obtener un tiempo estimado de ejecución en cada caso, realice varias ejecuciones de cada variante de las aplicaciones. Luego promedie estos tiempos para obtener el valor estimativo. Si el desvío estándar de los experimentos es aún grande, añada más ejecuciones hasta tener un promedio estadísticamente significativo.
    • Varíe la cantidad de tareas paralelas (en las aplicaciones obtenidas) o threads (en las aplicaciones originales), de forma tal de analizar cómo se comporta la performance a medida que el nivel de paralelismo aumenta.
  3. Junto con el software desarrollado, entregar un informe de un máximo de5 páginas. Agregue toda información que considere relevante a lo solicitado en los puntos anteriores (cálculo de mejora, gráficos, tablas, discusión, etc.).
Comments