Cómputo Paralelo
Datos Generales
1. Nombre de la Asignatura 2. Nivel de formación 3. Clave de la Asignatura
Cómputo Paralelo Licenciatura CU268
4. Prerrequisitos 5. Area de Formación 6. Departamento
Pre Especializante Selectiva Departamento de Sistemas de Información
7. Academia 8. Modalidad 9. Tipo de Asignatura
PROGRAMACION Presencial Curso-Taller
10. Carga Horaria
Teoría Práctica Total Créditos
40 40 80 8
12. Trayectoria de la asignatura
Contenido del Programa
13. Presentación

La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas.

El paralelismo se ha empleado durante años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a la evolución tecnológica donde cada vez es mas común encontrar procesadores multinucleo y sistemas de multiples procesadores, esto por las límitaciones físicas que han impedido el aumento de frecuencia de los procesadores. Éstas limitaciones incluyen el consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años.

La computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo o "multicore"

14.- Objetivos del programa
Objetivo General

El estudiante utilizará los conceptos, técnicas y herramientas fundamentales del computo en paralelo utilizado hoy en dí­a en diferentes tipos de dispositivos

15.-Contenido
Contenido temático

Unidad I. Conceptos básicos

Unidad II. Arquitecturas paralelas

Unidad III. Balance de Carga

Unidad IV. Memoria Compartida

Unidad V. Memoria Distribuida


Contenido desarrollado

Unidad I. Conceptos básicos (6hrs teorí­a - 6hrs práctica)

  • Definición de proceso y estado del mismo
  • Paradigma de la programación en paralelo
  • Modelos de arquitectura (MIMD, SIMD, SISD, MISD)
  • Cómputo paralelo y programación en paralelo
  • Memoria compartida y distribuida

Unidad II. Arquitecturas paralelas (6hrs teorí­a - 6hrs práctica)

  • Sistemas de Arquitectura (SMP, MPP, COW, DSM)
  • Modelos de acceso a memoria (UMA, NUMA, COMA, NORMA)
  • Ley de Amdhal
  • Ley de Gustafson
  • Técnicas de algoritmos paralelos (PRAM, APRAM, C3)

Unidad III. Balance de carga (4hrs teorí­a - 4hrs práctica)

  • Medición de balance de carga
  • Asignación dinámica de procesos
  • Balanceo de carga dinámico, robusto y no centralizado

Unidad IV. Memoria compartida (12hrs teorí­a - 12hrs práctica)

  • Java
    • Hilos
    • Sincronización

  • Computo paralelo
    • Semáforos, Monitores
    • Clase observer y observable

  • OpenMP
    • Hilos básicos en C, POSIX
    • Uso del pragma
    • Selección de un procesador para ejecutar cierta tarea
    • Manejo de eventos (scheduler)
    • Bloqueo

  • C#
    • Hilos
    • Task Parallel Library
    • Task-based Asynchronous Pattern
    • BackgroundWorker
    • Bloqueo

Unidad V. Memoria compartida y distribuida (12hrs teorí­a - 12hrs práctica)

  • MPI
    • Comunicar datos entre dos procesos
    • Realizar operaciones de comunicación entre grupos de procesos
    • Crear tipos arbitrarios de datos

  • Programación para procesadores vectoriales
    • Arquitectura escalar y arquitectura vectorial
    • Organizaciones y Segmentación
    • Cinco organizaciones del procesador vectorial
    • Compilación vectorial


16. Actividades Prácticas

Trabajos de investigación, Prácticas en Laboratorio, Análisis y Planteamiento de sus proyectos de aplicaciones

17.- Metodología

Métodos de enseñanza-aprendizaje:

  • Descriptivo
  • Analí­tico
  • Deductivo

Técnicas de aprendizaje:

  • Individuales
  • Laboratorio
  • Estudio de casos

Actividades de aprendizaje:

  • Prácticas de laboratorio
  • Ejercicios en casa y tareas
  • Casos prácticos

Recursos didácticos a utilizar:

  • Pintarrón
  • Cañón
  • Equipo de cómputo

18.- Evaluación

  • 30% Prácticas
  • 50% Proyecto particular para cada framework
  • 10% Mapas conceptuales
  • 10% Actividades en clase

19.- Bibliografía
Otros materiales
20.- Perfil del profesor

El profesor que imparta esta materia debe ser preferentemente egresado de una de las siguientes carreras: Ingenierí­a en Computación, Licenciatura en Informática, Ingenierí­a en Sistemas Electrónicos o Computacionales, o Licenciatura en Sistemas/Tecnologí­as de Información. Además, es recomendable que el profesor posea estudios de posgrado en un área relacionada a las Ciencias computacionales. Es deseable que el profesor tenga experiencia en el análisis, diseño e implementación de sistemas de información visual y sobre todo en programación orientada a objetos con manejo de eventos.

21.- Nombre de los profesores que imparten la materia
22.- Lugar y fecha de su aprobación

ZAPOPAN JALISCO, Octubre 2019


23.- Instancias que aprobaron el programa

ACADEMIA DE PROGRAMACIÓN

COLEGIO DEPARTAMENTAL

24.- Archivo (Documento Firmado)
Computo_Paralelo-Octubre_2019.pdf
Imprimir
Regresar