Logotipo e link para a Universidade do Minho

CPD - Arquiteturas Avançadas
Mestrado Eng.ª Informática
2017/2018
Docente responsável: A. Proença

Vista da Rua do Souto no Séc. XVI

 

Sumários
de
Arquiteturas Avançadas

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

 

(Ano anterior: 2016/2017)

Ultima Modificação: 09 Jan 2018
 

 departamento de informática

Avisos:

  1. Alteração de datas de avaliação: a defesa oral do Work Assignment foi adiada para terça dia 16-jan-18, sendo a deadline para a entrega da versão definitiva do relatório 22-jan-18 (10h). As correções das versões draft do relatório serão distribuídas por email na quinta 11-jan, bem como a divulgação das classificações dos testes. (9-jan-18)
     

  2. Sessão prática com o Lab4: para compensar a sessão laboratorial que não pôde funcionar na semana de 5-dez (devido às palestras) esta sessão com Lab4 irá ocorrer na terça, 12-dez, a partir das 14h, na mesma sala de aula (o Prof. João Luís Sobral estará presente a partir das 15h30 para esclarecimento de dúvidas a PCP). (11-dez-17)
     

  3. Template para o teste: o teste terá uma forma semelhante ao que se indica aqui; poderá sofrer ainda pequenas modificações a esta proposta. (7-dez-17)
     

  4. Datas acordadas para as avaliações: o teste ficou marcado para terça 12-dez-17; a defesa oral do Work Assignment será feita na terça dia 9-jan-18, sendo a deadline para a entrega de uma versão resumida do relatório o dia 8-jan-18 (10h) e a versão definitiva do relatório 15-jan-18 (10h). (4-dez-17)
     

  5. Workshop sobre Advanced Computing: ACES 2017 - Workshop on Advanced Computing for Earth Sciences | 18-20 December 2017, Porto, é este o título de um email que enviei recentemente para listas de investigadores na UM e alguns estudantes de doutoramento. Julgo tb ser do vosso interesse; para mais informações ver aqui.  (22-nov-17)
     

  6. Penalização na avaliação: de acordo com a metodologia de avaliação desta UC, a participação nas sessões laboratoriais é um dos elementos de avaliação, e esta participação pressupõe a preparação prévia para os trabalhos a concretizar, incluindo a realização dos TPCs indicados no guião; infelizmente tal não aconteceu na sessão do Lab1 (e serão penalizados por tal), e espero que a situação não se repita na sessão dos Lab's seguintes.  (2-nov-17)
     

  7. Avaliação (proposta): e elementos de avaliação: (i) participação em todas as sessões laboratoriais (10% a 15%), (ii) trabalho prático com relatório e defesa em jan-18 (30% a 50%), e (iii) teste escrito na 1ª semana de jan-18 (40% a 60%).   (18-set-17)
     

  8. Bibliografia: a bibliografia referida no aviso anterior contém um livro principal (CAQA, 5th Ed.), corretamente especificado e uma edição antiga de um 2º livro sobre GPUs; para além destes há ainda mais 2 livros aconselhados, um também de Hennessy & Patterson (para revisão de conceitos básicos em Arquitetura de Computadores) e outro sobre o Intel Xeon Phi. Eis a lista dos 4 livros úteis para esta UC:
    • David Patterson & John Hennessy, Computer Architecture. A Quantitative Approach, 5th Ed., Morgan Kaufmann, 2011
    • David Patterson & John Hennessy, Computer Organization and Design, 5th Ed., Morgan Kaufmann, 2013
    • David Kirk & Wen-mei Hwu, Programming Massively Parallel Processors, A Hands-on Approach, 2nd Ed., Morgan Kaufmann, 2012
    • James Jeffers, James Reinders & Avinash Sodani, Intel Xeon Phi Processor High Performance Programming, Knights Landing Edition, Morgan Kaufmann, 2016  (20-set-17)
     

  9. Info complementar: os "Objectivos de aprendizagem", "Conteúdos programáticos", "Metodologias de ensino e avaliação" e "Bibliografia" estão no site oficial de MiEI, em http://miei.di.uminho.pt/plano_estudos.html#arquiteturas_avan_adas; este site é essencialmente orientado aos sumários e divulgação das notas de apoio associadas a cada sumário. (18-set-17)
     

  10. Metodologia de atualização dos sumários: as aulas deste ano irão inspirar-se no funcionamento do ano anterior; para facilitar a escrita de sumários foram copiados para aqui os sumários do ano anterior e colocados em cinzento; cada vez que for atualizado o sumário com o conteúdo efetivamente lecionado, esse será eventualmente modificado e colocado a preto. (18-set-17)

