Desarrollo de Tutoriales en Línea
En esta asignación los estudiantes desarrollan un
tutorial que debe quedar instalado en forma de página Web. La actividad de aula
a evaluar consiste en la lectura del tutorial por parte del resto de los
estudiantes del curso, mientras que el autor del tutorial, el estudiante
evaluado, asiste a los demás en sus dudas y toma nota de las modificaciones que
pueden hacerse al tutorial. Las modificaciones y mejoras introducidas en una
segunda versión del tutorial son evaluadas. Toda la actividad es seguida muy de
cerca por el profesor, que, entre otras cosas, debe velar por la correctitud del
contenido del tutorial.
Al final del curso, el tutorial queda como un
servicio público, en una página Web accesible por todos los miembros de la
comunidad.
Los principios aplicados en el diseño del curso son:
- Proyectos diferentes para cada estudiante.
- Participación en la elaboración del proyecto.
- Realización simultánea de varios proyectos.
- Realización de proyectos más reales.
El material desarrollado es a su vez material de la
siguiente edición del curso, que debe ir actualizándose a medida que pasa el
tiempo, debido a que las versiones de software de casi cualquier herramienta
están en continua evolución. Como un ejemplo de los tutoriales desarrollados en
los cursos de postgrado de Caracterización de Desempeño de Sistemas de
Computación y Tópicos Especiales en Paralelismo, en los que participan alumnos
de pregrado con permisos especiales de la coordinación, se tienen los siguientes
tutoriales:
Open PBS: sistema de colas
para procesamiento por lotes (batch) instalado en el CAR
HPF: introducción a la
programación en Fortran de Alto Rendimiento (High Performance Fortran o HPF)
HPF (2da parte): instrucciones
básicas para compilar y ejecutar un programa en HPF bajo los compiladores PGHPF
y Adaptor.
LAM: ambiente de programación y
sistema de desarrollo MPI, para un conjunto heterogéneo de computadoras en una
red.
PVM: paquete de software que
permite a una colección heterogénea de computadoras, que estén conectadas a
través de una red, ser usadas como una sola máquina paralela
Lapack: librería de rutinas
para resolver sistemas lineales, frecuentes en diversas aplicaciones.
pgdbg: depurador (debugger)
de Portland Group.
pgprof: perfilador (profiler)
de Portland Group.
Orbacus: un software que
implementa el estándar CORBA, que es una arquitectura y especificación para
crear, distribuir y manejar programas de objetos distribuidos en una red
Globus: un conjunto de
herramientas que permite utilizar recursos distribuidos
Netsolve: sistema
distribuido que provee servicios de calculo numerico
SUMA: sistema distribuido para
ejecucion de bytecode de Java
mpiJava: envoltorio (wrapper)
de Java para usar MPI.
jpvm: envoltorio (wrapper) de
Java para usar PVM.
jomp: implementacion de Open
MP para Java.
Pious: sistema virtual de
manejo de archivos en forma paralela.
TotalView: herramienta de
ayuda a la programación que permite depurar programas paralelos.
Paradyn: herramienta para
medir el desempeño de programas paralelos y distribuidos.
CAPTools: herramienta semi-automática
de apoyo a la paralelización de programas seriales escritos en FORTRAN77.
Para++: un conjunto de
clases en C++ que permiten manipular tanto las tareas como los mensajes en
aplicaciones paralelas y distribuidas.
Condor: una aplicación que
crea un ambiente de procesamiento de alto caudal o HTC (High Throughput
Computing), aprovechando de manera efectiva el poder de cómputo que da un
cluster de máquinas UNIX en una red.
NQS: herramienta para hacer
procesamiento por lotes (batch) en el sistema operativo UNIX
PADE: ambiente
configurable para el desarrollo de aplicaciones paralelas basadas en el uso de
la librería de pase de mensajes PVM.