Logotipo e link para a Universidade do Minho

CPD - Arquiteturas Avançadas
Mestrado Eng.ª Informática
2020/2021
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: 2019/2020)

Ultima Modificação: 05 Fev 2021
 

 departamento de informática

Avisos:

  1. Pauta com  a classificação do semestre: já está disponível a pauta provisória. (05-fev-21)
     

  2. Defesa dos trabalhos: conforme indicado antes, a defesa dos trabalhos irá decorrer esta terça, 19-jan-21, de manhã 9h00-12h00 e de tarde 14h00-16h00. Mais informações sobre como irá decorrer esta sessão aqui. (18-jan-21)
     

  3. Teste de 12-jan-21: confirmo que será às 9h00 na sala de aulas habitual, e terá a duração de 2h; é um teste sem consulta e sem necessidade de se usar computador ou máquina de calcular. O teste será distribuído com luvas e no fim será colocado numa caixa a fim de limitar possíveis contágios, antes de ser corrigido. Por favor entrem ordenadamente e com o devido distanciamento social.  (11-jan-21)
     

  4. Alteração da data da palestra de Computação Quântica: infelizmente o Prof. Luís Paulo Santos não pôde deslocar-se à UM para a palestra de CQ de 5-jan-21 por motivos de saúde da sua mãe. Contudo, assumindo que tudo correrá pelo melhor, ele disponibilizou-se para vir falar de CQ no próximo dia 12-jan-21,após o teste. (05-jan-21)
     

  5. Aula de 5-jan-21: será integralmente presencial. Votos de um Santo Natal para todos. (17-dez-20)
     

  6. Datas para provas de avaliação (decisão na aula de 15-dez-20): teste a 12-jan-21; defesa do trabalho a 19-jan-21; entrega do relatório do trabalho a 25-jan-21. (17-dez-20)
     

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

  8. Disponibilização de material de estudo:  todas as semanas os sumários são atualizados com slides e vídeos da sessão online bem como slides e vídeo de preparação para a aula da semana seguinte, os quais deverão ser lidos antes das sessões online para que nestas se possa discutir os temas da sessão e esclarecer dúvidas.  (27-out-20)
     

  9. Avaliação (proposta): 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-21 (30% a 50%), e (iii) teste escrito em data a definir, podendo ser na 1ª semana de jan-21 (40% a 60%).   (01-out-20)
     

  10. 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   (01-out-20)
     

  11. 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.  (01-out-20)
     

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

Topo...


Sumários & Notas de apoio:

Semana 1

06-out-20 (9h-12h)

Ainda não houve aula.

Semana 2

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

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

Aula teórica: Caracterização da UC AA enquanto preparativo de base para a formação de performance engineers.
Revisão de conceitos básicos de sistemas de computação, com destaque para a evolução das melhorias da arquitetura interna da PU 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.
Apresentação de exemplo detalhado de várias implementações ILP na microarquitetura do Intel P6, enquanto percursor das atuais microarquiteturas Intel x86.

Aula prática: Apresentação do cluster e visita guiada as instalações do cluster.

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 da sessão teórica e slides de apresentação do cluster.
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.
Introdução ao tópico para discussão na próxima aula online, slides e vídeo.

Trabalho para casa: Rever conhecimentos adquiridos na licenciatura: (i) 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; (ii) técnicas de otimização de código tirando partido de ILP e superescalaridade.

Semana 3

20-out-20  (9h-12h)

Aula teórica com exemplos: Revisão de conceitos básicos de sistemas de computação: 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.
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).

Aula prática: Introdução a ferramentas de profiling e visualização de métricas de performance. Utilização do profiler da GNU (gprof), aplicado a 3 casos de estudo (disponíveis no SeARCH), para a identificação das suas limitações de medição e visualização de resultados.
Utilização das ferramentas Intel VTune e Intel Advisor para a avaliação da eficiência da vetorização e intensidade aritmética nesses 3 casos de estudo, para familiarização com estes profilers.