Topo...


Sumários & Notas de apoio:

Semana 1

19-set-17 (9h-12h)

Introdução ao perfil: Caracterização do ambiente de trabalho para 2017/18: os alunos (e sua formação prévia), a equipa docente (4 docentes), a estrutura e objetivos das UCs do perfil de especialização (AA, PCP, AP, ESC), a metodologia de trabalho e proposta para discussão sobre a metodologia de avaliação a adoptar.

Aula teórica: Revisão de conceitos básicos de sistemas de computação, com destaque para a evolução das melhorias da arquitetura interna do CPU e hierarquia de memória. Breve revisão das questões pertinentes que ligam o desempenho à arquitetura 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, multiple issue), do paralelismo de dados (SIMD/vetorial), do paralelismo na execução de fios de execução (multi-threading) e da organização da memória.

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/miei/sc/), 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: 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 2

26-set-17 (9h-12h e 14h-16h)

Aula teórica: Revisão de conceitos básicos de sistemas de computação: análise da microarquitetura de processadores multicore e reflexão sobre estratégias de fabricantes para a redução da latência no acesso à memória; exemplo detalhado de várias implementações ILP na microarquitetura do Intel P6, enquanto percursor das atuais microarquiteturas Intel x86; visualização da iteração de ciclos num fragmento de código vetorial, com uma análise comparativa do desempenhos estimados e medidos (em CPE) e consequente explicação das implicações da estrutura do processador no desempenho do código.

Introdução ao ambiente laboratorial do perfil: Apresentação do cluster computacional SeARCH de apoio ao funcionamento das UCs do perfil de CPD, e exposição sucinta do ambiente de desenvolvimento de aplicações no cluster (com a colaboração dos Engº. André Pereira e Eng.º Albano Serrano).

Sugestão de leituras: Slides de revisão sobre ILP e slides  de introdução ao cluster SeARCH.
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)
.

Semana 3

03-out-17 (9h-12h)

Aula teórica com exemplos: 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. Breve introdução à organização das caches, nomeadamente nos protocolos de coerência de cache (snooping e directory-based) e na consistência de caches.

Sugestão de leituras: Slides da aula sobre hierarquia de memória, complementada 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), o Cap 2 é dedicado às questões mais avançadas de hierarquia de memória, sendo o tópico de coerência de caches abordado em 5.2 de CAQA.
 

Semana 4

10-out-17 (9h-12h)

Aula teórica com exemplos: Hierarquia de memoria: análise de 6 técnicas de otimização básicas e outras 10 mais avançadas.
A evolução das arquiteturas 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 e técnicas de multiple-issue. Exploração de paralelismo ao nível dos fios de execução (Thread-Level Parallelism, TLP): noção de multithreading de grão fino / multiplexado no tempo, grão grosso e simultâneo (SMT), com referência ao Hyper-Threading da Intel (HT). Paralelismo ao nível dos dados: introdução às arquiteturas vetoriais.

Sugestão de leituras: Os slides sobre ILP-MThread segue o material do livro CAQA, e as secções relevantes estão referidas no último slide. Um artigo ainda atual colocado em fins de 2012 no website do Dr.Dobb's sobre Cache-friendly code e outro sobre modelos de consistência em memória partilhada.

Semana 5

17-out-17 (9h-12h) 

Aula teórica: Paralelismo ao nível dos dados: desafios e características das arquiteturas vetoriais.

Aula tutorial com prática laboratorial: Introdução às ferramentas de utilização de contadores de desempenho de hardware, com destaque para o PAPI. Exemplos e exercícios práticos da sua utilização, num nó do cluster.
Apresentação de um caso de estudo (multiplicação de matrizes) com análise de ineficiências no algoritmo e sua execução em processadores x86, com sugestões de melhorias, incluindo técnicas efetivas de vetorização e de paralelização em ambiente de memória partilhada. Medição e comparação do desempenho do caso de estudo com a aplicação das diversas técnicas, usando um nó do cluster.

