Técnicas para desenvolvimento e aceleração de códigos científicos


Prof. Edson Borin
Instituto de Computação
Universidade Estadual de Campinas
Raul Baldin
Faculdade de Engenharia Civil, Arquitetura e Urbanismo
Universidade Estadual de Campinas

Introdução

Esta página contém informações e material de suporte do minicurso "Técnicas para desenvolvimento e aceleração de códigos científicos", ministrado na 12a edição do Programa de Verão do LNCC.

Sobre o Minicurso

Desde sua invenção, na década de 40, os computadores eletrônicos de propósito geral evoluíram significativamente e, além do aumento da frequência de operação, diversos mecanismos foram introduzidos para acelerar a execução dos programas. A introdução de caches, preditores de saltos, escalonadores de instruções dinâmicos entre outros permitiram um aumento exponencial contínuo do desempenho dos processadores. Entretanto, estes recursos criaram um abismo entre os modelos de programação existentes e a organização do hardware e tornaram o desenvolvimento de programas eficientes um desafio à parte em processadores modernos.

Este minicurso apresentará uma visão geral sobre a organização de computadores modernos bem como métodos e ferramentas para se analisar e melhorar desempenho de aplicações nestes computadores. Também serão demonstradas ferramentas que auxiliam o desenvolvimento e a manutenção dos códigos-fonte.

Agenda

Segunda Terça Quarta Quinta Sexta
Introdução Perfilamento - Contagem de Tempo Otimizações Simples / Compilação Perfilamento - Detecção de Código Quente GDB
Organização de Processadores Modernos Otimização de Acesso a Dados Bibliotecas Otimizadas SVN+CMake Valgrind
Introdução ao Laboratório Vetorização de Código

Slides

Objetivos

Os objetivos destes minicurso são:

Os conceitos serão exercitados através de atividades de laboratório.

Atividades de laboratório

Referências