article
aula 1 revisão
Dados do curso
Media Final: $(\frac{P_1 + P_2 + MProj}{3} \ + \ \text{Artefato})$
Programa (sem ordem)
- Princıpios basicos de concorrencia.
- Solucoes para problemas classicos em memoria compartilhada
- Solucoes para problemas classicos em memoria distribu ́ıda
- Computação de alto desempenho e paralelismo
- Threads e openMP
- Condicoes e modelos de paralelismo
- Avaliacao e otimizacao de desempenho
- CUDA e openCL
- MPI
Previsão de Datas
- Revisao sobre regiao crıtica, semaforos e deadlocks
- Concorrencia usando monitores
- Exemplos de problemas concorrentes
- Mais exemplos
- Threads
- openMP, parte 1
- openMP, parte 2
- Concorrencia usando troca de mensagens
- Novos exemplos
- RPCS
- Exemplos
- Rendezvous
- Exemplos
- Primeira Prova
- Computacao de alto desempenho
- GPUs e CUDA
- CUDA, parte 2
- Processadores para alto desempenho
- Memoria para alto desempenho
- Conectividade para alto desemepnho
- Condicoes de paralelismo
- Modelos de paralelizacao
- MPI, parte 1
- MPI, parte 2
- Avaliacao de desempenho
- Otimizacao de codigo
- openCL
- Segunda Prova
- Apresentacoes de artefatos
- EXAME
Revisão de concorrência (visto em SO)
Causas de um deadlock:
- hold de recursos
- circular wait
Algoritmos de tratamento:
- Banqueiro: garante que um processo so rode se todos os recursos que ele requer estejam disponiveis (nao importa muito como ele faz isso)
- Padaria (pãozinho): da prioridade para o processo requerente por um numero natural sempre crescente, assim o proximo requerente tera menos prioridade para acessar um recurso.
- Detecção de ciclo (de floyd): algoritmo da tartaruga e lebre, 2 ponteiros se dispoem na sequencia de eventos, cada um iterando por ela em velocidades distintas (dai o nome). Mais complexo do que o necessario para o momento.
- Timeout (batizado de agiota pelos conterraneos): empresta o recurso por x unidades de tempo e o remove em caso de atraso.
