Logotipo e link para a Universidade do Minho

Computação Paralela Distribuída
Mestrados em Informática e Eng.ª Informática
2010/2011
Docente responsável: A. Proença

Vista da Rua do Souto no Séc. XVI

 

Sumários
de
Sistemas de Computação e Desempenho

Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12   

Ultima Modificação: 29 Abr 2011
 

 

 departamento de informática

Avisos:

  1. Funcionamento deste módulo: as sessões de contacto aluno-docente deste módulo irão funcionar a tempo inteiro até ao Natal. Durante o mês de Janeiro o tempo previsto no horário será dedicado exclusivamente ao módulo PI. Neste período até ao Natal, cada sessão será em princípio composta por 3 partes: (i) debate sobre temas previamente propostos, (ii) exposição e eventual debate de novos temas, e (iii) apresentação dos temas a analisar e debater na semana seguinte. (01-Out-10)

  2. Funcionamento desta página: esta página contém a planificação e os sumários do módulo SCD, bem como avisos relevantes no topo da página. Os sumários das aulas que já ocorreram estão a preto, enquanto as propostas de sumário para as sessões seguintes estão a cinzento. Sempre que haja documentação a disponibilizar pertinente para uma sessão que ainda não decorreu, essa indicação deixa de estar a cinzento. À frente de cada data de uma sessão de contacto docente-aluno indica-se sempre o total de horas de contacto realizadas desde o início do ano. (01-Out-10)

Topo...


Semana 1

28-Set-10 (9h-13h) 4h

Caracterização do ambiente de trabalho para 2010/11: os alunos (e sua formação prévia), a equipa docente (4 docentes), a estrutura e objectivos dos módulos constituintes da UCE30 (SCD, PAC, PCP, AMN, PI), a metodologia de trabalho e uma proposta para discussão sobre a metodologia de avaliação a adoptar.
Identificação e caracterização de conceitos fundamentais genéricos em cada uma das áreas temáticas, com destaque para o primeiro tema (SCD).

Trabalho para casa: rever conhecimentos adquiridos na licenciatura, para discussão na sessão da semana seguinte: (i) representação de números, com destaque para valores reais, (ii) organização de um computador com destaque para o par processador-memória, e (iii) análise da interface entre este par e a execução de instruções de um programa desenvolvido num paradigma imperativo.


Semana 2

05-Out-10 (9h-13h)

Feriado

Trabalho para casa: Complemento da revisão dos conceitos sugeridos na aula anterior, de modo a incluir também as questões relacionadas com a representação de informação.

Semana 3

12-Out-10 (9h-13h) 8h

Debate: Abordagem em termos de revisão de questões e impacto da representação de informação num computador.

Aula teórica: Revisão de conceitos básicos de sistemas de computação: representação binária de inteiros e reais em FP, geração típica de código assembly a partir de C (incluindo estruturas de dados e de controlo e procedimentos/funções), mecanismos de optimização da arquitectura interna do CPU e hierarquia de memória.