Sugestão de leituras: Slides de revisão sobre ILP e MT, divulgados na semana anterior, complementada com texto dos capítulos sugeridos na primeira semana; 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.
Os slides seguem ainda o material do livro de texto básico deste módulo Computer Architecture: A Quantitative Approach (CAQA), 5ª edição; as secções relevantes estão referidas no último slide.
Material da aula teórica online
: slides e vídeo.
Introdução ao tópico para discussão na próxima aula online, slides e vídeo.

Semana 4

27-out-20 (9h-12h)

Aula teórica: Hierarquia de memoria: 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 multiní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.
Resolução de exercícios sobre o desempenho de caches e em ambiente multinível de caches.

Aula prática: Introdução ao modelo de performance Roofline.
Realização do primeiro guião laboratorial, Lab1, que explora a utilização do Intel Advisor para a criação de um modelo Roofline e medição das métricas de performance adequadas para a criação automática de ceilings e intensidade aritmética dos 3 casos de estudo disponibilizados.

Sugestão de leituras: Slides adicionais na sessão online sobre hierarquia de memória (para além dos disponibilizados para a preparação desta aula) ,  bem como o vídeo dessa sessão: complementada com o texto que deu origem aos slides, o Cap. 2 do livro de texto básico deste módulo: Computer Architecture: A Quantitative Approach (CAQA), 5ª edição, onde o Cap 2 é dedicado às questões mais avançadas de hierarquia de memória, e o Anexo B é uma revisão do conteúdo do livro mais básico dos mesmos autores (COD).
Introdução ao tópico para discussão na próxima aula online,
slides e vídeo, que
seguem as primeiras 3 secções do Cap. 4 do livro CAQA e são uma introdução ao paralelismo ao nível dos dados.
Enunciado do Lab1.

Semana 5

03-nov-20 (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, AMX) 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.

Aula prática: Vetorização: do uso de intrinsics à vetorização automática.
Realização do segundo guião laboratorial, Lab2, que acompanha o processo de vetorização automática, relacionando a informação presente nos relatórios de vetorização dos compiladores GNU e Intel (relativos a 3 casos de estudo), ao comportamento observado após a avaliação da eficiência da vetorização com recurso ao Intel VTune.

Sugestão de leituras: Material adicional da sessão online sobre extensão vetorial nas arquiteturas x86 da Intel e da ARM: slides e vídeo.
Introdução ao tópico (GPU) para discussão na próxima aula teórica online,
slides e vídeo
; estes slides foram elaborados com base em documentação diversa recolhida na Web, estando a maioria dos links referidos nos próprios slides.
Enunciado do Lab2.

Semana 6

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

Aula teórica: Paralelismo ao nível dos dados para além dos computadores vetoriais e extensões SIMD: uma breve abordagem aos aceleradores baseados em GPU da NVidia, em especial a evolução Fermi-Kepler-Pascal-Maxwell-Volta-Ampere; uma introdução ao machine learning com redes neuronais e às operações com tensores e respectivos tipos de dados; análise de componentes com extensões de tensores em GPUs e PUs com extensões SIMD (Intel, NVidia), aos componentes SoC com maior impacto (Google, Intel, Tesla, NVidia, Apple, Huawei) ou com arquitetura peculiar (Xilinx, Cerebras).

Aula prática: Continuação do Lab2: análise e remoção de bloqueadores à vetorização e análise de escalabilidade de 3 casos de estudo.
Introdução ao ambiente de programação para GPUs, CUDA.

Sugestão de leituras: Material adicional da sessão online sobre arquiteturas com tensores: slides (com material complementar ao vídeo e com informação atualizada da Apple) e  vídeo.
Introdução ao tópico (CUDA) para discussão na próxima aula online,
slides e vídeo.
Nota: é indispensável a visualização deste vídeo para poder acompanhar a realização do trabalho laboratorial da próxima  semana.

