Saltar para:
Logótipo
This page in english Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
Você está em: Início > EIC0089
Autenticação




Mapa das Instalações
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)

Computação Paralela

Código: EIC0089     Sigla: CPAR

Áreas Científicas
Classificação Área Científica
OFICIAL Programação

Ocorrência: 2013/2014 - 2S (de 10-02-2014 a 06-06-2014) Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEIC 18 Plano de estudos a partir de 2009/10 4 - 6 56 162

Docência - Horas

Teórico-Práticas: 3,00
Tipo Docente Turmas Horas
Teórico-Práticas Totais 1 3,00
Jorge Manuel Gomes Barbosa 3,00

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

ENQUADRAMENTO

A programação paralela e distribuída está a tornar-se o paradigma comum de programação dada a evolução do hardware para arquiteturas multicore e elementos massivamente paralelos como as GPUs. O computador pessoal atual é composto por vários processadores que coletivamente disponibilizam maior capacidade de processamento, do que os anteriores single-core, mas que individualmente têm menor capacidade. Os programadores terão de dominar a programação multi-processador para que possam utilizar com eficiência as máquinas do presente e do futuro.

OBJECTIVOS

Aquisição de conhecimentos conducentes à utilização simultânea de várias unidades de processamento num sistema de computação. Construção de bases sólidas sobre arquiteturas paralelas, paralelização de algoritmos, modelos de programação, sincronização de processos e medidas de desempenho, através do desenvolvimento de programas.

Componente ciêntifica:50%

Componente técnica:50%

 

Resultados de aprendizagem e competências

Os estudantes no final deverão ser capazes de: a) Analisar um problema e identificar o modelo de paralelização mais adequado (Conhecimento e compreensão) b) Escrever programas segundo o modelo de passagem de mensagens e memória partilhada (Análise e Prática) C) Elaborar soluções paralelas para novos problemas (Especificação) D) Utilização de modelos computacionais para estimar o tempo de computação das aplicações (Investigação) E) Conhecimentos de concorrência de processos e implementação de boas práticas para efetuar partilha de recursos (competências transferíveis).

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Os estudantes devem ter obtido aprovação às unidades curriculares de programação do 1º e 2º ano do curso.

Programa

INTRODUÇÃO: - Introdução à Computação Paralela. Medidas de desempenho: MIPS e FLOPS. Caracterização de desempenho: ‘peak’, máximo e sustentável. Máquinas paralelas: processadores superescalares e vetoriais, organização de memória e redes de interligação. Efeito da gestão da memória cache no desempenho do processador – Localização dos Dados.

FUNDAMENTOS DA PROGRAMAÇÃO PARALELA: - Limitações da computação paralela (Amdahl Law). Tipos de paralelismos: paralelismo funcional, paralelismo de dados, streaming. Etapas na paralelização de um algoritmo: divisão em operações paralelas, padrões de comunicação, sincronização, granularidade e escalonamento (distribuição do trabalho pelos processadores).

MODELOS DE PROGRAMAÇÃO PARALELA: Memória Partilhada e Memória Distribuída. Problemas de concorrência, secções criticas, ‘False sharing’, operações de redução.

PROGRAMAÇÃO DE MULTI-COMPUTADORES E MULTI-PROCESSADORES: - Utilização de MPI e OpenMP. - Outros frameworks e ferramentas. - Programação de GPUs para o paradigma de paralelismo de dados (CUDA).

CARACTERIZAÇÃO DA COMPUTAÇÃO PARALELA: - Modelos de execução, Modelos de Computação, Medidas de Desempenho e Eficiência, Expansibilidade (Função de Isoeficiência).

INTRODUÇÃO À COMPUTAÇÃO DISTRIBUÍDA EM AMBIENTE INTERNET: P2P, GRID, CLOUD COMPUTING. Aplicações e características.

Bibliografia Obrigatória

Quinn, Michael J.; Parallel programming in C with MPI and openMP. ISBN: 007-123265-6
Calvin Lin, Lawrence Snyder; Principles of parallel programming, Pearson - Addison Wesley, 2009. ISBN: 0-321-48790-7
David B. Kirk, Wen-mei W. Hwu; Programming massively parallel processors, Morgan Kaufman, 2010. ISBN: 978-0-12-381472-2

Bibliografia Complementar

Foster, Ian T.; Designing and building parallel programs. ISBN: 0-201-57594-9

Métodos de ensino e atividades de aprendizagem

Exposição do material teórico com apresentação e discussão de exemplos. Desenvolvimento de alguns programas e exercícios práticos. Projecto e desenvolvimento de trabalhos de maior dimensão.

Software

MPI
Visual Studio 2008 Professional (C#/C/C++)
g++

Palavras Chave

Ciências Tecnológicas > Tecnologia > Tecnologia de computadores > Tecnologia de software

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 50,00
Participação presencial 0,00
Trabalho laboratorial 50,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 60,00
Frequência das aulas 42,00
Trabalho laboratorial 60,00
Total: 162,00

Obtenção de frequência

Não exceder o número de faltas (25%) e realizar e apresentar os trabalhos práticos.

Fórmula de cálculo da classificação final

Nota Final = 0.5*AvD + 0.5*Ex

AvD – Avaliação Distribuída

Ex – Nota do exame

A Avaliação Distribuída é obtida por 2 trabalhos práticos, com peso idêntico cada um.

 

Avaliação especial (TE, DA, ...)

A avaliação distribuída é baseada na realização de trabalhos práticos de programação ao longo do semestre, sendo opcional para regimes de ingresso especiais.

Melhoria de classificação

A melhoria da classificação obtida na componente distribuída pode ser realizada na próxima ocorrência da unidade curricular. A componente de Exame pode ser melhorada nas épocas previstas na FEUP.

Observações

Conhecimento de Linguagem C/C++

Recomendar Página Voltar ao Topo
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2019-04-22 às 07:40:43 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais