Logotipo e link para a Universidade do Minho

Computação Paralela Distribuída
Mestrado Eng.ª Informática
2012/2013
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 | 13 | 14 | 15 | 16 | 17 | 18    

Ultima Modificação: 04 Dez 2012
 

 

 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. (08-out-12)

  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. A estrutura formal de apresentação dos sumários vai ser adaptada ao exigido para preenchimento na plataforma eletrónica oficial da UM. (08-out-12)

Topo...


Semana 1

18-set-12 (9h-11h)

Atividades de receção e apresentação do curso (parte 1).

Semana 2

25-set-12 (9h-11h)

???

Semana 3

02-out-12 (9h-13h)

Caracterização do ambiente de trabalho para 2012/13: 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 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: organização de um computador com destaque para o par processador-memória e análise da interface entre este par e a execução de instruções de um programa desenvolvido num paradigma imperativo.

Semana 4

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

Aula teórica: Revisão de conceitos básicos de sistemas de computação: mecanismos de optimização da arquitectura interna do CPU e hierarquia de memória. 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, multi-threading) e da organização da memória.

Debate: Evolução dos sistemas de computação, dos mono-processadores aos multi-processadores, multi-core e clusters computacionais.

Sugestão de leituras: Material de revisão da licenciatura: página da unidade curricular (UC) de Sistemas de Computação da LEI (em http://gec.di.uminho.pt/lei/sc1112/), 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.
Slides desta sessão.
Material para aprofundar e para debate na próxima semana: capítulos 4 (4.10) e 5 (5.1, 5.2, 5.3, 5.8, 5.10) da 4* edição do livro Computer Organization and Design, COD.

Trabalho para casa:  (i) identificar a microarquitetura de todos os processadores AMD e Intel, do Hammer e Core até às mais recentes, e construir uma tabela com: ano, max clock frequency, # pipeline stages, grau de superscalarity, # simultaneous threads, suporte vectorial , # cores, tipo/bandwidth de interfaces externas, ...; (ii) identificar as gerações de dispositivos CPU no cluster SeARCH . Ver sugestões no último slide disponibilizado.

Semana 5

16-out-12 (9h-13h)

Aula teórica com debate: Exemplo detalhado duma implementação ILP na microarquitetura do Intel P6, enquanto percursor das atuais microarquiteturas Intel x86: visualização da iteraçºao de ciclos num fragmento de código vetorial, com uma análise comparativa do desempenho estimado e medido (em CPE).
Discussão dos resultados do TPC com sugestões para melhorar a apresentação dos mesmos.
Hierarquia de memória: visão global do impacto de circuitos memória lentos versus rápidas unidades de computação no desempenho dos sistemas de computação, e uma revisão de conceitos básicos sobre organização e estrutura de uma cache.

Sugestão de leituras: Slides de revisão sobre ILP e cache.
Em complemento dos capítulos sugeridos na semana anterior, recomendamos ainda o capítulo 5 do livro de Bryant (Optimizing Program Performance), em especial na parte sobre sobre execução paralela de instruções, e o capítulo 6 do mesmo livro (Memory Hierarchy)
.

Trabalho para casa: (i) Para as mesmas arquiteturas de processadores AMD e Intel referidas no TPC anterior, completar a tabela com dados sobre a hierarquia de memória on-chip, nomeadamente: # níveis de cache, e para cada, tamanho, estrutura (block size/placement, replacement policy, write policy), bandwidth para aceder aos níveis inferiores; (ii) completar as gerações de CPU no cluster SeARCH . Ver as sugestões indicadas no último slide disponibilizado.

Semana 6

23-out-12 (9h-13h) 

Aula teórica com exercícios: Hierarquia de memoria: questões chave no projeto de memórias cache com análise do impacto da hierarquia no desempenho da execução de código ao nível de CPI; estimativa do impacto no desempenho das caches multi-nível em termos de hit time, miss rate e miss penalty, devido aos seguintes fatores chave: tamanho da cache/bloco, colocação/substituição de blocos (linhas), técnicas de escrita, latência/bandwidth; técnicas de otimização básicas e avançadas. Breve introdução às questões de coerência e consistência em caches.

Sugestão de leituras: slides da aula sobre hierarquia de memória. Complementar esta leitura com o texto que lhe deu origem, o Cap. 2 e o Anexo B do livro de texto básico deste módulo: Computer Architecture: A Quantitative Approach (CAQA), 5ª edição, onde o anexo é uma revisão do conteúdo do livro mais básico dos mesmos autores (COD) e o Cap 2 é dedicado às questões mais avançadas de hierarquia de memória.

Trabalhos para casa
: (i) completar adequadamente a tabela comparativa dos processadores x86-64 mais recentes na sequência das especificações definidas anteriormente, para discussão na próxima sessão; (ii) ler e estudar para discussão na próxima aula este tutorial sobre modelos de consistência de memória partilhada.

Semana 7

30-out-12 (9h-13h)

Palestra: Apresentação de Miguel Nóbrega (DEP/UM), "Computer aided design of thermoplastic profile forming tools"

Aula teórica: A evolução das arquitecturas para além do paralelismo ao nível da instrução (ILP), com revisão dos principais desafios para melhorar desempenho de um uniprocessador, focando a melhoria do CPI com pipeline, técnicas de multi-issue, exploração de paralelismo ao nível dos fios de execução (Thread-Level Parallelism, TLP) e suas consequências na organização das caches, nomeadamente nos protocolos de coerência de cache (snooping e directory-based) e na consistência de caches. 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 sobre ILP-MThread. Estes slides seguem o material do livro CAQA, e as secções relevantes estão referidas no último slide.

 

Semana 8  

06-nov-12 (11h-13h)

Palestra: Apresentação de Nuno Micaêlo (CQuímica/UM), "Increasing the realism of molecular dynamics simulations: incorporation of fast electrostatic calculations using GPU devices"

Aula teórica: Paralelismo ao nível dos dados: arquitecturas vetoriais, extensões SIMD em arquitecturas SISD (MMX, SSE e equivalentes), SIMD e multithreading em GPU's, enquanto co-processadores vectoriais. Introdução à arquitectura de GPU's: terminologia (multicore, manycore, GPU-thread, GPU-core, SPMD/SIMT/SIMD).

Sugestão de leituras: Os slides sobre DataParallelism1. Estes slides seguem os primeiras 4 secções do Cap. 4 do livro CAQA.

Trabalho a realizar em casa: A lista de artigos que são referenciados aqui (por favor, começar por ler o ficheiro ReadMeFirst) são de leitura obrigatória (faz parte da avaliação do módulo). Posteriormente será preciso preparar e entregar um relatório curto (formato de artigo científico) com o máximo de 4 páginas, e uma apresentação oral curta (8/10 min), a efetuar no dia 27-nov-12.

Semana 9

13-nov-12 (9h-13h)

Aula teórica: Paralelismo ao nível dos dados para além dos computadores vetoriais e extensões SIMD: uma breve abordagem às arquiteturas particulares de dispositivos baseados em CPUs, nomeadamente Keystone DSP da TI, IBM Cell, ARM-64 e os novos dispositivos Many Integrated Core (MIC) da Intel; dispositivos sem processadores escalares, nomeadamente as FPGA (que podem ser ISA-free) e os GPUs. O GPU como um dispositivo de computação e o CUDA como modelo de programação para estes novos dispositivos: terminologia, modelos de memória e de organização de threads, a família de dispositivos da NVidia CUDA-enabled, com destaque para as arquiteturas do Fermi e do Kepler.

Sugestão de leituras: Os slides sobre DataParallelism2. Estes slides seguem material diverso disperso na web, mas as partes relevantes sobre os GPUs estão na secção 4.4 do livro CAQA e no livro da NVidia recomendado com texto básico. São ainda de destacar as seguintes recomendações de leituras: a introdução à arquitetura do MIC da Intel dos websites do Dr.Dobb's e do ExtremeTech, o documento oficial da NVidia a descrever a arquitetura do Kepler, e uma breve análise do MIC versus Kepler no website de HPCwire.

Semana 10

20-nov-12 (9h-11h)

Palestra com discussão: Apresentação de Rui Silva (estudante de PhD no DI/UM), "Hands-on experience with the performance analysis tool PAPI"

Sugestão de leituras: Um artigo colocado recentemente no website do Dr.Dobb's sobre Cache-friendly code.
Nota
: a nova versão do guião para o Working assignment está disponível aqui.

Semana 11 

27-nov-12 (9h-13h)

Apresentação e discussão de trabalhos: Caracterização em termos de desempenho máximo de várias plataformas de computação (usando o Roofline), e análise do desempenho de vários algoritmos de multiplicação de matrizes quadradas usando três ciclos aninhados (variando a ordem de execução dos ciclos e alterando o armazenamento em memória de algumas matrizes, por transposição dos elementos). Discussão aberta dos resultados obtidos.

Sugestão de leituras: O conjunto dos relatórios apresentados e cópias dos slides estão compactados neste ficheiro.

27-nov-12 (15h-19h)

Webcast (from TACC, at Univ Texas in Austin): CUDA programming, part 1. Instructor: João Barbosa.

Aula laboratorial: Implementação de exemplos de código desenvolvido para GPU, para execução em componentes Fermi no cluster SeARCH.

Sugestão de leituras: Os slides apresentados, bem como os Chap 3 a 5 do livro recomendado sobre (Programming Massively Parallel Processors). Recomenda-se ainda a leitura desta reflexão sobre a "selva" dos sistemas heterogéneos...

Semana 12

04-dez-12 (9h-13h)

Webcast (from TACC, at Univ Texas in Austin): CUDA programming, part 2. Instructor: João Barbosa.

Aula laboratorial: Implementação de exemplos de código desenvolvido para GPU, para execução em componentes Fermi no cluster SeARCH.

Sugestão de leituras: Os slides apresentados, bem como os Chap 6, 11 e 12 do livro recomendado sobre (Programming Massively Parallel Processors). Para os mais curiosos, um dos autores deste livro tem a decorrer na Web desde 28-nov-12 um curso de 6 semanas sobre Heterogeneous Parallel Programming.

Semana 13

11-dez-12 (9h-13h)

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

Semana 14

08-jan-12 (9h-13h)

 

Semana 15

15-jan-12 (9h-13h)

 

Semana 16

22-jan-12 (9h-13h)

 

Semana 17

29-jan-12 (9h-13h)

 

Semana 18

05-fev-12 (9h-13h)

 

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: 04 Dez 2012