Vai al contenuto principale
Pannello laterale
Disciplinas »
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
AACCs/FFLCH
Pró-Reitoria de Pós-Graduação
Outros
Suporte »
Acesso
Perfis
Ouvintes
Docentes
Criação de Disciplinas da USP
Documentação
HelpDesk e Contato
Guia de uso
Sobre
Italiano (it)
Deutsch (de)
English (en)
Español - Internacional (es)
Français (fr)
Italiano (it)
Português - Brasil (pt_br)
Cerca
Chiudi
Cerca
Attiva/disattiva input di ricerca
Acessar
7600069 - Programação para Alto Desempenho (2020)
Home
Corsi
2020
IFSC
760
7600069-201-2020
21 settembre - 27 settembre
Vídeo, parte 5: Execução superescalar
Vídeo, parte 5: Execução superescalar
Vídeo, parte 5: Execução superescalar
◄ Vídeo, parte 4: Pipeline de instruções
Vai a...
Vai a...
Avisos
Livro: Parallel Computing
Livro: Computer Architecture
Livro: Parallel Computer Architecture
Slides da aula
Vídeo, Parte 1: Sobre a semana
Vídeo, parte 2: Complexidade
Vídeo, parte 3: Sobre as demonstrações
Vídeo, parte 4: Bubblesort e quicksort
Vídeo parte 5: Bubblesort
Vídeo, parte 6: Quicksort
Vídeo, parte 7: qsort e std::sort
Vídeo, parte 8: Execução
Código do bubblesort
Código do quicksort
Código usando qsort do C
Código usando std::sort do C++
Slides da revisão de Arquitetura e Organização de Computadores
Vídeo, parte 1: Introdução
Vídeo, parte 2: Estrutura básica de um computador
Vídeo, parte 3: Barramentos
Vídeo, parte 4: Memória
Vídeo, parte 5: Cache
Vídeo, parte 6: Mapeamento direto
Vídeo, parte 7: Mapeamento associativo
Vídeo, parte 8: Mapeamento associativo por conjuntos
Vídeo, parte 9: Outros aspectos sobre cache
Vídeo, parte 1: Experimento com cache: Soma de matrizes
Vídeo, parte 2: Explicação dos resultados anteriores
Vídeo, parte 3: Multiplicação de matrizes
Vídeo, parte 4: Multiplicação de matrizes, troca de loops
Vídeo, parte 5: Explicação do resultado anterior
Vídeo, parte 6: Cachegrind
Vídeo, parte 7: Sobre o número de acessos
Vídeo, parte 8: Entradas e saídas
Vídeo, parte 9: Multiprogramação
Vídeo, parte 10: Gerenciamento de memória, particionamento fixo
Vídeo, parte 11: Gerenciamento de memória, particionamento variável
Vídeo, parte 12: Conclusão
Soma de matrizes (por linha)
Soma de matrizes (por colunas)
Produto de matrizes, versão ingênua
Produto de matrizes, versão de transposição
Produto de matrizes, reordenamento de loops
Vídeo, parte 1: Introdução a memória virtual
Vídeo, parte 2: Alguns detalhes sobre memória virtual
Vídeo, parte 3: Mais detalhes sobre memória virtual
Vídeo, parte 4: Pipeline de instruções
Vídeo, parte 6: Execução superescalar - continuação
Vídeo, parte 7: Conclusão
Lista de exercícios (revisão de arquiteturas)
Teste 1: Arquiteturas e organização de computadores
Vídeo, parte 1: Introdução a paralelismo
Vídeo, parte 2: Estruturas de controle
Vídeo, parte 3: Estruturas de comunicação
Vídeo, parte 4: Redes de interconexão
Vídeo, parte 5: Redes dinâmicas
Vídeo, parte 6: Redes estáticas
Vídeo, parte 7: Coerência de cache
Vídeo, parte 8: Snooping e diretório
Vídeo, parte 9: Conclusão
Slides da apresentação
Lista de exercícios de revisão
Material extra (C++), constantes e referências
Material extra (C++), arranjos lineares
Material extra (C++), tuplas
Material extra (C++), loops
Material extra (C++), parâmetros para funções
Material extra (C++), struct e class
Material extra (C++), construtores e destruidores
Material extra (C++), sobrecarga de operadores
Material extra (C++), push_back e emplace_back
Material extra (C++), funções anônimas (lambda)
Material extra (C++), código com os exemplos
Vídeo, parte 1: Introdução aos exemplos
Vídeo, parte 2: Produto matriz-vetor
Código do produto matriz-vetor
Vídeo, parte 3: Mandelbrot
Código da fractal de Mandelbrot
Vídeo, parte 4: Propagação de calor
Código da propagação de calor na chapa
Slides da apresentação
Vídeo, parte 5: Processos e threads
Vídeo, parte 6: Variáveis globais, locais e de heap
Vídeo, parte 7: Compartilhamento
Vídeo, parte 8: Regiões críticas e disputa
Trabalho 1: código sequencial
Teste 2: Revisão de arquiteturas paralelas
Vídeo, parte 1: Threads em C++
Vídeo, parte 2: Disputa
Vídeo, parte 3: Máximo e mínimo
Vídeo, parte 4: Futuros
Vídeo, parte 5: Produto escalar
Código: Hello world com 2 threads
Código: Hello world com múltiplas threads
Código: Disputa no acesso a variável global compartilhada
Código: Disputa no acesso a variável local compartilhada por função anônima
Código: Cálculo de máximo e mínimo. Seções paralelas.
Código: Máximo e mínimo em um array
Código: Soma dos elementos de um array, com disputa
Código: Soma dos elementos de um array, usando futuros
Código: produto escalar
Vídeo, parte 1: Produtores e consumidores
Vídeo, parte 2: Código com disputa
Vídeo, parte 3: Execução com disputa
Vídeo, parte 4: Execução com informações de depuração
Vídeo, parte 5: Exclusão mútua e std::mutex
Vídeo, parte 6: Execução com espera ocupada
Vídeo, parte 7: Explicações sobre mutex
Vídeo, parte 8: Código sem espera ocupada e variáveis de condição
Vídeo, parte 9: Execução do código sem espera ocupada
Código: Produtores-consumidores com disputa
Código: Produtores-consumidores com espera ocupada
Código: Produtores-consumidores com variáveis de condição
Vídeo, parte 1: Multiplicação matriz-vetor, descrição
Vídeo, parte 2: Multiplicação matriz-vetor, código
Vídeo, parte 3: Multiplicação matriz-vetor, execução
Vídeo, parte 4: Mandelbrot, descrição
Vídeo, parte 5: Mandelbrot, código
Vídeo, parte 6: Mandelbrot, execução
Vídeo, parte 7: Propagação de calor, descrição
Vídeo, parte 8: Propagação de calor, código
Vídeo, parte 9: Propagação de calor, execução
Código: Produto matriz-vetor
Código: Mandelbrot
Código: Propagação de calor
Vídeo, parte 1: OpenMP, introdução
Vídeo, parte 2: OpenMP, paralelismo fork/join
Vídeo, parte 3: OpenMP, helllo world.
Vídeo, parte 4: OpenMP, compilação e execução
Vídeo, parte 5: OpenMP, atribuição com disputa
Vídeo, parte 6: OpenMP, máximo e mínimo
Vídeo, parte 7: OpenMP, máximo e mínimo em array
Vídeo, parte 8: OpenMP, somatória de vetor, com disputa
Vídeo, parte 9: OpenMP, somatória sem disputa
Vídeo, parte 10: OpenMP, somatória de vetor, solução final
Vídeo, parte 11: OpenMP, produto escalar
Todos os exemplos de OpenMP (partes 1 e 2)
Vídeo, parte 1: OpenMP, produtor consumidor com disputa
Vídeo, parte 2: OpenMP, produtor consumidor com espera ocupada
Vídeo, parte 3: Produto matriz-vetor, OpenMP
Vídeo, parte 4: Mandelbrot OpenMP
Vídeo, parte 5: Propagação de calor, OpenMP
Vídeo, parte 6: Propagação de calor OpenMP, versão 2
Vídeo, parte 7: Mergesort sequencial
Vídeo, parte 8: Mergesort OpenMP
Cheat sheet de OpenMP
Vídeo, parte 1: Introdução a MPI
Vídeo, parte 2: Conceitos básicos de MPI
Vídeo, parte 3: Mensagens em MPI
Vídeo, parte 4: Mensagens em MPI, continuação
Vídeo, parte 5: Sendrecv
Vídeo, parte 6: Operações não-bloqueantes
Códigos dos exemplos
Vídeo, parte 1: Broadcast
Vídeo, parte 2: Gather
Vídeo, parte 3: Scatter(v) e reduce
Vídeo, parte 4: Tipos de dados
Vídeo, parte 5: Struct
Códigos dos exemplos
Trabalho 2: Implementação em memória compartilhada
Vídeo, parte 1: Comunicadores
Vídeo, parte 2: Topologias
Vídeo, parte 3: Produto matriz-vetor
Vídeo, parte 4: Mandelbrot estático, por linhas
Códigos dos exemplos
Trabalho 3: MPI
Video, parte 1: Mandelbrot, particionamento 2D
Video, parte 2: Mandelbrot, esquema gerente/trabalhador
Video, parte 3: Propagação de calor
Código dos exemplos
Vídeo, parte 6: Execução superescalar - continuação ►