Difference between revisions of "Computación de alto rendimiento"

From Supercomputación y Cálculo Científico UIS
Line 1: Line 1:
 
<p>__NOTOC__</p>
 
<p>__NOTOC__</p>
 
<div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div>
 
<div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div>
<p>&nbsp;</p>
+
<p>&nbsp;</p>Volver a  [[Cursos]]<div class="column clearfix"><div class="col-md-14"><div class="panel-body"><p>'''Computación de Alto Rendimiento - Código 24433'''</p><p><b>[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernandez, PhD.]</b> - (c b a r r i o s (@) u i s . e d u . c o )</p><p>Asistencia Técnica-Teórica:. Equipo SC3UIS </p></div></div></div>
<div class="btn btn-primary"><em class="fa  fa-long-arrow-left">&nbsp;</em> [[Cursos]]</div>
+
==='''PRESENTACION DEL CURSO'''===
<p>&nbsp;</p>
 
 
<div class="column clearfix">
 
<div class="column clearfix">
<div class="col-md-14">
 
<div class="well well-midnight">
 
<h5>Computaci&oacute;n de alto rendimiento - C&oacute;digo 24433</h5>
 
</div>
 
</div>
 
 
</div>
 
</div>
 +
==='''Contenido'''===
 
<div class="col-md-14">
 
