Professor: Kary Ocaña (LNCC)
Horarios: Quinta 14/01 de 14:30h às 18:30h
Objetivo: Python é uma linguagem de programação de alto nível para programação de propósito geral lançada ao público em 1991. Possui contruções que permitem a criação de programas de pequena à grande escala e possui uma filosofia de design que prioriza principalmente a legibilidade de código. É cada vez mais usada em computação científica e numérica. Python tem tipagem dinâmica e gerência automática de memória. Suporta múltiplos paradigmas de programação, como programação orientada à objetos, imperativa, funcional e procedural. É citado frequentemente como uma de suas melhores características sua grande e abrangente biblioteca padrão. O Python Package Index, o repositório oficial de pacotes de terceiros, possui outros 130000 pacotes. Interpretadores da linguagem Python estão disponíveis para diversos sistemas operacionais. A implmentação de referência, a CPython, é open source e possui um modelo de desenvolvimento comunitário assim como a maior parte das outras implementações alternativas.
Pré-requisitos
- Conhecimentos básicos de programação estruturada
- Conhecimentos básicos de programação orientada à objetos
- Conhecimentos básicos do uso do shell bash ou similar no ambiente GNU/Linux
Ementa:
- Introdução geral à HPC
- Processamento em memória compartilhada
- Threads vs processos
- Módulo threading vs módulo multiprocessing
- Módulo multiprocessing
- Exemplo: aproximação de pi com Monte Carlo
- Processamento em memória distribuída
- Introdução à MPI
- Módulo mpi4pi
- Módulo mpi4pi + módulo numpy
- Exemplo: reimplementação da aproximação de pi com MPI
- Biblioteca Parsl