TÓPICOS ESPECIAIS EM LINGUAGEM DE PROGRAMAÇÃO: APLICAÇÕES PARALELAS EM AMBIENTES DE PASSAGEM DE MENSAGENS

1 Apresentação da disciplina

Motivação

C       A computação paralela tem se tornado uma importante aliada na tarefa de resolver problemas computacionalmente dispendiosos e complexos

C       Existem máquinas paralelas escaláveis baseadas em hardware e software com custo razoavelmente acessível

C       O programador deve ter em mente conceitos que permitam o máximo aproveitamento do paradigma de programação paralela

C       Questões inerentes ao novo paradigma:

o       A escolha equivocada da plataforma em que o programa paralelo será executado pode comprometer o desempenho do programa, mesmo que ele tenha sido construído de maneira eficiente e elegante.

o       A análise do problema a ser decomposto para que se escolha a ferramenta de software mais adequada à construção de um programa paralelo eficiente.

Objetivos

C       Visão geral da computação paralela:

o       Apresentação de diversos tipos de hardware disponíveis à execução de uma aplicação paralela;

o       Foco sobre aspectos de software para construção e execução de um programa paralelo.

C       Estudo de um ambiente de desenvolvimento de aplicações paralelas

C       Abordagem prática baseada em estudos de casos;

Metodologia

C       Aulas teóricas expositivas seguidas de uma avaliação teórica motivando o aluno a estudar conceitos relativos à Computação Paralela

C       Estudo da biblioteca MPI possibilitando que o aluno esteja apto a compreender os casos a serem estudados posteriormente e a desenvolver aplicações em paralelo

C       Estudos de problemas simples encontrados na computação, de pleno conhecimento do aluno, cujos algoritmos possam ser paralelizados.

C       Estudo de problemas mais específicos encontrados em áreas como inteligência artificial, otimização, e outras

C       Seminários teóricos abrangendo funções avançadas de MPI

C       Seminários teóricos comparando MPI com outros ambientes, como o PVM

C       Seminários práticos apresentando as soluções encontradas para problemas estudados em sala de aula

Programa

C       Módulo 1: Introdução à Computação Paralela: conceitos, medidas de desempenho, arquiteturas paralelas, software e ambientes de apoio. (8 aulas)

C       Módulo 2: Biblioteca para Troca de Mensagens: Message-Passing Interface (MPI): comandos básicos. Avaliação escrita sobre conceitos em computação paralela. (12 aulas)

C       Módulo 3: Estudo de caso 1: solução de problemas clássicos na computação usando algoritmos paralelos e definição dos trabalhos finais. (12 aulas)

C       Módulo 4: Estudo de caso 2: algoritmo genético paralelo; aplicações em inteligência artificial e otimização (12 aulas)

C       Módulo 5: Seminários 1: apresentação dos trabalhos teóricos: comandos avançados MPI e comparação com outros ambientes. (8 aulas)

C       Módulo 6: Seminários 2: apresentação dos trabalhos práticos: solução de problemas computacionais usando algoritmos paralelos (8 aulas)