Difference between revisions of "Algoritmos y Computación de Alto Rendimiento"
(Created page with "<div class="thumbnail img-thumbnail">http://wiki.sc3.uis.edu.co/images/a/a8/Logo_sc33.png</div> <p> </p>Volver a Cursos<div class="column clearfix"><div class="col-m...") |
|||
Line 4: | Line 4: | ||
==='''PRESENTACION DEL CURSO'''=== | ==='''PRESENTACION DEL CURSO'''=== | ||
<div class="column clearfix"> | <div class="column clearfix"> | ||
− | + | 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. | |
</div> | </div> | ||
− | ==='''Contenido'''=== | + | ==='''Contenido ( No en un orden estricto, Después de Encuesta con los Estudiantes)'''=== |
<div class="col-md-14"> | <div class="col-md-14"> | ||
− | #Introducción a la Computación | + | #Introducción a la Computación Científica |
− | # | + | #Fundamentos para el Análisis y Diseño de Algoritmos |
− | #* | + | #*Principios Básicos de Representación |
− | #* | + | #*Análisis de Complejidad |
− | # | + | #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. |
− | #* | + | #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 | |
− | + | #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 |
− | |||
− | #* | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | #** | ||
− | #* | ||
− | # | ||
− | #* | ||
− | #* | ||
− | |||
− | #* | ||
− | |||
− | #** | ||
− | |||
− | |||
− | #* | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | #* | ||
− | |||
− | #* | ||
− | #* | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
==='''Evaluación'''=== | ==='''Evaluación'''=== | ||
− | ====='''Evaluaciones programadas para el | + | ====='''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 | |
− | # ''' | + | #'''20%''' Diseño y Análisis de Algoritmo a Realizar '''(Diciembre 7 2021)''' |
− | # ''' | + | #'''20%:''' Implementación y Solución |
− | # ''' | + | #'''20%:''' Análisis y Evaluación de Rendimiento |
+ | #'''20%:''' Presentación de la propuesta como un póster digital '''(Marzo 8 2022)*''' | ||
+ | #'''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 (codigo 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 16:51, 10 November 2021
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
Contents
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)
- Introducción a la Computación Científica
- Fundamentos para el Análisis y Diseño de Algoritmos
- Principios Básicos de Representación
- Análisis de Complejidad
- 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.
- 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
- Aquitecturas computacionales para investigación (y desarrollo científico)
- 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
- 20% Diseño y Análisis de Algoritmo a Realizar (Diciembre 7 2021)
- 20%: Implementación y Solución
- 20%: Análisis y Evaluación de Rendimiento
- 20%: Presentación de la propuesta como un póster digital (Marzo 8 2022)*
- 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 (codigo de la solución y visualizaciones posibles)