Sugestão de leituras: A 1ª série de slides sobre DataParallelism1 segue as primeiras 3 secções do Cap. 4 do livro CAQA e são uma introdução ao paralelismo ao nível dos dados; os

Semana 6

24-out-17 (9h-12h)

Aula teórica: Paralelismo ao nível dos dados: desafios e características das arquiteturas vetoriais; extensões SIMD em arquitecturas SISD, nomeadamente Intel (MMX, SSE, AVX/AVX2, AVX-512) e ARM (NEON e SVE), com referência às suas limitações relativamente aos computadores vetoriais e como estas limitações têm vindo a reduzir nas extensões AVX e SVE.
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 com extensões SIMD, nomeadamente (i) os processadores e co-processadores aceleradores de computação many-core, nomeadamente os dispositivos Many Integrated Core (MIC) da Intel (Xeon Phi), (ii) o IBM Power BlueGene/Q Compute e o ShenWay 26010, (iii) os aceleradoires ISA-free (FPGA) com destaque para a oferta da Intel e (iv) os aceleradores baseados em GPU da NVidia (apenas introdução).

Sugestão de leituras: Os slides completos de DataParallelism1 e a 1ª parte dos slides sobre DataParallelism2; estes slides seguem material diverso disperso na web.
Os slides da sessão tutorial com prática laboratorial sobre PAPI e Code-Optimization, e o guião de trabalhos para a sessão laboratorial 1 (e código associado) contendo uma lista de trabalhos obrigatórios a realizar antes do início da sessão.
Recomenda-se ainda (i) a exploração deste site da Intel com informação pertinente sobre o MIC, bem como os dois primeiros capítulos do livro recomendado sobre o Intel Xeon Phi Coprocessor; e (ii) o relatório que analisa a arquitetura do sistema que está em #1 no TOP500 desde junho'16, o Sunway TaihuLight.
 

Semana 7

31-out-17 (9h-12h)

Aula teórica: Paralelismo ao nível dos dados para além dos computadores vetoriais e extensões SIMD: continuação da abordagem às arquiteturas particulares de dispositivos baseados em CPUs, complementada com uma análise detalhada dos GPUs da NVidia, em especial a evolução Fermi/Kepler/Maxwell/Pascal/Volta e seu impacto nos sistemas do TOP500.

Aula prática laboratorial (Lab1): Análise do impacto da vetorização de código e sua escalabilidade em termos de # threads paralelos, usando sempre um problema com a mesma dimensão, em sistemas com Xeon multicore (guião Lab1, distribuído na semana anterior).

Sugestão de leituras: A versão completa (e modificada) dos slides de DataParallelism2; estes slides foram elaborados com base em documentação diversa recolhida na Web, estando a maioria dos links referidos nos próprios slides; recomenda-se ainda a leitura de 2 whitepapers da NVidia, um apresentando o Kepler GK110 (equipa vários nós do cluster) e outro sobre a última geração da NVidia, o Tesla V100 (Volta).
O guião de trabalhos para a sessão laboratorial 2 com uma lista de trabalhos obrigatórios a realizar antes do início da sessão, complementado por estes ficheiros e por um conjunto de slides de introdução à programação de GPUs com CUDA que complementarão o material a apresentar na próxima aula.

Semana 8  

7-nov-17 (9h-12h)

Aula teórica: Introdução ao ambiente CUDA como modelo de programação orientado para os dispositivos GPU: terminologia, modelos de memória e de organização de threads.

Aula prática laboratorial (Lab2): Tutorial sobre CUDA, com apresentação dos conceitos chave em CUDA e na formalização das atividades paralelas, com análise hands-on de um problema para execução num nó do cluster.

Sugestão de leituras: os slides de introdução a CUDA; os slides com o tutorial sobre CUDA foram disponibilizados no sumário da aula anterior; ler também os Chap 3 a 6 do livro recomendado sobre os GPUs da NVidia (Programming Massively Parallel Processors) e as partes relevantes sobre GPUs que estão na secção 4.4 do livro CAQA; em complemento destes capítulos, sugere-se uma leitura dos slides das sessões práticas de CUDA dum ano anterior (TACC-CUDA). 

