Ir para o conteúdo principal
Painel lateral
Disciplinas »
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
Português - Brasil (pt_br)
Deutsch (de)
English (en)
Español - Internacional (es)
Français (fr)
Italiano (it)
Português - Brasil (pt_br)
Buscar
Fechar
Buscar
Alternar entrada de pesquisa
Acessar
7600069 - Programação para Alto Desempenho (2020)
Início
Ambientes
2020
IFSC
760
7600069-201-2020
14 setembro - 20 setembro
Vídeo, parte 12: Conclusão
Vídeo, parte 12: Conclusão
Vídeo, parte 12: Conclusão
◄ Vídeo, parte 11: Gerenciamento de memória, particionamento variável
Seguir para...
Seguir para...
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
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 5: Execução superescalar
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
Soma de matrizes (por linha) ►