Semana 7

17-nov-20 (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: Realização do Lab3, que acompanha o processo de porte de código multicore em C++ de um
algoritmo de stencil, para CUDA. Gestão e avaliação da performance das alocações e cópias de memória, execução do kernel, e acesso eficiente à memória do GPU.

Sugestão de leituras: Introdução ao tópico (Intel manycore Xeon Phi) para discussão na próxima aula online, slides e vídeo.
Enunciado do Lab3.
 

Semana 8  

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

Aula teórica: Discussão dos modelos de programação dos chips manycore da família Intel MIC, dos co-processadores Xeon Phi Knights Corner (KNC) aos processadores Xeon Phi Knights Landing (KNL); análise detalhada das inovações introduzidas na arquitetura do KNL.
Análise de vários chips/packages de processadores de tipo server, na perspetiva de uma evolução da análise dos pontos fortes e fracos da família Xeon Phi, entretanto descontinuada pela Intel: Intel Xeon Scalable Family, AMD Epyc Zen, Shen Wei SX260xx, ARMv8 (Marvell ThunderX, Fujittsu A64FX, Arm Neoverse, Ampere Altra, AWS Graviton, Huawei Kunpeng 9xx.

Aula prática laboratorial: Otimização e comparação de duas implementações da multiplicação de matrizes: dispositivos GPU vs multicore.
Realização do guião laboratorial Lab4, que acompanha o processo de medição e comparação da performance do algoritmo SGEMM implementado em CUDA e em C + OpenMP. Implementação e medição do impacto de técnicas de otimização avançadas em CUDA usando shared memory e gestão do padrão de acesso à memória (coalesced memory accesses).

Sugestão de leituras: Material adicional da sessão online sobre análise de vários processadores de elevado desempenho e concorrentes da Intel: slides e vídeo; recomenda-se ainda a exploração dos dois primeiros capítulos do livro recomendado sobre o Intel Xeon Phi Processor
Recomenda-se ainda a leitura do artigo científico recomendado no último slide online, a Turing Lecture do Hennessy & Patterson.
Introdução ao tópico (top HPC systems in TOP500) para discussão na próxima aula online,
slides e vídeo.
Enunciado do Lab4.

Semana 9

01-dez-20 (9h-12h)

Feriado

Semana 10

08-dez-20 (9h-12h)

Feriado

Semana 11 

15-dez-20 (9h-12h)

Aula teórica: Análise crítica da arquitetura dos 10 primeiros sistemas nas listas mais recentes do TOP500, do GREEN500 e usando o HPCG benchmark em substituição do HPL, com destaque para as arquiteturas mais recentes de unidades de processamento de sistemas HPC. Breve introdução aos benchmarks complementares de HPL-AI e do GRAPH500.
Análise de algumas  estatísticas relevantes de TOP500 referente a novembro de 2020.
Uma visão da iniciativa EuroHPC com análise da arquitetura do Decalion, o sistema de 5 PFLOPs a instalar no MACC.

Aula prática laboratorialSessão de apoio a dúvidas do Work Assignment e dos guiões laboratoriais disponibilizados durante o semestre. Identificação dos pontos fracos e possíveis soluções dos guiões laboratoriais.

Sugestão de leituras: Material adicional da sessão online sobre análise estatística de gráficos do TOP500, do EuroHPC e do Decalion: slides e vídeo.

Semana 12

05-jan-21 (9h-12h)

Aula prática laboratorial:  Sessão de esclarecimento do Work Assignment.


Semana 13

12-jan-21 (9h-12h)

Avaliação: Teste escrito.

Aula teórica: Palestra pelo Prof. Luís Paulo Santos, "Introdução à Computação Quântica e ao algoritmo de Grover" (slides).

Semana 14

19-jan-21 (09h-12h e 14h00-16h00)

Apresentação e discussão de trabalhos: 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: 05 Fev 2021