Difference between revisions of "Computación de alto rendimiento y científica"
| Line 29: | Line 29: | ||
         <div class="panel-body">  |          <div class="panel-body">  | ||
             <p>El cómputo de alto rendimiento más que una tendencia en el uso de tecnologia, es una realidad, que plantea diferentes retos para todos los dominios del conocimiento o de actividad profesional. Más allá de las competencias normales de un ingeniero o cientifico, es necesario entender la tecnología para aprovechar las oportunidades que nos ofrecen, adquirir un lenguaje común para interactuar con ingenieros de sistemas o computistas y proyectar una actividad multidisciplinaria, altamente eficiente.</p>  |              <p>El cómputo de alto rendimiento más que una tendencia en el uso de tecnologia, es una realidad, que plantea diferentes retos para todos los dominios del conocimiento o de actividad profesional. Más allá de las competencias normales de un ingeniero o cientifico, es necesario entender la tecnología para aprovechar las oportunidades que nos ofrecen, adquirir un lenguaje común para interactuar con ingenieros de sistemas o computistas y proyectar una actividad multidisciplinaria, altamente eficiente.</p>  | ||
| − |              <p>El curso ofrece un acercamiento a conceptos básicos y estrategias de interacción con arquitecturas escalables, desde el computo cientifico para explotar posibilidades de concurrencia y paralelismo. El curso permitirá a los participantes, conocer modelos de programacion fundamentales para la creacion de sus propios codigos, así como una vision e interacción con plataformas de supercomputo especifica y algunas herramientas de interacción en redes de tecnología avanzada, permitiendo reconocer perspectivas y oportunidades de desarrollo.</p>  | + |              <p>El curso ofrece un acercamiento a conceptos básicos y estrategias de interacción con arquitecturas escalables, desde el computo cientifico para explotar posibilidades de concurrencia y paralelismo. El curso permitirá a los participantes, conocer modelos de programacion fundamentales para la creacion de sus propios codigos, así como una vision e interacción con plataformas de supercomputo especifica y algunas herramientas de interacción en redes de tecnología avanzada, permitiendo reconocer perspectivas y oportunidades de desarrollo.</p><p>Las sesiones se realizan en el CENTIC</p>  | 
         </div>  |          </div>  | ||
     </div>  |      </div>  | ||
Revision as of 14:04, 13 June 2017

Computación de alto rendimiento y científica - Código 26734
Profesor
Carlos Jaime Barrios Hernandez, PhD. - (cbarrios@uis.edu.co)
PRESENTACION
El cómputo de alto rendimiento más que una tendencia en el uso de tecnologia, es una realidad, que plantea diferentes retos para todos los dominios del conocimiento o de actividad profesional. Más allá de las competencias normales de un ingeniero o cientifico, es necesario entender la tecnología para aprovechar las oportunidades que nos ofrecen, adquirir un lenguaje común para interactuar con ingenieros de sistemas o computistas y proyectar una actividad multidisciplinaria, altamente eficiente.
El curso ofrece un acercamiento a conceptos básicos y estrategias de interacción con arquitecturas escalables, desde el computo cientifico para explotar posibilidades de concurrencia y paralelismo. El curso permitirá a los participantes, conocer modelos de programacion fundamentales para la creacion de sus propios codigos, así como una vision e interacción con plataformas de supercomputo especifica y algunas herramientas de interacción en redes de tecnología avanzada, permitiendo reconocer perspectivas y oportunidades de desarrollo.
Las sesiones se realizan en el CENTIC
Contenido
- Unidad I. Introducción. E-ciencia, Supercomputacion y Computo Avanzado. E-ciencia, Introduccion a las Arquitecturas Escalables, Cluster, Grid, Computacion Voluntaria y Cloud Computing. Uso de Arquitecturas Escalables (Taller en GridUIS-2), Portales Cientificos y otros recursos (Taller sobre Grid-Colombia y GISELA), Computacion Extrema.
 - Unidad II. Modelos de Programacion Basicos: Memoria Compartida y Memoria Distribuida.Concurrencia y Paralelismo, Programacion de Memoria Compartida (OpenMP), Programacion de Memoria Distribuida (MPI), Optimizacion de Codigos Secuenciales, desarrollo de scripts (bash, python).
 - Unidad III. Pasaje por la Programacion Hibrida y Aceleradores. Arquitecturas y Modelos de Programacion Hibrida, OpenACC, CUDA, OpenCL.
 - Unidad IV. Optimización, Tendencias y Direcicones Futuras
 
ASPECTOS METODOLOGICOS
- Seminarios Teorico-Prácticos
 - Análisis de Casos
 - Seminarios Especializados con Invitados Internacionales (Opcional: Seminario Ommps, dictado por el Barcelona Supercomputing Center.
 
MATERIAL DEL CURSO
Códigos de Práctica:
EVALUACIONES
La evaluación se realizara en cuatro entregas de igual porcentaje, a manera de ePoster o Digital Poster, para cada una de las notas. Estas entregas se realizarán en parejas y se tendrá en cuenta los siguientes factores: complejidad del problema, aporte, originalidad, presentación y calidad de la solución en términos de eficiencia. Los ePosters deberán ser enviados en formato pdf, junto con el código de solución y las instrucciones de compilación. Los ePosters se presentarán en un espacio asignado para tal fin, y los autores tendrán 10 minutos para su presentación.
- Nota 1 (25%): Propuesta de Problema y Algoritmo Inicial.
 - Nota 2 (25%): Código de Solución con Memoria Compartida.
 - Nota 3 (25%): Código e Solución con Memoria Distribuída.
 - Nota 4 (25%): Código de Solución Hibrida o Acelerado.
 
BIBLIOGRAFÍA Y FUENTES DE INFORMACION
- The Fourth Paradigm: Data-Intensive Scientific Discovery in http://research.microsoft.com/en-us/collaboration/fourthparadigm/
 - Designing and Building Parallel Programs, by Ian Foster in http://www.mcs.anl.gov/~itf/dbpp/
 - Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders and Berna L. Massingill. Software Patterns Series, Addison Wesley Ed., USA. 2009. http://www.cise.ufl.edu/research/ParallelPatterns/
 - 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)
 - Algorithms Sequential and Parallel « A Unified Approach » Miller and Boxer (Computing Engineering Series)
 - Parallel Algorithms, Cassanova, Legrand and Robert (Chapman and Hall/CRC)
 - Programming Massively Parallel Processors « A Hands-on Approach » , Kirk and Hwu (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 by Example « An Introduction to General-Purpose GPU Programming » Sanders and Kandrot (Nvidia/Addison Wesley)
 - http://developer.nvidia.com/
 - http://grid.uis.edu.co
 - https://computing.llnl.gov/tutorials/parallel_comp/
 - http://www.sc-camp.org
 
