Logotipo e link para a Universidade do Minho

Computação Paralela Distribuída
Mestrados em Informática e Eng.ª Informática
2009/2010
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: 22 Dez 2009
 

 

 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. (07-Out-09)

  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. (07-Out-09)

Topo...


Semana 1

29-Set-09 (9h-13h) 4h

Caracterização do ambiente de trabalho para 2009/10: 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), e referência a casos de estudo a utilizar nesta UCE (destaque para aplicações na área do processamento de imagem).
Sugestão de temas e conceitos a rever de conhecimentos adquiridos na licenciatura, para discussão na sessão da semana seguinte: (i) organização de um computador com destaque para o par processador-memória, e (ii) análise da interface entre este par e a execução de instruções de um programa desenvolvido num paradigma imperativo.


Semana 2

06-Out-09 (9h-13h) 8h

Não houve sessão, por dispensa concedida pelo Reitor para participação na audição pública dos 2 candidatos ao concurso para eleição do novo Reitor da UM.

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

13-Out-09 (9h-13h) 12h

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/lcc/sc0708/), 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

20-Out-09 (9h-13h) 16h

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. 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.

Aula prática: Introdução a técnicas de realização de medidas de tempos de execução. Uma técnica para medir a frequência do clock de um processador.

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. Elaboração do trabalho indicado neste guião, para debate na próxima aula; Notas sobre este trabalho: (i) foram disponibilizados por email 2 ficheiros compactados, que são aqui referenciados de novo (um para MacOS e outro para Linux), e que contêm um makefile, algumas funções já codificadas (inclui o código de acesso ao registo com o contador de ciclos de clock), a função de inicialização em memória dos 3 arrays (os de leitura com valores aleatórios, o de escrita com zeros) e um template para o main da multiplicação de matrizes; (ii) o exercício "2. a) (iii)" que pede que se use "a abordagem k_best" (com apontadores para a literatura sobre este assunto) não é para ser feito com esta complexidade, mas antes usando apenas o menor tempo de execução de 5 medidas consecutivas; (iii) a versão do gcc deverá ser superior a 4.1 para que o código gerado se comporte conforme o esperado.

Semana 5

27-Out-09 (9h-13h)  20h

Apresentação e discussão de trabalhos: Tentativa de levantamento da evolução dos processadores da Intel e AMD em termos de ILP e cache (trabalho sugerido na sessão anterior). Análise preliminar de alguns dos resultados obtidos com as medições de desempenho indicadas no guião distribuído..

Aula teórica: Breve apresentação dos processadores que compõem os clusters que irão ser usados nesta UCE (SeARCH/UM, Milipeia/UC, Ranger/TACC).

Trabalhos para casa: (1) 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 (existentes nos clusters Milipeia e Ranger/TACC, nomeadamente Italy e Barcelona). Tabela a enviar à equipa docente até 24h antes do início da próxima aula (por email), e preparar apresentação a fazer na próxim,a sessão (máx 10min; para avaliação). (2) Refazer e/ou completar as alíneas do guião anterior, mas segundo este novo texto reformulado (não resolver ainda a última alínea), e enviar por email o código e a resolução das alíneas (para avaliação); preparar apresentação para discussão na próxima aula (máx 10min).

Semana 6

03-Nov-09 (9h-13h) 24h

Apresentação e discussão de trabalhos: Apresentação individual 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). Análise crítica de alguns dos resultados obtidos com as medições de desempenho indicadas no guião distribuído (resultados ainda muito incompletos e com lacunas graves).

Aula teórica: Questões 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.

Trabalho para casa: (1) Elaborar uma tabela única com todos os campos relevantes para uma melhor análise comparativa dos processadores Xeon e Opteron das últimas gerações, e preparar para a apresentar e defender na próxima semana. (2) Refazer e/ou completar as alíneas do guião anterior, mas com as seguintes alterações: (i) realizar apenas os testes para o par de operações MAC (e respectivas melhorias no código), (ii) usar as seguintes dimensões N da matriz (16, 31, 32, 33, 47, 48, 49, 63, 64, 65, 95, 96, 97, 127, 128, 129, 191, 192, 193, 255, 256, 257, 319, 320, 321, 383, 384, 385, 511, 512,513, 767, 768, 769), e (iii) produzir um gráfico que mostre claramente a evolução do valor de CPE/MAC para as diversas dimensões da matriz; enviar um relatório sucinto com esta informação à equipa docente até 24h antes do início da próxima aula (por email), contendo o código e a resolução das alíneas (a interpretação dos resultados será um dado essencial na avaliação); preparar apresentação para discussão na próxima aula (máx 10min).

Semana 7

10-Nov-09 (11h-13h) 28h

Aula teórica: Nova revisão detalhada (com base em slides já distribuídos) dos diversos factores com impacto no desempenho da hierarquia de memória, e análise da fórmula que relaciona o tempo de execução de uma aplicação com o nº de instruções executadas, o CPI (de execução e de acesso à memória), e a frequência do clock. Decomposição do CPI de acesso à memória nas suas componentes numa hierarquia de caches. Discussão da apresentação gráfica e da interpretação de resultados em ambientes laboratoriais e experimentais.

Apresentação e discussão de trabalhos: apresentação individual e debate dos trabalhos alocados em guiões anteriores (multiplicação de matrizes quadradas com reais de precisão simples).

Trabalho para casa: Refazer e corrigir o trabalho sobre a multiplicação de matrizes (para entregar até às 12h da véspera da aula seguinte).

Semana 8  

17-Nov-09 (9h-13h) 32h

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. 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.

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 9

24-Nov-09 (9h-13h) 36h

Aula teórica: 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ísiticas 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).

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 2009 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/ .

25-Nov-09 (14h-18h) 40h (sessão de compensação de um dos feriados)

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).

Trabalho para casa: Implementar em CUDA a multiplicação de matrizes e comparar os resultados de desempenho com os obtidos anteriormente. Entregar até sexta 11-Dez-09 um relatório sucinto (máx. 4 pág., incluindo tabela e gráfico; pode conter anexos para além das 4 pág.).

Semana 10

01-Dez-09 (9h-13h)

Feriado

Semana 11 

08-Dez-09 (9h-13h)

Feriado

Semana 12

15-Dez-09 (9h-13h) 44h

Apresentação e discussão de trabalhos: análise e discussão individual das condições e métodos de trabalho na avaliação do desempenho da multiplicação de matrizes no nó do SeARCH com a nova geração de GPUs que suportam o ambiente de desenvolvimento CUDA.. 

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.

Trabalho para casa: Reescrita dos relatórios entregues, contemplando uma completa caracterização do ambiente experimental na avaliação de desempenho. Algumas dicas sobre o teste de avaliação a realizar a 05-Jan-10.

 

****************   Férias de Natal   **********************

 

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: 22 Dez 2009