Вы находитесь на странице: 1из 42

Arquiteturas Avançadas de

Computadores
Aula 1: Motivação e Conceitos Básicos

Professor: Leandro Marzulo


Objetivos do Curso
 Apresentar técnicas e conceitos usados no desenvolvimento
de processadores modernos
 Paralelismo em nível de instrução (ILP)
 Pipelining
 Branch prediction
 Execução de instruções fora-de-ordem (Tomasulo)
 Superescalares
 Paralelismo em nível de threads (TLP)
 Multiprocessadores
 Protocolos de coerência de cache
 APIs de programação paralela
 Entre outros...

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

 4ª Edição somente em Inglês


Avaliação
 2 Provas + reposição
 Reposição fechada (só quem faltar pode fazer)

 Trabalhos Práticos (em grupos de ATÉ 5 alunos)

 Listas de Exercícios

 Entrega pelo site

 Quem não tiver presença precisa passar direto ou será reprovado


por faltas (não pode fazer PF)
 Média 7!!!

5
Lei de Moore
 “A densidade de transistores nos circuitos integrados dobra a
cada 2 anos.”

“Moore’s Law: Raising the Bar” (Intel Corporation 2005)

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)

 Grades computacionais (grids)


 Distanciamento geográfico (Internet)

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

 Grade Computacional (Grid computing) – analogia com a


malha elétrica: usuários podem ceder ou consumir
ʻenergiaʼ computacional

25
Grids

 União voluntária

 SETI@home (Search for ET Intelligence)


 PS3grid/GPUgrid

26
Grids

 Tarifação: cloud computing

 Amazon Elastic Compute Cloud (Amazon EC2)


 Não somente infraestrutura (IaaS), como também
software (SaaS) e plataformas (PaaS)

27
Grids
 Federação
 EELA e EELA-2, E-science grid facility for Europe and Latin
America!
www.eu-eela.eu

 PlanetLab, Global, consortium acadêmico e industrial (Intel,


Google, HP, AT&T, France Telecom etc) norte-americano
(Berkeley, Princeton e Washington gerem o consortium)
www.planet-lab.org

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

Contexto Contexto Contexto


de hardware de hardware de hardware
Contexto de
software

Thread 1 Thread 2 Thread 3

Espaço de
endereçamento

34
Com mais detalhes...
código dados arquivos ...
registradores registradores registradores

pilha pilha pilha

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

Вам также может понравиться