Sugestão de leituras: Página da unidade curricular (UC) de Sistemas de Computação da licenciatura de Ciências da Computação (em http://gec.di.uminho.pt/lei/sc0910/), e em especial a leitura dos 3 primeiros capítulos do livro de Bryant & O'Hallaron (Computer Systems: A Programmer's Perspective), cuja versão beta se encontra em PDF aqui; está ainda disponível para consulta o seguinte material: um resumo da representação binária de números inteiros e reais (aqui), slides sobre a execução de programas em C num computador (aqui), slides .

Trabalho para casa: Revisão dos conceitos de paralelismo de instruções e hierarquia de memória.

Semana 4

19-Out-10 (9h-13h) 12h

Aula teórica: Revisão e síntese das questões pertinentes que ligam o desempenho à arquitectura e organização do par processador-memória, com destaque para as diversas abordagens na introdução de paralelismo na evolução das arquitecturas dos processadores, nomeadamente ao nível do ILP (pipeline, VLIW, superescalar, vectorial) e da organização da memória. Breve panorâmica do estado da arte em processadores Intel e AMD, com destaque para o modelo multi-core e a hierarquia das caches. .

Sugestão de leituras: Capítulo 5 do livro de Bryant (Optimizing Program Performance), em especial na parte sobre sobre execução paralela de instruções, e respectivos slides (aqui); capítulo 6 do mesmo livro (Memory Hierarchy) com 3 conjuntos de slides sobre hierarquia de memória e cache (aqui1, aqui2, aqui3).

Trabalho para casa: Levantamento das arquitecturas de processadores da AMD e Intel de 2005 até à data, com destaque para os pontos mencionados nos slides apresentados na aula, bem como elaboração das restantes tarefas indicadas no último slide.

Semana 5

26-Out-10 (9h-13h)  16h

Apresentação e discussão de trabalhos: Apresentação com discussão/debate colectivo dos diversos campos nas tabelas comparativas com a organização/arquitectura dos processadores de 64-bits da Intel (Xeon) e AMD (Opteron) em termos de ILP e cache (continuação do trabalho da sessão anterior).

Aula teórica: Perspectiva do impacto do ILP na execução de programas na arquitectura do P6, com análise da execução de uma função na arquitectura superescalar do P6, com diversas variantes de codificação do algoritmo. Revisão (com base em slides já distribuídos) de aspectos relacionadas com a introdução de paralelismo nos sistemas de computação: (i) os modelos ILP (pipeline, superescalar, vectorial), (ii) organização, e estrutura de caches e seu impacto no desempenho.

Trabalhos para casa: Construir tabela comparativa da arquitectura dos processadores x86-64 mais recentes (pós-2005), em termos de de ILP e cache, com a seguinte identificação de processadores: Intel Xeon (existentes do cluster do DI, nomeadamente Irwindale/NetBurst, Woodcrest/Core, Harpertown/Core, Gainestown/Nehalem) e AMD Opteron (Magny-Cours, existente no nós do SeARCH com GPU's Fermi).
 

Semana 6

02-Nov-10 (9h-13h) 20h

Aula teórica: A evolução das arquitecturas pelo paralelismo; a avaliação comparativa de desempenho SPEC. Multiprocessadores por memória partilhada (SMP) e por comunicação de mensagens (MPP); noção de multithreading de grão fino, grosso e simultâneo.

Sugestão de leituras: Os slides apresentados seguem na essência o Cap. 7 do livro recomendado (de Hennesy & Patterson). Recomenda-se para além do estudo cuidado e detalhado deste capítulo, ainda a leitura deste texto de um curso de introdução à computação paralela do Lawrence Livermore National Laboratory.

Semana 7

12-Nov-10 (11h-13h) 24h

Aula teórica: Paralelismo ao nível dos dados: arquitecturas SIMD, extensões SIMD em arquitecturas SISD (MMX, SSE e equivalentes), SIMD e multithreading em GPU's, enquanto co-processadores vectoriais. Introdução ao ambiente CUDA e à arquitectura de GPU's: terminologia (multicore, manycore, GPU-thread, GPU-core, SPMD/SIMT/SIMD), o modelo de programação CUDA (noção de kernel, device, grid, block, warp, thread), o modelo de memória no CUDA (local, shared, constant, texture, global), características e funcionalidades no CUDA, mapeamento do modelo CUDA nos GPU's da NVidia, análise das arquitecturas da NVidia G80, G270 e Fermi (thread/warp scheduling, core/SP, SMP/MP, TPC, coalescing), análise de uma caso de estudo (multiplicação de matrizes).Introdução ao modelo de programação CUDA.

Sugestão de leituras: Os slides apresentados são inspirados de vários outros slides e documentação da NVidia, sendo de destacar as seguintes recomendações de leituras: o texto de apoio ao curso sobre CUDA na Univ. Illinois, nomeadamente os capítulos 1 a 5 (procurar a edição de 2010 em http://courses.ece.illinois.edu/ece498/al/ ), as colectâneas de artigos de Michael Wolfe da PGI (1, 2 e 3), e os artigos sobre o GT200 e Fermi no site http://www.realworldtech.com/

Semana 8  

16-Nov-10 (9h-13h e das 14h-18h) 32h

Aula laboratorial: Introdução ao ambiente de trabalho CUDA disponível no cluster SeARCH. Teste de aplicações desenvolvidas para GPU e introdução de alterações aos códigos fornecidos. Apresentação e análise sucinta do desempenho da multiplicação de matrizes com GPU.

Sugestão de leituras: Os slides apresentados, Introduction to CUDA, CUDA Performance, CUDA toolchain, estavam disponíveis no GPGPU and CUDA Tutorials da conferência ARCS 2008. Recomenda-se ainda o Anexo A do livro recomendado (de Hennesy & Patterson).

Semana 9

23-Nov-10 (9h-11h) 34h

Aula teórica: O problema da conectividade entre o CPU e a memória, e entre os diversos núcleos computacionais (cores). Análise das ligações off-chip actuais, das topologias de interligação entre componentes (chips e nós computacionais) e on-chip; introdução aos problemas de limitação de desempenho na interligação de cores e aos NoC's.

Sugestão de leituras: Os slides apresentados seguem na essência a secção 7.8 do Cap. 7 do livro recomendado (de Hennesy & Patterson). Recomenda-se ainda a leitura do artigo referenciado nos slides sobre NoC's.

Aula laboratorial: Análise de código desenvolvido com GPU, para execução em Fermi no cluster SeARCH.

Semana 10

30-Nov-10 (9h-13h) 36h

Aula teórica: Topologias de interligação de sistemas computacionais: evolução dos sistemas SMP e MPP (interligação de nós computacionais) para os requisitos actuais de interligação de cores em componentes multi-core. Análise da evolução do protótipo de projecto da Intel de 2006 para componentes many-core (Larabee) para o novo protótipo em silício criado em Nov-09 (SCC, Single-chip Cloud Computer).

Sugestão de leituras: Os slides apresentados.

Aula laboratorial: Análise de código desenvolvido com GPU, para execução em Fermi no cluster SeARCH.

Semana 11 

07-Dez-10 (9h-13h) 40h

Apresentação e discussão de trabalhos: Apresentação com discussão/debate colectivo de diversas alternativas de benchmarks para avaliar o desempenho de um nó computacional, na perspectivas dos diversos mecanismos de aceleração implementados nas arquitecturas. Algumas dicas sobre o teste de avaliação a realizar a 14-Dez-10 (template).

Semana 12

14-Dez-10 (9h-13h) 44h

Avaliação: Teste escrito.

Trabalho para casa (no âmbito do Projecto Integrado): Apresentação do trabalho relacionado com a avaliação de desempenho da multiplicação de matrizes em diversas plataformas e condições ambientais (guião).

 

Topo...

Semana 13

26-Abr-11 (14h-15h) 45h

Aula teórica: Introdução e caracterização de unidades de computação livres de instruction set, as FPGA. Análise de modelos de programação.

Sugestão de leituras: Os slides apresentado, bem como slides sobre FCUDA e OpenCL em FPGA. Recomenda-se ainda os artigos sobre Heterogeneous Computing e Algorithmic Skeletons to Program FPGA.s.

 

Topo...

 


Direitos de Autor & Copyright

Esta publicação - incluindo a sua faculdade de impressão - e respectivos conteúdos - que poderão incluir reproduções parciais de obra(s) alheia(s) devidamente citadas, com a indicação do autor, título da obra, editor ou outra fonte - destinam-se exclusivamente aos alunos da unidade curricular de especialização de Computação Paralela Distribuída, dos Mestrados em Informática e em Eng.ª Informática, da Universidade do Minho, para uso pessoal e fins de aprendizagem electrónica (e-learning) e não revestem qualquer finalidade lucrativa ou comercial.
Qualquer outra reprodução, total ou parcial, desta obra, por qualquer suporte, modo ou processo, nomeadamente processo electrónico, mecânico ou fotográfico, incluindo fotocópia, a modificação da obra, a sua comunicação pública, a sua distribuição através de aluguer ou comodato, sem qualquer autorização escrita do autor, é ilícita e passível de procedimento judicial contra o infractor.

Topo...

 


Página mantida por aproenca<at>di.uminho.pt
Ultima Modificação: 29 Abr 2011