Semana 9

14-nov-17 (9h-12h)

Aula teórica: Discussão dos modelos de programação dos manycore chips da família Intel MIC, dos co-processadores no Xeon Phi Knights Corner (KNC) aos processadores no Xeon Phi Knights Landing (KNL); análise detalhada das inovações introduzidas na arquitetura do KNL.
Apresentação do modelo de desempenho Roofline, com exemplos; explicitação dos possíveis bottlenecks da execução de código num nó computacional com 2 dispositivos com CPUs e com um ou mais aceleradores, com referência ao impacto das limitações do código usado (introdução de ceilings no modelo Roofline). Sugestões de melhoria de desempenho do código com base na intensidade operacional do mesmo e do Roofline do sistema de computação usado.

Sugestão de leituras: Os slides sobre a família Intel MIC; uma compilação de artigos sobre a arquitetura e programação dos manycore Xeon Phi da Intel, incluindo alguns capítulos do livro sobre o KNL. Os slides sobre Roofline. O conceito de Roofline é apresentado na secção 4.3 do livro CAQA e o artigo que surgiu no ACM está aqui.
O guião de trabalhos para a sessão laboratorial 3 com uma lista de trabalhos obrigatórios a realizar antes do início da sessão, complementado por estes ficheiros.

Trabalho prático para casa (para avaliação): O enunciado e respetiva documentação de apoio.

Semana 10

21-nov-17 (9h-12h)

Aula teórica: Paralelismo ao nível dos dados para além dos computadores vetoriais e extensões SIMD: análise de SoCs híbridos com multicore PUs e GPU-cores, com destaque para os chips da Intel e da associação da ARM com a NVidia (família Tegra).
Análise crítica da arquitetura dos 10 primeiros sistemas na lista mais recente do TOP500 (Nov'17) e histórico da evolução da arquitetura dos sistemas.

Sugestão de leituras: versão modificada e atualizada dos slides de DataParallelism2; 1ª parte dos slides NextHPC.

Semana 11 

28-nov-17 (9h-12h)

Aula teórica: Análise crítica da arquitetura dos 10 primeiros sistemas nas listas mais recentes do GREEN500 e do TOP500 usando o HPCG benchmark em substituição do HPL (Nov'17). Análise da evolução de PUs para a próxima geração de sistemas HPC, quer na Intel (Xeon processor Scalable Family), na Fujitsu (evolução do SPARC64 e aposta numa versão do ARMv8 de 64-bits), na Cavium (com o ThunderX2 que virá a equipar o novo Cray XC50 e o projeto Mont Blanc em Barcelona) e no fabricante chinês Pythium (com o dispositivo Mars baseado em 64 cores Xiaomi)

.Aula prática laboratorial: Análise e discussão de questões relacionadas com o trabalho prático para avaliação.

Sugestão de leituras: versão modificada e atualizada dos slides NextHPC.
O guião de trabalhos para a sessão laboratorial 4 com uma lista de trabalhos obrigatórios a realizar antes do início da sessão, complementado por estes ficheiros.

Semana 12

05-dez-17 (9h-12h)

Palestras:
1. Os desafios dum sistema embebido NVidia Jetson TX2 num projeto Bosch (slides)
2. O TACC e o seu papel na criação do MAC, o 1º centro HPC em Portugal
(slides)


Semana 13

12-dez-17 (9h-12h)

Avaliação: Teste escrito.

Aula prática laboratorial (Lab4): Técnicas de otimização de código CUDA com análise comparativa de desempenho face a idêntica execução num Xeon multicore.

 

09-jan-18 (9h-12h)

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.

 

 


Direitos de Autor & Copyright

Esta publicação - incluindo a sua faculdade de impressão - e respetivos 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, do Mestrado de Eng.ª Informática, da Universidade do Minho, para uso pessoal e fins de aprendizagem eletró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 eletró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 infrator.

Topo...


Página mantida por aproenca<at>di.uminho.pt
Ultima Modificação: 09 Jan 2018