Difference between revisions of "Algoritmos y Computación de Alto Rendimiento"

From Supercomputación y Cálculo Científico UIS
Line 18: Line 18:
 
#*Buenas Prácticas de Desarrollo
 
#*Buenas Prácticas de Desarrollo
 
#*Compilación Ejecución Eficiente y Optimización
 
#*Compilación Ejecución Eficiente y Optimización
#*Debugging, Profiling and Tracing.  
+
#*Debugging, Profiling and Tracing.
 
#Sistemas, Plataformas y Ambientes de Desarrollo y Ejecución  
 
#Sistemas, Plataformas y Ambientes de Desarrollo y Ejecución  
 
#*Aquitecturas computacionales para investigación (y desarrollo científico)
 
#*Aquitecturas computacionales para investigación (y desarrollo científico)
Line 24: Line 24:
 
#**Repositorios (GitHub/GitLab) y Ambientes Colaborativos
 
#**Repositorios (GitHub/GitLab) y Ambientes Colaborativos
 
#**Sistemas Operativos (Linux)
 
#**Sistemas Operativos (Linux)
#*Interacción y Plataformas de Gran Escala  
+
#*Interacción y Plataformas de Gran Escala
 
#Cómputo Científico Paralelo
 
#Cómputo Científico Paralelo
 
#*Concurrencia y Paralelismo
 
#*Concurrencia y Paralelismo
Line 33: Line 33:
 
#**Otras Posibilidades
 
#**Otras Posibilidades
 
#*Paralelismo Cuántico : Una introducción
 
#*Paralelismo Cuántico : Una introducción
#*Librerias, Solucionadores y Más  
+
#*Librerias, Solucionadores y Más
 
</div>
 
</div>
 
==='''Evaluación'''===
 
==='''Evaluación'''===
Line 43: Line 43:
 
#'''20%:''' Análisis y Evaluación de Rendimiento
 
#'''20%:''' Análisis y Evaluación de Rendimiento
 
#'''20%:''' Presentación de la propuesta como un póster digital '''(Marzo 8 2022)*'''
 
#'''20%:''' Presentación de la propuesta como un póster digital '''(Marzo 8 2022)*'''
#'''20%:''' Trabajos Prácticos en Clase  
+
#'''20%:''' Trabajos Prácticos en Clase
  
 
''Bonus: Participación en seminarios y eventos libres propuestos por el profesor en el transcurso del curso''
 
''Bonus: Participación en seminarios y eventos libres propuestos por el profesor en el transcurso del curso''
  
''*Los puntos 2 y 3 deben estar contenidos en la presentación del poster digital y en un repositorio github/gitlab (codigo de la solución y visualizaciones posibles)''
+
''*Los puntos 2 y 3 deben estar contenidos en la presentación del poster digital y en un repositorio github/gitlab (código de la solución y visualizaciones posibles)''
  
 
<br />
 
<br />
 
==='''Bibliografía y Fuentes de Información'''===
 
==='''Bibliografía y Fuentes de Información'''===

Revision as of 15:37, 16 November 2021

Logo_sc33.png

 

Volver a Cursos

Algoritmos y Computación de Alto Rendimiento - Código 29451

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

Progprob.jpg

PRESENTACION DEL CURSO

El desarrollo de algoritmos computacionales para soportar tanto análisis de datos como simulaciones de fenómenos físicos (diseñados, reproducidos en laboratorio, observados o propuestos) es importante para garantizar precisamente la calidad, realismo, confianza y reproductibilidad del conocimiento generado. Dichos algoritmos, que surgen de modelos previamente concebidos se convertirán en códigos que componen programas de computación que serán ejecutados en máquinas computacionales. El rendimiento obtenido y las capacidades, dependen igualmente del algoritmo pero no hay que olvidar que de las características arquitecturales de la máquina computacional utilizada.

Precisamente, este curso (teórico-práctico) busca fundamentar el desarrollo de algortimos y su implementación en lenguajes de programación que permitan el desarrollo de códigos para atacar un problema físico, ejecutar ese código y obtener el máximo desempeño y confianza. Teniendo en cuenta la diversidad de arquitecturas computacionales que permiten seleccionar que tipo de plataforma se necesita para atacar un problema, igualmente es necesario conocer diferentes aspectos arquitecturales tecnológicos y espacios de desarrollo que permiten la colaboración y la reproductibilidad.

Contenido ( No en un orden estricto, Después de Encuesta con los Estudiantes)

  1. Introducción a la Computación Científica
  2. Fundamentos para el Análisis y Diseño de Algoritmos
    • Principios Básicos de Representación
    • Análisis de Complejidad
  3. Programación de Algoritmos Científicos cn C/C++ : Una Introducción
    • Principios Básicos
    • Buenas Prácticas de Desarrollo
    • Compilación Ejecución Eficiente y Optimización
    • Debugging, Profiling and Tracing.
  4. Sistemas, Plataformas y Ambientes de Desarrollo y Ejecución
    • Aquitecturas computacionales para investigación (y desarrollo científico)
      • Infrastructuras
      • Repositorios (GitHub/GitLab) y Ambientes Colaborativos
      • Sistemas Operativos (Linux)
    • Interacción y Plataformas de Gran Escala
  5. Cómputo Científico Paralelo
    • Concurrencia y Paralelismo
    • Paradigmas de Programación Paralela
      • Memoria Compartida con OpenMP
      • Memoria Distribuida con MPI
      • Memoria Hibrida con OpenACC (Y un poco de CUDA)
      • Otras Posibilidades
    • Paralelismo Cuántico : Una introducción
    • Librerias, Solucionadores y Más

Evaluación

Evaluaciones programadas para el 2do Semestre de 2021

La evaluación planteada, busca promover el trabajo colaborativo, por equipos que se conforman de acuerdo a la afinidad e interés en una temática específica de la física. Y en ese trabajo se tendrán en cuenta los siguientes aspectos

  1. 20% Diseño y Análisis de Algoritmo a Realizar (Diciembre 7 2021)
  2. 20%: Implementación y Solución
  3. 20%: Análisis y Evaluación de Rendimiento
  4. 20%: Presentación de la propuesta como un póster digital (Marzo 8 2022)*
  5. 20%: Trabajos Prácticos en Clase

Bonus: Participación en seminarios y eventos libres propuestos por el profesor en el transcurso del curso

*Los puntos 2 y 3 deben estar contenidos en la presentación del poster digital y en un repositorio github/gitlab (código de la solución y visualizaciones posibles)


Bibliografía y Fuentes de Información