<div class="col-md-14">
<div class="panel panel-darker-white-border">
+
#Introducción a la Computación de Alto Rendimiento y Cálculo Científico
<div class="panel-heading">
+
#*Altas Prestaciones y Alta Demanda Computacional
<h3 class="panel-title">Profesor</h3>
+
#*Computación Científica y de Alto Rendimiento
</div>
+
#*Evolución de la Computación de Alto Rendimiento
<div class="panel-body">
+
#*El Top500 y otros rankings
<p><strong>[https://sites.google.com/site/carlosjaimebh/ Carlos Jaime Barrios Hernandez, PhD.]</strong> - (cbarrios@uis.edu.co)</p>
+
#Arquitecturas Paralelas y Sistemas Escalables
</div>
+
#*Modelos de Máquinas  y Ejecución Paralelas
</div>
+
#*Paralelismo y Comunicación
</div>
+
#*Caracterización de Flynn
<div class="col-md-14">
+
#*Multinucleos y Multiprocesamiento
<div class="panel panel-darker-white-border">
+
#*Procesamiento Vectorial
<div class="panel-heading">
+
#*Arquitecturas para el Procesamiento Masivamente Paralelo (Manycores)
<h3 class="panel-title">PRESENTACION</h3>
+
#*Modelos de Memoria
</div>
+
#**Jerarquia de Memoria
<div class="panel-body">
+
#*Sistemas Distribuidos de Gran Escala
<p>El t&eacute;rmino Computaci&oacute;n de Alto Rendimiento o Computaci&oacute;n de Alto Desempe&ntilde;o esta relacionado con el c&oacute;mputo para el tratamiento de problemas de gran reto, que a su vez, son aquellos problemas que requieren arquitecturas escalables de c&oacute;mputo para su tratamiento. La computaci&oacute;n de alto rendimiento es igualmente entendida como supercomputaci&oacute;n o computaci&oacute;n avanzada, debido a sus caracteristicas propias que la hacen ubicar "mas all&aacute;" del contexto normal y temporal de la computaci&oacute;n.</p>
+
#*Unidades de Procesamiento Tensor
<p>Este curso para maestria en inform&aacute;tica, ofrece un "estado del arte" de la computaci&oacute;n de alto rendimiento y direcciones futuras desde dos puntos de vista especificos, pero muy relacionados entre si: arquitectural y aplicativo. Este &uacute;ltimo muy ligado con el c&aacute;lculo cient&iacute;fico.</p>
+
#*Unidades de Procesamiento Cuántico
</div>
+
#*Sistemas Operativos, Sistemas de Archivos, Calendarización y Monitoreo en Arquitecturas Paralelas
</div>
+
#**Aspectos especiales de Linux y Slurm
</div>
+
#*Algunos aspectos relacionados con CAPEX y Ambientes de Implementación de Plataformas
<div class="col-md-14">
+
#**Energia y Temperatura
<div class="panel panel-darker-white-border">
+
#**Seguridad y Comodidad
<div class="panel-heading">
+
#Algoritmos Concurrentes y Paralelos
<h3 class="panel-title">Contenido</h3>
+
#*Caracterización de Paralelismo
</div>
+
#*Granularidad
<div class="panel-body"><ol>
+
#*Multihilos y Multiprocesos
<li>Introducci&oacute;n al C&oacute;mputo de Alto Rendimiento y C&aacute;lculo Cient&iacute;fico
+
#*Modelos de Computación (RAM, PRAM, Sorting Networks, BSP, LogP y otros)
<ul>
+
#*Modelos de Algoritmos Concurrentes
<li>C&oacute;mputo de Alto Rendimiento y e-Ciencia: El paradigma del Tratamiento Intensivo de Datos </li>
+
#**Descomposición de Tareas
<li>e-Interacci&oacute;n y Arquitecturas Escalables (Y de Gran Escala) </li>
+
#**Descomposición de Datos
<li>C&oacute;mputo de Alto Rendimiento (HPC), Computo de Alta Demanda (HTC), Computaci&oacute;n Voluntaria y otras tendencias. </li>
+
#**Dividir y Conquistar
</ul>
+
#**Tuberias (Pipeline)
</li>
+
#**Recursividad y Otros (Embarrassingly Parallelism y Otros)
<li>Arquitecturas Escalables: Paralelismo y Distribuci&oacute;n
+
#*Algoritmos No Paralelos
<ul>
+
#*Balanceo de Carga y Calendarización (Scheduling)
<li>Arquitectura General de Sistemas</li>
+
#*Algunos Aspectos Importantes de Comunicación
<li>Taxonom&iacute;a de Flynn</li>
+
#Paradigmas y Modelos de Programación Paralela
<li>Algunos Aspectos de Medidas de Rendimiento: Ley de Amhdal y otros</li>
+
#*Ambientes de Programación Paralela
<li>Procesadores Multicore</li>
+
#*Modelo de Programación de Memoria Compartida
<li>Maquinas Paralelas
+
#**OpenMP
<ul>
+
#*Modelo de Programación de Memoria Distribuída
<li>M&aacute;quinas de Memoria Compartida</li>
+
#**Paso de Mensajes con MPI
<li>M&aacute;quinas de Memoria Distribuida</li>
+
#*Modelo Programación de Memoria Híbrida/Heterogénea
<li>M&aacute;quinas H&iacute;bridas (Sistemas H&iacute;bridos)</li>
+
#**Programación de Sistemas CPU-GPU (Sistemas GPGPU)
</ul>
+
#***Fundamentos de Programación de GPUs y Múltiples GPU con CUDA
</li>
+
#*Uso de Directivas de Aceleración con OpenACC
<li>Sistemas Distribu&iacute;dos de Gran Escala
+
#*Otros Mecanismos de Implementación y Aceleración de Aplicaciones
<ul>
+
#*Aspectos Importantes de Comunicación, Balanceo de Carga y Tolerancia a Fallos desde la Implementación
<li>Grid Computing</li>
+
#*Implementaciones hibridas
<li>Cloud Computing</li>
+
#**OpenMP + MPI
</ul>
+
#**CUDA + MPI
</li>
+
#Optimización
<li>Un Caso Especial: Computadores Cu&aacute;nticos</li>
+
#*Optimización Local y Global Paralela
<li>Redes de Alta Velocidad o de Alto Rendimiento
+
#Evaluación de Desempeño
<ul>
+
#*Latencia y Throughput
<li>Caracteristicas Especiales de Rendimiento</li>
+
#*Speedup (Aceleración), Eficiencia y Escalabilidad
<li>Topolog&iacute;as y Estrategias (Buses, Swiches, fan-tree networks, Mesh, H&iacute;bridas)</li>
+
#*Ley de Amhdal
<li>Algunos Casos Concretos (Infiniband, Gigabit Ethernet, Myrinet)</li>
+
#*Ley de Gustaffon-Barsis
</ul>
+
#*Complejidad Asimptótica (Aceleración y Eficiencia)
</li>
+
#*Modelo de Little
</ul>
+
#*Análisis de Rendimiento y Tunning (Ajuste)
</li>
+
#Debugging and Profiling
<li>Dise&ntilde;o y Desarrollo de Aplicaciones
+
#*Consideraciones de Debugging y Monitoreo de Rendimiento y Comportamiento
<ul>
+
#*Herramientas para el Debugging y el Profling
<li>Introducci&oacute;n a las T&eacute;cnicas de Optimizaci&oacute;n de C&oacute;digos Seriales</li>
+
#Lineamientos para el Desarrollo de Aplicaciones Paralelas
<li>Concurrencia y Paralelismo</li>
+
#*Patrones para el Flujo de Control y de Ejecución
<li>Modelo General de Dise&ntilde;o de Algoritmos Paralelos</li>
+
#*Patrones para la Administración de Datos
<li>LIneamientos para el Dise&ntilde;o y Desarrollo de Aplicaciones Paralelas y Concurrentes</li>
+
#*Espacios de Diseño y Desarrollo de Programas Paralelos
<li>Modelos de Programaci&oacute;n Paralela  
+
#**Búsqueda de Explotación de Concurrencia
<ul>
+
#**Diseño de Estructura de Algoritmo
<li>Programaci&oacute;n de Memoria Compartida</li>
+
#**Selección de Estructuras de Soporte de Algoritmos Paralelos
<li>Programaci&oacute;n de Memoria Distribuida - Paso de Mensajes</li>
+
#**Selección de Mecanismos de Implementación
<li>Paralelizacion Hibrida
+
#Direcciones y Tendencias en Programación Paralela
<ul>
+
#*HPC@Green: Eficiencia Computacional Hoy (Consumo Energético/Procesamiento)
<li>M&aacute;quinas Masivamente Paralelas y Aceleradores</li>
+
#*Explotación de Unidades Tensor y Aplicaciones Emergentes
<li>Multicores + Nodos usando OpenMP y MPI</li>
+
#*Extracción de Paralelismo en Códigos Secuenciales
</ul>
+
#*Explotación de Memoria
</li>
+
#*Paradigmas de Programación Emergentes
</ul>
 
</li>
 
</ul>
 
</li>
 
<li>e-Interacci&oacute;n de Alto Rendimiento
 
<ul>
 
<li>Introducci&oacute;n a la e-Interaccion</li>
 
<li>Introducci&oacute;n a la Informatica Ambiente</li>
 
</ul>
 
</li>
 
<li>Tendencias, Direcciones, Problemas Abiertos desde la Supercomputaci&oacute;n hasta la Computaci&oacute;n Extrema (Retos T&eacute;cnicos, Cient&iacute;ficos, Econ&oacute;micos, Ambientales y Sociales)</li>
 
</ol></div>
 
</div>
 
</div>
 
<div class="col-md-14">
 
<div class="panel panel-darker-white-border">
 
<div class="panel-heading">
 
<h3 class="panel-title">MATERIAL DEL CURSO</h3>
 
</div>
 
<div class="panel-body">
 
<ul>
 
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/KeZaxEiiqARINLl Sesi&oacute;n 1]</li>
 
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/hLho6HAyY5d5qpG Sesi&oacute;n 2]</li>
 
