Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Agora as aulas serão com o professor Meira
- A aula é sobre processamento com paralelismo.
- Bibliografia indicada pelo professor:
- Introduction to Parallel Computing 2° edição -> editora Adson Wesley
- O preço é de 80 dolares xP, mas amigos russos extremamente filantropicos distribuem o pdf desse livro =] hehehe
- O motivo dessa aula é porque esse tópico tem se tornado cada vez mais comum no mundo da computação ultimamente,
- e nosso objetivo com isso é deixar os alunos preparados para usufruir dessa ferramenta sempre que for pertinente.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- CONCEITO:
- O que é programação paralela?
- É a divisão das atividades por um grupo de partições ou processos de um mesmo programa,
- com isso normalmente ganha-se tempo, apesar de um aumento da carga total de trabalho pela necessidade de sincronização.
- CONCEITO:
- O que é Concorrencia?
- Concorrencia é o fator necessário para existir paralelismo, é quando existem dois pacotes de dados sem interdependencias entre eles
- e portanto com possibilidade de serem processados em paralelo.
- CONCEITO:
- O que é a comunicação em termos de paralelismo?
- Comunicação nesse caso é a interação de informações entre dois processos de um mesmo programa para permitir
- que um programa em paralelo funcione adequadamente, e de maneira coordenada.
- Nota do professor:
- Ao programar deve-se considerar os 3 fatores:
- A rede que rege a comunicação dos processos,
- O disco que hoje é uma parte de acesso muito lento e gera gargalos,
- O processamento, pois uma má divisão de tarefas gera tanto mais trabalho que não compensa.
- ->Deve-se sempre evitar a sobrecarga de qualquer um destes 3 fatores sendo importante portanto o balanceamento.
- FRASE DO DIA:
- Hoje nossas maquina sofrem muito mais por falta de memoria do que por falta de processamento,
- por isso tome cuidado sempre que for pensar no armazenamento de variáveis pois isso pode ser importante.
- 2 CONCEITOS:
- Latencia é o tempo de resposta de uma partição do programa ao outro.
- Banda é a quantidade de dados que podem ser transmitidos em uma única comunicação.
- Ambos influem no custo total da comunicação dos processos.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Nota do professor:
- Quando um programa não funcionar com velocidade adequada é preciso pensar o porque disso, e pode-se dividir a resposta em 3 pontos:
- Pode ser o processamento desbalanceado, a memória mal utilizada, ou paralelismo mal trabalhado (comunicação ruim).
- CONCEITO:
- Localidade de referencia é a tendencia de uma mesma área da memória ser acessada com mais frequência durante um
- intervalo de tempo próximo se uma posição dela foi acessada recentemente.
- As memórias são feitas pensando-se nisso, por isso é inteligente se aproveitar da localidade quando programando
- e evitar acessos muito aleatorios na memória, preferindo arranjos, acessos sequenciais, e coisas do tipo.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Nota do professor:
- Como usar paralelismo para mascarar a latencia de busca de dados?
- O macete é encontrar tarefas para entreterem o processador enquanto o usuário estiver inativo.
- O paralelismo surge então como uma ferramenta importante, pois torna possível extrapolar e carregar os dados
- que o usuário provavelmente precisará.
- Nesse meio tempo o usuário não sente tanto o tempo de latencia, pois parte dos dados que ele pede, já estão carregados.
- Outra nota do professor: Em um processador dual core, pode vir a ser útil criar ate 4 threads ou algo do tipo, já que frequentenmente
- uma thread ficará parada ao acessar a memória abrindo espaço para outra thread aproveitar e manter o processador entretido
- aproveitando melhor o tempo de funcionamento de cada processador.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- CONCEITO:
- A comunicação entre processos pode ser dividido em dois tipos:
- Paralelismo implicito
- e explicito
- O explicito implica que o programador coordena de maneira clara as comunicações,
- existem então comunicações sendo enviadas de um processador diretamente para o outro, para agilizar a comunicação.
- O implicito é quando a comunicação acontece pela memoria, nesse caso o programa fica refém da capacidade da arquitetura de
- fazer essa transição de maneira adequada, mas é uma programação mais simples, e as vezes mais produtiva.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- CONCEITOS:
- UMA é Uniform Memory Access, que é quando o tempo de acesso a memoria é uniforme.
- NUMA é Non-Uniform Memory Access, que é quando o tempo de acesso a memoria é não-uniforme,
- // Aparentenmente estes dois casos são dependentes da arquitetura em questão.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- Essa materia está no capitulo 2 do livro citado na bibliografia
- Aula que vem estudaremos o 3.
- Veremos no futuro o 4 o 5 e o 7 também.
Advertisement
Add Comment
Please, Sign In to add comment