Trabalho 5: Multithreading com OpenMP

Parte 1

  • Obtenha a apresentação da aula de 28/04 aqui.

  • Implemente a aplicação descrita em "Aplicação: Aproximação de áreas com integrais".

    1. Implemente uma versão sequencial do código e avalie a corretude da mesma.

    2. Analise e implemente uma estratégia de paralelismo utilizando a API OpenMP. Você pode variar o domínio da função utilizada - aumentando a área a ser computada - assim como variar a altura dos trapézios.

    3. Faça um documento descrevendo a estratégia adotada para implementar o paralelismo assim como as dificuldades encontradas para o desenvolvimento da aplicação (vale tanto o sequencial quando o paralelo).

Parte 2

A parte 2 é composta por diversos micro-programas que usam OpenMP mas apresentam comportamento errôneo. A sua tarefa é encontrar uma ou mais justificativas para o problema e sugerir uma correção.

  • Baixe os código-fontes daqui

  • Para cada programa, veja na descrição presente no código fonte para compreender o propósito da aplicação e o resultado esperado.

  • Compile as aplicações com o comando make e:

    1. avalie o comportamento individual de cada programa

    2. corrija os bugs encontrados

    3. avalie a efetividade da correção

  • Adicione "Parte 2" no documento anterior e descreva o problema encontrado e preferencialmente uma solução.

  • Você pode utilizar a ferramenta Helgrind para auxiliar no diagnóstico das aplicações. (Uma apresentação sobre a ferramenta está dentro da pasta com os códigos fonte.)

Entrega

  • Partes 1 e 2: individuais!

  • Compartilhe o documento no Google Drive usando opção avançada 'qualquer um com o link pode comentar'.

  • Preencha o link para o relatório nesta tabela.

  • Datas:
    • Preenchimento do link na tabela: 30/04, 11:59
    • Parte 3: veja na aula de 30/04