<li>[http://www.sc3.uis.edu.co/owncloud/index.php/s/UxIdm098TpiuBIb Sesion 3]</li>
 
</ul>
 
<h3><strong>MATERIAL DEL CURSO II - 2015</strong></h3>
 
</div>
 
</div>
 
</div>
 
<div class="col-md-14">
 
<div class="panel panel-darker-white-border">
 
<div class="panel-heading">
 
<h3 class="panel-title"><strong>BIBLIOGRAF&Iacute;A Y FUENTES DE INFORMACION</strong></h3>
 
</div>
 
<div class="panel-body">
 
<ul>
 
<li>[http://research.microsoft.com/en-us/collaboration/fourthparadigm/ The Fourth Paradigm: Data-Intensive Scientific Discovery]</li>
 
<li>[http://www.mcs.anl.gov/~itf/dbpp/ Designing and Building Parallel Programs, by Ian Foster]</li>
 
<li>[http://www.cise.ufl.edu/research/ParallelPatterns/ Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009. ]</li>
 
<li>The Art of Concurrency &ldquo;A thread Monkey&rsquo;s Guide to Writing Parallel Applications&rdquo;, by Clay Breshears (Ed. O Reilly, 2009)]</li>
 
<li>Parallel Scientific Computing in C++ and MPI &laquo; A Seamless Approach to Parallel Algorithms and Their Implementation &raquo;, Karniadakis and Kirby II (Cambridge Press)]</li>
 
<li>Algorithms Sequential and Parallel &laquo; A Unified Approach &raquo; Miller and Boxer (Computing Engineering Series)]</li>
 
<li>Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)]</li>
 
