Академический Документы
Профессиональный Документы
Культура Документы
Computadores
Aula 1: Motivação e Conceitos Básicos
2
Site da disciplina
www.lam.ufrj.br/moodle
Fazer o cadastro no site
Colocar nome completo
Fazer inscrição na disciplina
Chave de acesso: GRUPOXX_AA_UERJ_2012_2
Substituir XX pelo número do seu grupo.
Material
Atividades
Avisos
Fórum
Dúvidas
3
Livro texto
Organização e Projeto de Computadores – A Interface
Hardware/Software
David A. Patterson e John L. Henessy
3ª Edição
Editora Campus
Listas de Exercícios
5
Lei de Moore
“A densidade de transistores nos circuitos integrados dobra a
cada 2 anos.”
6
Lei de Moore
7
Mais Transitores = ?
Conectividade
# de conexões cresce quadraticamente com o # de unidades
funcionais
Dissipação de calor
Gerência do uso de energia
Sincronização (clock)
Variabilidade do substrato (silício)
=> problemas interligados
8
AMD OverDrive
9
Intel i7 TurboBoost
10
Multicores
Muitos núcleos
Forma de aproveitar a maior
densidade de transistores
=> problemas continuam
11
Intel i7
12
AMD 6200 – Interlagos – 16 cores
13
Cores mais simples
Graphics Processing Units (GPUs)
Aceleradores gráficos
NVIDIA, AMD/ATI
General Purpose GPUs (GPGPUs)
Programáveis em subconjunto do C
CUDA (NVIDIA)
OpenCL (NVIDIA e ATI)
14
NVIDIA Tesla M2090
Processamento sísmico, CFD, CAE, computação
financeira, química e física computacional,
análise de dados, processamento de imagem de
satélite, modelagem climática
Pico de Ponto flutuante precisão dupla: 665
Gigaflops
Pico de Ponto flutuante precisão simples: 1331
Gigaflops
Memória : 6GB
Cuda Cores: 512
15
Memory Wall
16
Em outra direção...
Várias Máquinas
Clusters
Rede local (uso de switches)
17
Clusters
Agregado de máquinas off-the-shelf realizando processamento
paralelo
Beowulf (NASA, 1994)
NoW/CoW – Network/Cluster ofWorkstations (Berkeley, 1996)
18
Clusters
San Diego Supercomputing Center
19
Clusters - Refrigeração
20
Top 500 (http://www.top500.org)
Junho/2012
GPGPUs
21
Top 500 - Brasil
22
Clusters
23
Clusters
24
Grids
25
Grids
União voluntária
26
Grids
27
Grids
Federação
EELA e EELA-2, E-science grid facility for Europe and Latin
America!
www.eu-eela.eu
28
Terminologia
Processo
Thread
Paralelismo
Concorrência
Distribuição
Multiprocessamento
Multiprogramação
Algoritmo distribuído
Sistema distribuído
29
Definições
Processo
“Um programa em execução” _ A. S. Tanenbaum.
“A entidade que pode ter sua execução atribuída a um
processador” _ W. Stallings.
30
Processo
nome
PID registradores
gerais
owner (UID)
prioridade de
execução registrador PC
data/ hora
de criação Contexto de Contexto de
Software Hardware
tempo de registrador SP
processador
quotas
Programa registrador
privilégios de status
Espaço de
Endereçamento
endereços de memória
principal alocados
31
Criação de Processos
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
retoma a pid_t pid;
pai (pid > 0) execução pid = fork();
wait()
if (pid < 0) { //erro
fork() fprintf(stderr, “Fork falhou!\n”);
filho (pid ==0) return 1;
}
exec() exit() else if (pid == 0) { //processo filho
execlp(“/bin/ls”, “ls”, NULL);
}
else { //processo pai
wait(NULL);
printf(“Filho terminou!\n”);
}
return 0;
}
32
Definições
Threads
Linhas de execução, também chamadas lightweight processes.
Processos leves que compartilham espaço de endereçamento de
memória.
33
Multi-thread
Espaço de
endereçamento
34
Com mais detalhes...
código dados arquivos ...
registradores registradores registradores
35
APIs de Threads
Pthreads (POSIX Threads)
Win32
Java
OpenMP
Intel TBB (Thread Building Blocks)
36
Definições
Paralelismo
Designa situação em que coisas acontecem ao mesmo tempo.
Concorrência
Designa situação em que há competição por recursos, indicando
potencial paralelismo.
Havendo recursos suficientes, haverá paralelismo.
37
Definições
Distribuição (vs Centralização)
Designa descentralização do controle (da administração dos
recursos por parte dos processos).
Distribuição (Geográfica)
Pode existir sob controle hierarquizado ou mesmo centralizado.
38
Definições
Multiprocessamento
Vários processos (threads) executando em paralelo.
Pressupõe a disponibilidade de mais de um processador
(núcleo).
Multiprogramação"
Vários programas compartilhando a mesma máquina.
Conceito ligado aos de compartilhamento de tempo
(time-sharing), suspensão de execução e concorrência.
39
Definições
Algoritmo distribuído
Envolve elementos cooperando através de troca de informações,
sem uma orquestração centralizada.
O código de cada elemento pode ser o mesmo, ou podem
existir diferenças.
Sistema distribuído
“Uma coleção de computadores independentes que aparece para
os usuários do sistema que os rege como um único computador
(entidade)” A. S. Tanembaum. "
40
Dualidades
No mundo real
Bem - Mal
Matéria - Energia
Yin -Yang
Trabalho - Lazer
Na Filosofia
“Informação é diferença que faz diferença” G. Bateson. Steps to
an Ecology of Mind, Chicago: University of Chicago Press, 2000.
Na Computação (digital)
O BIT – 0 ou 1
41
Dualidades
Ainda na Computação
Hardware - Software
Real -Virtual
Sequencial - Paralelo
Centralizado - Distribuído
Memória - Processador
Dado - Processamento
Mono - Multi
Mensagem - Passo (na rede)
Comunicação - Execução
Síncrono - Assíncrono
42