<li>Programming Massively Parallel Processors &laquo; A Hands-on Approach &raquo; , Kirk and Hwu (Nvidia/Morgan Kaufmann)]</li>
 
<li>Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)]</li>
 
<li>Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)]</li>
 
<li>CUDA by Example &laquo; An Introduction to General-Purpose GPU Programming &raquo; Sanders and Kandrot (Nvidia/Addison Wesley)]</li>
 
<li>[http://developer.nvidia.com/ NVIDIA]</li>
 
<li>[http://www.sc3.uis.edu.co SC3]</li>
 
<li>[https://computing.llnl.gov/tutorials/parallel_comp/ Computing.llnl.gov]</li>
 
<li>[http://www.sc-camp.org SC-Camp]</li>
 
</ul>
 
</div>
 
</div>
 
 
</div>
 
</div>
 +
==='''Evaluación'''===
 +
====='''Evaluaciones programadas para el 2do Semestre de 2018'''=====
 +
*'''Evaluación Inicial:''' 20% Evaluación Escrita de Fundamentos (Individual), Unidades 1 a la 3. : Martes 4 de Diciembre de 2018  de 7:00 a 9:00
 +
*'''Evaluación Dos''': 30% Participación en el [http://www.ccarla.org/ #CARLA2018]  (Domingo 23 al Viernes 28 de Septiembre de 2018) de la siguiente manera:
 +
**Participación en al menos un tutorial
 +
**Participación en al menos uno de los workshops
 +
**Participación en el cuerpo central de la conferencia
 +
DEBE PRESENTAR EL CERTIFICADO DE PARTICIPACIÓN DE CADA UNA DE LAS ACTIVIDADES el martes 2 de octubre. Los matriculados en el curso están exonerados del pago de registro e inscripción.
 +
*'''Evaluación Tres''': 20% Taller de Evaluación de Programación Paralela (Individual): Martes 23 de Octubre de 2018 de 7:00 a 9:00
 +
*'''Evaluación Final:''' 30% Proyecto de Aplicación Final (Por Parejas Asignadas por el Profesor): Presentación: Martes 4 de Diciembre de 2018 de 7:00 a 9:00
 +
**Se asignará un problema a desarrollar y tratar por parejas que deberá presentarse y se tendrán en cuenta los siguientes elementos:
 +
***Análisis y Diseño del Algoritmo de Solución
 +
***Calidad, Escalabilidad y Rendimiento de la Implementación (Selección de Paradigma de Programación)
 +
***Análisis de Rendimiento y Optimización
 +
**Previa a la presentación de resultados deberá enviarse un reporte tipo articulo de no mayor de 8 páginas a doble columna y entregar los códigos fuente y las condiciones de ejecución de la aplicación.
 +
==='''Bibliografía y Fuentes de Información'''===
 +
<div class="col-md-14"><div class="panel panel-darker-white-border"><ul><li>Elements of Parallel Computing, Eric Aubanel (Chapman & Hall/CRC)</li><li>Essentials of Computer Architecture, D. Comer (CRC Press)</li><li>High Performance Embedded Computing: Applications in Cyber-Physical systems and Mobile Computing, M. Wolf (Morgan Kaufmann)</li><li>[http://research.microsoft.com/en-us/collaboration/fourthparadigm/ The Fourth Paradigm: Data-Intensive Scientific Discovery]</li><li>[http://www.mcs.anl.gov/~itf/dbpp/ Designing and Building Parallel Programs, by Ian Foster]</li><li>[http://www.cise.ufl.edu/research/ParallelPatterns/ Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009]</li><li>Patterns for Parallel Software Design, Jorge Luis Ortega-Arjona (Wiley)</li><li>Structured Parallel Programming: Patterns for Efficient Computation, M. McCool, A. D. Robison and J. Reinders (Morgan Kaufmann)</li><li>The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)</li><li>Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)</li><li>Parallel And Distributed Computation Numerical Methods, D. P. Bertsekas and J. N. Tsitsiklis (Prentice Hall)</li><li>An Introduction to High Performance Scientific Computing, Scientific and Engineering Computation Series, Ll. D. Fosdick, E. R. Jessup, C. J. C. Schauble and G. Dmik (MIT Press)</li><li>The Algorithms Design Manual, S. S. Skiena ( Springer)</li><li>Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)</li><li>Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)</li><li>Fundamentals of Multicore Software Development, Ed. Victor Pankratius, Ali-Reza Adl-Tabatabai and Walter Tichy (CRC Press)</li><li>Introduction to HPC with MPI for Data Science, Frank Nielsen (Springer)</li><li>Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)</li><li>CUDA Application Design and Development, Rob Farber (Nvidia/Morgan Kaufmann)</li><li>Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)</li><li>Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)</li><li>CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, S. Cook (Morgan Kaufmann)</li><li>The CUDA Handbook: A Comprehensive Guide to GPU Programming, N. Wilt (Addison-Wesley)</li><li>CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)</li><li>CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming, G. Ruetsch and M. Fatica (Morgan Kaufmann/PGI/Nvidia)</li><li>HPC@Green IT: Green High Performance Computing Methods, R. Gruber and V. Keller (Springer)</li><li>OpenACC for Programmers: Concepts and Strategies, S. Chandraserkaran and G. Juckeland (Addison-Wesley)</li><li>OpenACC: Parallel Programming with OpenACC, Edited by Rob Farber (Morgan Kaufmann)</li><li>High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches, J. Reinders and J. Jeffers (Morgan Kaufmann)</li><li>[https://www.openmp.org/ OpenMP]</li><li>[https://www.openacc.org/ OpenACC]</li><li>[http://developer.nvidia.com/ NVIDIA]</li><li>[http://www.sc3.uis.edu.co/ SC3]</li><li>[http://www.red-ricap.org/ RICAP]</li><li>[https://computing.llnl.gov/tutorials/parallel_comp/ Computing.llnl.gov]</li><li>[http://www.sc-camp.org/ SC-Camp]</li></ul></div></div>
 +
==='''CONSULTA A ESTUDIANTES'''===
 +
Los martes puede realizarse consulta en LP226 o en Supercomputación UIS 4to piso del CENTIC pero se recomienda solicitar cita por email previamente.

Revision as of 12:03, 16 August 2018

Logo_sc33.png

 

Volver a Cursos

Computación de Alto Rendimiento - Código 24433

Carlos Jaime Barrios Hernandez, PhD. - (c b a r r i o s (@) u i s . e d u . c o )

Asistencia Técnica-Teórica:. Equipo SC3UIS

PRESENTACION DEL CURSO

Contenido

  1. Introducción a la Computación de Alto Rendimiento y Cálculo Científico
    • Altas Prestaciones y Alta Demanda Computacional
    • Computación Científica y de Alto Rendimiento
    • Evolución de la Computación de Alto Rendimiento
    • El Top500 y otros rankings
  2. Arquitecturas Paralelas y Sistemas Escalables
    • Modelos de Máquinas y Ejecución Paralelas
    • Paralelismo y Comunicación
    • Caracterización de Flynn
    • Multinucleos y Multiprocesamiento
    • Procesamiento Vectorial
    • Arquitecturas para el Procesamiento Masivamente Paralelo (Manycores)
    • Modelos de Memoria
      • Jerarquia de Memoria
    • Sistemas Distribuidos de Gran Escala
    • Unidades de Procesamiento Tensor
    • Unidades de Procesamiento Cuántico
    • Sistemas Operativos, Sistemas de Archivos, Calendarización y Monitoreo en Arquitecturas Paralelas
      • Aspectos especiales de Linux y Slurm
    • Algunos aspectos relacionados con CAPEX y Ambientes de Implementación de Plataformas
      • Energia y Temperatura
      • Seguridad y Comodidad
  3. Algoritmos Concurrentes y Paralelos
    • Caracterización de Paralelismo
    • Granularidad
    • Multihilos y Multiprocesos
    • Modelos de Computación (RAM, PRAM, Sorting Networks, BSP, LogP y otros)
    • Modelos de Algoritmos Concurrentes
      • Descomposición de Tareas
      • Descomposición de Datos
      • Dividir y Conquistar
      • Tuberias (Pipeline)
      • Recursividad y Otros (Embarrassingly Parallelism y Otros)
    • Algoritmos No Paralelos
    • Balanceo de Carga y Calendarización (Scheduling)
    • Algunos Aspectos Importantes de Comunicación
  4. Paradigmas y Modelos de Programación Paralela
    • Ambientes de Programación Paralela
    • Modelo de Programación de Memoria Compartida
      • OpenMP
    • Modelo de Programación de Memoria Distribuída
      • Paso de Mensajes con MPI
    • Modelo Programación de Memoria Híbrida/Heterogénea
      • Programación de Sistemas CPU-GPU (Sistemas GPGPU)
        • Fundamentos de Programación de GPUs y Múltiples GPU con CUDA
    • Uso de Directivas de Aceleración con OpenACC
    • Otros Mecanismos de Implementación y Aceleración de Aplicaciones
    • Aspectos Importantes de Comunicación, Balanceo de Carga y Tolerancia a Fallos desde la Implementación
    • Implementaciones hibridas
      • OpenMP + MPI
      • CUDA + MPI
  5. Optimización
    • Optimización Local y Global Paralela
  6. Evaluación de Desempeño
    • Latencia y Throughput
    • Speedup (Aceleración), Eficiencia y Escalabilidad
    • Ley de Amhdal
    • Ley de Gustaffon-Barsis
    • Complejidad Asimptótica (Aceleración y Eficiencia)
    • Modelo de Little
    • Análisis de Rendimiento y Tunning (Ajuste)
  7. Debugging and Profiling
    • Consideraciones de Debugging y Monitoreo de Rendimiento y Comportamiento
    • Herramientas para el Debugging y el Profling
  8. Lineamientos para el Desarrollo de Aplicaciones Paralelas
    • Patrones para el Flujo de Control y de Ejecución
    • Patrones para la Administración de Datos
    • Espacios de Diseño y Desarrollo de Programas Paralelos
      • Búsqueda de Explotación de Concurrencia
      • Diseño de Estructura de Algoritmo
      • Selección de Estructuras de Soporte de Algoritmos Paralelos
      • Selección de Mecanismos de Implementación
  9. Direcciones y Tendencias en Programación Paralela
    • HPC@Green: Eficiencia Computacional Hoy (Consumo Energético/Procesamiento)
    • Explotación de Unidades Tensor y Aplicaciones Emergentes
    • Extracción de Paralelismo en Códigos Secuenciales
    • Explotación de Memoria
    • Paradigmas de Programación Emergentes

Evaluación

Evaluaciones programadas para el 2do Semestre de 2018
  • Evaluación Inicial: 20% Evaluación Escrita de Fundamentos (Individual), Unidades 1 a la 3. : Martes 4 de Diciembre de 2018 de 7:00 a 9:00
  • Evaluación Dos: 30% Participación en el #CARLA2018 (Domingo 23 al Viernes 28 de Septiembre de 2018) de la siguiente manera:
    • Participación en al menos un tutorial
    • Participación en al menos uno de los workshops
    • Participación en el cuerpo central de la conferencia

DEBE PRESENTAR EL CERTIFICADO DE PARTICIPACIÓN DE CADA UNA DE LAS ACTIVIDADES el martes 2 de octubre. Los matriculados en el curso están exonerados del pago de registro e inscripción.

  • Evaluación Tres: 20% Taller de Evaluación de Programación Paralela (Individual): Martes 23 de Octubre de 2018 de 7:00 a 9:00
  • Evaluación Final: 30% Proyecto de Aplicación Final (Por Parejas Asignadas por el Profesor): Presentación: Martes 4 de Diciembre de 2018 de 7:00 a 9:00
    • Se asignará un problema a desarrollar y tratar por parejas que deberá presentarse y se tendrán en cuenta los siguientes elementos:
      • Análisis y Diseño del Algoritmo de Solución
      • Calidad, Escalabilidad y Rendimiento de la Implementación (Selección de Paradigma de Programación)
      • Análisis de Rendimiento y Optimización
    • Previa a la presentación de resultados deberá enviarse un reporte tipo articulo de no mayor de 8 páginas a doble columna y entregar los códigos fuente y las condiciones de ejecución de la aplicación.

Bibliografía y Fuentes de Información

  • Elements of Parallel Computing, Eric Aubanel (Chapman & Hall/CRC)
  • Essentials of Computer Architecture, D. Comer (CRC Press)
  • High Performance Embedded Computing: Applications in Cyber-Physical systems and Mobile Computing, M. Wolf (Morgan Kaufmann)
  • The Fourth Paradigm: Data-Intensive Scientific Discovery
  • Designing and Building Parallel Programs, by Ian Foster
  • Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009
  • Patterns for Parallel Software Design, Jorge Luis Ortega-Arjona (Wiley)
  • Structured Parallel Programming: Patterns for Efficient Computation, M. McCool, A. D. Robison and J. Reinders (Morgan Kaufmann)
  • The Art of Concurrency “A thread Monkey’s Guide to Writing Parallel Applications”, by Clay Breshears (Ed. O Reilly, 2009)
  • Parallel Scientific Computing in C++ and MPI « A Seamless Approach to Parallel Algorithms and Their Implementation », Karniadakis and Kirby II (Cambridge Press)
  • Parallel And Distributed Computation Numerical Methods, D. P. Bertsekas and J. N. Tsitsiklis (Prentice Hall)
  • An Introduction to High Performance Scientific Computing, Scientific and Engineering Computation Series, Ll. D. Fosdick, E. R. Jessup, C. J. C. Schauble and G. Dmik (MIT Press)
  • The Algorithms Design Manual, S. S. Skiena ( Springer)
  • Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)
  • Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)
  • Fundamentals of Multicore Software Development, Ed. Victor Pankratius, Ali-Reza Adl-Tabatabai and Walter Tichy (CRC Press)
  • Introduction to HPC with MPI for Data Science, Frank Nielsen (Springer)
  • Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (Nvidia/Morgan Kaufmann)
  • CUDA Application Design and Development, Rob Farber (Nvidia/Morgan Kaufmann)
  • Introduction to High Performance Computing for Scientists and Engineers, Hager and Wellein (Chapman and Hall/CRC)
  • Sourcebook of Parallel Computing , Dongarra, Foster, Fox, Groop, Kennedy, Torczon and White (Morgan Kaufmann)
  • CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, S. Cook (Morgan Kaufmann)
  • The CUDA Handbook: A Comprehensive Guide to GPU Programming, N. Wilt (Addison-Wesley)
  • CUDA by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)
  • CUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming, G. Ruetsch and M. Fatica (Morgan Kaufmann/PGI/Nvidia)
  • HPC@Green IT: Green High Performance Computing Methods, R. Gruber and V. Keller (Springer)
  • OpenACC for Programmers: Concepts and Strategies, S. Chandraserkaran and G. Juckeland (Addison-Wesley)
  • OpenACC: Parallel Programming with OpenACC, Edited by Rob Farber (Morgan Kaufmann)
  • High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches, J. Reinders and J. Jeffers (Morgan Kaufmann)
  • OpenMP
  • OpenACC
  • NVIDIA
  • SC3
  • RICAP
  • Computing.llnl.gov
  • SC-Camp

CONSULTA A ESTUDIANTES

Los martes puede realizarse consulta en LP226 o en Supercomputación UIS 4to piso del CENTIC pero se recomienda solicitar cita por email previamente.