Você está na página 1de 39

PARALELISMO

BRUNO DE MENEZES MONCAYO RA: 101276


JOS EUNI MAGNO JNIOR RA: 102706
LUCAS SARAIVA CARVALHO DE SOUSA RA: 104206
MARCELO DA SILVA NETO RA: 104685
MARCOS VINCIUS RUBIDO SAUDA RA: 101397

SETEMBRO/2014

SETEMBRO / 2014
BRUNO DE MENEZES MONCAYO RA: 101276
JOS EUNI MAGNO JNIOR RA: 102706
LUCAS SARAIVA CARVALHO DE SOUSA RA: 104206
MARCELO DA SILVA NETO RA: 104685
MARCOS VINCIUS RUBIDO SAUDA RA: 101397

Trabalho apresentado universidade Santa


Ceclia no curso de Engenharia de
Computao, como parte da disciplina de
Arquitetura de Computadores, sob
orientao do Prof. Claudio Lus Magalhes
Fernandes.

SUMRIO
1. INTRODUO ............................................................................................... 4
1.1 TAXONOMIA DE FLYNN ............................................................................. 4
2. Lei de Amdahl ............................................................................................... 7
3. SMP ............................................................................................................... 8
3.1 Exemplos de sistemas SMP...................................................................... 9
3.2 Tempo compartilhado ou barramento comum ........................................ 10
3.2.1 Coerncia de Cache ......................................................................... 11
3.3 Memria com mltiplas portas ................................................................ 13
3.4 Unidade de Controle Central ................................................................... 14
4. Acesso no-uniforme memria (NUMA) ................................................ 14
4.1 Motivao ................................................................................................ 16
4.2 Organizao ............................................................................................ 16
4.3 Organizao CC-NUMA .......................................................................... 18
5. CARACTERSTICAS DOS CHIPSETS PARA ATENDER ARQUITETURAS
MULTIPROCESSADAS ................................................................................... 20
5.1 Ponte Norte do Chipset Intel E8500 ..................................................... 21
5.1.1 Suporte do barramento frontal .......................................................... 22
5.1.2 Independent Memory Interface ......................................................... 22
5.1.3 Interfaces I/O .................................................................................... 22
5.2 XMB (eXternal Memory Bridge) do Chipset Intel E8500....................... 23
5.3 DDR Memory Support ............................................................................. 23
5.4 IMI Support ............................................................................................. 23
6. CLUSTERS .................................................................................................. 24
6.1 Introduo ............................................................................................... 24
6.2 O que Cluster? ..................................................................................... 24
6.3 Tipos de Clusters .................................................................................... 25
6.3.1 Cluster de Alto Desempenho (High Performance Computing Cluster)
................................................................................................................... 26
6.3.2 Cluster de Alta Disponibilidade (High Availability Computing Cluster)
................................................................................................................... 26
6.3.3 Cluster para Balanceamento de Carga (Load Balancing) ................. 27
6.4 Combinao de tipos de clusters ............................................................ 28
6.4 Funcionamento bsico dos clusters ........................................................ 28
6.5 Cluster Beowulf ....................................................................................... 30
2

6.6 Algumas solues de sistemas para clusters ......................................... 32


6.6.1 MOSIX .............................................................................................. 33
6.6.2 OpenSSI ........................................................................................... 33
6.6.3 Kerrighed .......................................................................................... 34
6.7 Vantagens e desvantagens dos clusters ................................................. 34
6.8 Concluindo .............................................................................................. 36
7. CONSIDERAES FINAIS ......................................................................... 37
8. REFERNCIAS BIBLIOGRFICAS ............................................................ 38

1. INTRODUO
Em 1965 o ento presidente da Intel, Gordon E. Moore escreveu um
artigo para a revista cientfica Eletronic Maganize, no qual afirmou que a
quantidade de transistores em um chip dobraria a cada 18 meses, baseado nos
custos de produo. De fato sua previso estava correta e se espera que
continue at pelo menos 2015. A esta afirmao deu-se o nome de Lei de
Moore.
Aumentar o desempenho de sistemas computacionais uma busca
constante e natural das empresas, afinal de contas, nosso estilo de vida exige
processos cada vez mais rpidos, realizao de tarefas simultneas, e
conexes sncronas com diferentes sistemas. Neste ponto a Lei de Moore foi
essencialmente importante, pois os fabricantes passaram a adota-la como uma
espcie de meta. Mesmo que a quantidade de transistores em um chip no
aumentasse naturalmente, as empresas buscariam dobrar este valor para
obter processadores mais rpidos em um curto espao de tempo.
At 2004 a principal preocupao era aumentar a quantidade de
transistores em um processador, aumentando assim sua frequncia de trabalho
segundo a Lei de Moore. Porm, devido s limitaes fsicas que previnem o
aumento da frequncia, a computao paralela (ou paralelismo) passou a
ganhar fora, e hoje o principal paradigma das arquiteturas de computadores.
A computao paralela consiste em utilizar vrias mquinas (clusters,
processadores, ncleos ou threads) simultaneamente para realizar uma mesma
tarefa, partindo do princpio que a mesma pode ser dividida em tarefas
menores (executadas em paralelo). O paralelismo pode ser executado no bit,
na instruo, no dado ou na tarefa.

1.1 TAXONOMIA DE FLYNN


Muitos tipos de computadores paralelos j foram propostos e
construdos ao longo dos anos. Portanto, natural perguntar se h alguma
maneira de categoriz-los em uma taxonomia. O esquema de Flynn, por

exemplo, o mais usado, e mesmo este , na melhoras das hipteses, uma


aproximao muito grosseira.
A classificao de Flynn baseada em dois conceitos - fluxos de
instrues e fluxos de dados. Um fluxo de instrues corresponde a um
contador de programa. Um sistema com n CPUs tem n contadores de
programa e, portanto, n fluxos de instrues.
O fluxo de dados consiste em um conjunto de operandos.
Os fluxos de instrues e de dados so, at certo ponto, independentes,
portanto existem quatro combinaes, como relacionadas na tabela abaixo.

Uma

taxonomia

de

arquiteturas

com

processadores

paralelos.

nica instruo, nico dado (SISD - single instruction, single


data): um nico processador executa uma nica sequncia de instrues,
usando dados armazenados em uma nica memria. Um sistema
uniprocessado pertence a essa categoria.
nica instruo, mltiplos dados (SIMD - single instruction,
multiple data): uma nica instruo de mquina controla a execuo
simultnea de um certo nmero de elementos de processamento, em
passos de execuo. Cada elemento de processamento tem uma memria
de dados a ele associada, de modo que cada instruo executada sobre

um conjunto de dados diferente em cada processador. Os processadores


vetoriais e matriciais pertencem a essa categoria.
Mltiplas instrues, nico dado (MISD - multiple instruction,
single data): uma sequncia de dados transmitida para um conjunto de
processadores, cada um dos quais executa uma sequncia de instrues
diferente. Essa estrutura nunca foi implementada.
Mltiplas instrues, mltiplos dados (MIMD - multiple instruction,
multiple data): um conjunto de processadores executa simultaneamente
sequncias diferentes de instrues, sobre conjuntos de dados distintos. Os
SMPs, clusters e sistemas NUMA pertencem a essa categoria.

A arquitetura MIMD diz respeito aos sistemas realmente paralelos, em


que vrios fluxos de instrues operam sobre vrios fluxos de instrues. Nele,
h mltiplas unidade de controle, cada qual alimentando sua prpria unidade
de processamento, comum a sequencias de instrues diferentes. Divide-se
em memria compartilha e memria distribuda.

UC = Unidade de controle; SI = Sequencia de Instrues; UP = Unidade


de Processamento; SD = Sequncia de Dados; UM = unidade de memria

2. Lei de Amdahl
A lei de Amdahl diz respeito ao aumento de velocidade de uma tarefa
com a utilizao de paralelismo em relao utilizao de apenas um
processador. Ela afirma que uma pequena poro do programa que no pode
ser paralelizada limitar o aumento de velocidade geral disponvel com o
paralelismo. Ou seja, dobrar a quantidade de elementos de processamento no
diminui pela metade o tempo de execuo. dada por:

Em que S o aumento de velocidade do programa e P a frao


paralelizvel. O ganho depende de dois fatores:

Frao de melhoria (Fm): frao de tempo da computao que

pode tirar proveito da melhoria feita. Esta frao sempre menor ou igual a 1.

Ganho de execuo (Ge): ganho obtido com a melhoria na parte

especfica modificada do sistema. Este ganho sempre maior que 1.

A figura acima ilustra o aumento e o tempo de execuo, tanto ideais


quanto reais. A curva azul representa o aumento ideal de velocidade, o qual
deveria aumentar linearmente com a quantidade de processadores. A curva
rosa mostra o aumento real de velocidade, que se torna praticamente
constante a partir de certo ponto. A curva amarela mostra o tempo de execuo
ideal, que deveria tender a zero com o aumento de processadores. J a curva
vermelha mostra o tempo de execuo real, que nunca chegar a zero.

3. SMP
Multiprocessamento simtrico (Symmetric MultiProcessing, em ingls)
faz parte da arquitetura MIMD de memria compartilhada. Consiste em uma
srie de processadores similares conectados entre si e memria por um
barramento e sob controle de um nico sistema operacional. Todos os

processadores compartilham o acesso aos mesmos dispositivos de entrada e


sada e memria.
O sistema operacional se encarrega de realizar a interao entre os
processadores e as aplicaes do sistema, deixando a existncia de mltiplos
processadores transparente para os usurios, pois o prprio sistema sincroniza
os processos com os processadores (por exemplo, Windows e Linux).

A figura acima ilustra o diagrama bsico de um sistema SMP, no qual


vrios processadores compartilham a mesma memria principal e dispositivos
de E/S, e esto conectados por uma rede de barramentos.
Devido ao fato dos processadores terem capacidades semelhantes,
todos podem desempenhar as mesmas funes. Exemplo: em caso de falha de
um processador, o sistema operacional transfere a tarefa para outro, evitando
travamentos ou queda de desempenho.

3.1 Exemplos de sistemas SMP

SMP Sun Enterprise Server

IBM System/360 Model 65

IBM System/360 Model 67

VAX 8820/8830/8840

A organizao de um sistema multiprocessado pode ser de vrias


formas, mas as caractersticas mais comuns so:

Tempo compartilhado ou barramento comum

Memria com mltiplas portas

Unidade de controle central

3.2 Tempo compartilhado ou barramento comum


O tempo de acesso tomado por um processador para o acesso a
qualquer posio de memria o mesmo, e todos os processadores
experimentam o mesmo tempo de acesso memria.
Vantagens em relao arquitetura uniprocessador:

Desempenho

Disponibilidade

Crescimento incremental

Personalizao do fornecimento

Uma de suas desvantagens o fato de que o acesso memria


principal feito por um nico barramento, criando um gargalo. Como o acesso
serial, o sistema fica limitado a passagem de apenas uma instruo de cada
10

vez pelo barramento, abrindo uma lacuna de tempo entre uma instruo e
outra. Esta caracterstica chama-se barramento de tempo compartilhado, o
que limita o nmero de processadores em 2 ou 3.
Uma das alternativas para esse problema o uso de memrias cache
por cada processador, o que diminui e latncia entre um acesso e outro
memria principal e ajudam tambm a minimizar o trfego no barramento.
O uso de memrias cache melhora o trfego no barramento e possibilita
o uso de mais processadores, porm torna obrigatrio o uso de algoritmos de
coerncia de cache.

3.2.1 Coerncia de Cache


Este problema ocorre quando a imagem contida numa cache alterada,
podendo invalidar esta mesma copia nas outras caches nos processadores. A
maneira mais usada para corrigir este problema o Protocolo MESI.
H dois tipos de solues para este problema: uma por software e uma
por hardware.
Soluo por software: neste caso o prprio sistema operacional e o
compilador solucionam este problema trabalhando de uma forma que no haja
interao com o hardware, porm com isso h uma perda de eficincia das
caches. O compilador analisa dados que possam causar problemas de
coerncia, caso encontre o compilador os marca, assim, tanto sistema como
hardware evitam utilizar estes arquivos em cache.

11

Outra forma de evitar problemas de coerncia evitar que as caches


dos

processadores

utilizem

determinadas

variveis.

Estas

variveis

compartilhadas podem ser de uso exclusivo ou apenas para leitura. O


problema ocorre quando um processador altera esta varivel e outro
processador tenta us-la j com os dados modificados. Vrias tcnicas j foram
criadas para resolver este problema, algumas delas so: Lilja e Stenstrom.
Soluo por hardware: neste caso o uso das caches bem mais
dinmico. O erro agora s tratado quando ocorre. H duas maneiras de
resolver este problema: Protocolos de diretrio e protocolos de monitoramento
(Protocolo Snoopy).

Protocolos de diretrio
Neste caso h um diretrio na memria para controlar o fluxo de dados
entre as caches e a memoria. Este controlador administra os pedidos da cache
para acessar a memoria, sempre deixando os dados atualizados. Quando um
processador quer modificar alguma linha ele pede ao controlador central, este
por sua vez trava esta linha para apenas este processador e avisa aos outros
invalidando a cache desta linha nos outros processadores. Caso tenha
tentativa de acesso a esta linha quando esta sendo modificada, o acesso ser
barrado e s voltar ao estado normal quando o processador avisar o
controlador central que a atualizao acabou. Assim que o processo termina o
controlador avisa os processadores restantes.

Protocolo de monitoramento
Neste tipo de protocolo os controladores de cache so os responsveis
pelo controle e atualizao da informao. Caso uma linha for alterada todos os
outros controladores de cache recebem o aviso via Broadcast. H 2 tipos de
escritas no uso desde protocolo: Escrita com invalidao e Escrita com
atualizao.
12

No protocolo de escrita com invalidao existe apenas um escritor,


contudo h vrios leitores. Quando uma cache vai alterar uma linha ela envia
uma mensagem para as outras caches invalidando a cpia desta linha que ser
alterada. Assim o processador tem acesso exclusivo quela informao, at
que outro processador faa o mesmo com esta ou demais linhas.
Ao contrrio do Protocolo de escrita com invalidao, no Protocolo de
escrita com atualizao pode haver inmeros leitores e escritores. Quando um
processador quer atualizar alguma palavra, ele envia esta mesma palavra para
outras caches para que tambm seja atualizada.

Protocolo MESI
No protocolo de escrita com invalidao cada palavra alterada ganha 2
bits no seu rtulo da cache, este bits a mais definem se a linha foi modificada,
exclusiva, compartilhada ou invlida (no ingls: Modified, Exclusive, Shared e
Invalid) e destas palavras surge o nome MESI.
Neste protocolo existe quatro estados que a linha se encontra:
1. Modificada: A linha foi alterada na cache, j diferente da memria
principal e est apenas na prpria cache.
2. Exclusiva: Nenhuma outra cache possui esta linha, ainda igual a
da memria principal.
3. Compartilhada: Esta linha est igual a da memria principal e est
presente em outras caches.
4. Invlida: A linha no tem mais dado uteis.

3.3 Memria com mltiplas portas


uma abordagem mais complexa para a memria que a de barramento
compartilhada, em que cada processador pode acessar a memria e mdulos
de I/O independentemente e de forma separada.

13

Os acessos a cada porta so semelhantes ao sistema uniprocessado,


no demandando muitas alteraes no projeto da CPU, mas sim no projeto de
memria e cada processador tem um caminho dedicado para a memria.
.

3.4 Unidade de Controle Central


Esta unidade administra o fluxo de dados para mdulos independentes
como: processadores, memrias, interfaces de E/S. Este pode armazenar por
um tempo requisies e funes, passar mensagens de controle e atualizar
outros processadores quando uma memria cache alterada.
A unidade de controle central ainda comanda a configurao lgica de
vrios processadores, sendo assim, interfaces de E/S e memria mantm suas
lgicas inalteradas. Com isso o barramento ganha mais flexibilidade e
simplicidade, porm perde em desempenho por causa do gargalho causado
pela unidade.
Apesar de ter sido bastante comum em sistemas com grande porte com
mltiplos processadores, hoje em dia no muito utilizada.

4. Acesso no-uniforme memria (NUMA)


Em termos de produtos comerciais, as duas abordagens mais comuns
para prover sistemas multiprocessadores para suportar aplicaes so os
14

clusters e os SMPs. Outra abordagem, conhecida como acesso no-uniforme


memria (NUMA), tem sido objeto de pesquisa h alguns anos e,
recentemente, alguns produtos comerciais NUMA foram lanados.
Antes de prosseguir, devemos definir alguns termos frequentemente
encontrados na literatura referente a sistemas NUMA.
Acesso uniforme memria (UMA): todos os processadores tm acesso
a todas as partes da memria por um processador o mesmo para todas
partes da memria principal, via operaes de carga e armazenamento. O
tempo de acesso memria por um processador o mesmo para todas as
regies da memria. Os tempos de acesso experimentados por diferentes
processadores tambm so iguais.
Acesso no-uniforme memria (NUMA): todos os processadores tm
acesso a todas as partes da memria principal, via operaes de carga e
armazenamento. O tempo de acesso memria por m processador difere
conforme a regio de memria que est sendo usada. Isso vale para todos os
processadores; entretanto, as regies de memria para as quais o acesso
mais lento ou mais rpido so diferentes para diferentes processadores.
NUMA com coerncia de cache (CC-NUMA): um sistema NUMA no qual
mantida coerncia de cache entre as memrias cache dos vrios
processadores.
Um sistema NUMA sem coerncia de cache mais ou menos
equivalente a um cluster. Os produtos comerciais que tm recebido maior
ateno recentemente so sistemas CC-NUMA, bastante diferentes dos
clusters e SMPs. Usualmente, mas infelizmente nem sempre, tais sistemas so
de fato relatados na literatura comercial como sistemas CC-NUMA. Esta seo
aborda esse tipo de sistema.

15

4.1 Motivao
Em um sistema SMP, existe um limite prtico para o nmero de processadores
que podem ser usados. Um esquema de cache efetivo reduz o trfego no barramento
entre qualquer processador e a memria principal. medida que aumenta o nmero
de processadores, tambm aumenta o trfego no barramento. Alm disso, o
barramento usado para a troca de sinais do protocolo de coerncia de cache,
aumentando ainda mais o trfego no barramento. A partir de determinado ponto, o
barramento passa a constituir um gargalo de desempenho do sistema. A degradao
de desempenho parece limitar o nmero de processadores de uma configurao SMP
a algum valor entre 16 e 64 processadores. Alm desse nmero, o desempenho
degrada substancialmente.
A limitao do nmero de processadores em um SMP uma das principais
motivaes para o desenvolvimento de sistemas cluster. Entretanto, em um cluster,
cada n tem sua prpria memria principal privativa; as aplicaes no enxergam uma
grande memria global. De fato, a coerncia de dados mantida por software e no
por hardware. Essa granularidade da memria afeta o desempenho e, para obter
maior desempenho, a aplicao deve ser adaptada para esse ambiente. Uma
abordagem para obter multiprocessamento em larga escala, mantendo o estilo SMP,
a abordagem NUMA.
O objetivo de um sistema NUMA manter, de forma transparente, uma viso
de uma grande e nica rea de memria no sistema, permitindo, ao mesmo tempo,
vrios ns multiprocessadores, cada qual com seu prprio barramento ou outro
sistema interno de interconexo.

4.2 Organizao
A Figura abaixo mostra uma organizao CC-NUMA tpica. Existem vrios ns
independentes, cada um dos quais sendo, de fato, uma organizao SMP. Portanto,
cada n contm diverses processadores, cada qual com suas prprias caches L1 e
L2, alm da memria principal. Um n constitui o bloco bsico da organizao CCNUMA como um todo. Os ns so conectados por meio de algum sistema de
comunicao, que pode ser um mecanismo de comutao, um anel ou algum tipo de
rede.

16

Cada n do sistema CC-NUMA inclui alguma memria principal. Entretanto, do


ponto de vista dos processadores, existe uma nica rea de memria enderevel,
com cada posio de memria tendo um endereo nico em todo o sistema. Quando
um processador inicia um acesso memria, se a posio de memria requerida no
est presente na cache do processador, a cache L2 inicia uma operao de busca. Se
a linha requerida est na poro local da memria principal, ela obtida por meio do
barramento local. Se a linha est em uma poro remota da memria principal, ento
automaticamente enviada uma requisio para buscar a linha por meio da rede de
interconexo e entregue ao barramento local, que ento a transfere para a cache
requisitante conectada a ele. Toda essa atividade feita de forma automtica e
transparente para o processador e para sua cache.
Nessa configurao, a coerncia de cache uma preocupao fundamental.
Embora as implementaes existentes difiram em alguns detalhes, podemos dizer, em
termos gerais, que cada n deve manter uma espcie de diretrio, que indica a
localizao das vrias pores da memria, assim como a informao de estado das
caches. Para ver como esse esquema funciona, descrevemos um exemplo. Suponha
que o processador 3 do n 2 (P2-3) requisite acesso posio de memria 798, que
est localizada na memria do n 1. Ocorrer a seguinte sequncia de eventos:

17

4.3 Organizao CC-NUMA


1.

P2-3 envia uma requisio de acesso posio 798, por

meio do barramento de monitorao do n 2.


2.

O diretrio do n 2 detecta a requisio e verifica que essa

posio est localizada no n 1.


3.

O diretrio do n 2 envia uma requisio ao n 1, que

recebida pelo diretrio do n 1.


4.

O diretrio do n 1, agindo como substituto de P2-3,

requisita o contedo da posio de memria 798, como se ele fosse um


processador.
5.

A memria principal do n 1 responde, colocando o dado

requisitado no barramento.
6.

O diretrio do n 1 obtm o dado do barramento.

7.

O valor transferido de volta para o diretrio do n 2.

18

8.

O diretrio do n 2 coloca o dado no barramento do n 2,

agindo como substituto da memria principal que armazenava o dado


originalmente.
9.

O valor obtido e colocado na cache de P2-3, e depois

despachado para P2-3.


A sequncia precedente explica como o dado lido de uma memria
remota, usando mecanismos de hardware que tornam a transao transparente
para o processador. No topo desses mecanismos, requerido algum protocolo
de coerncia de cache. Os vrios sistemas existentes diferem em como isso
feito exatamente. Faremos aqui apenas algumas observaes a esse respeito.
Primeiramente, como parte da sequncia precedente, o diretrio do n 1
mantm registro sobre algumas caches remotas que eventualmente tenham
uma cpia da linha que contm a posio de memria 798. Deve haver, ento,
algum protocolo cooperativo para tratar operaes de escrita. Por exemplo, se
feita uma modificao em uma cache, esse fato pode ser difundido para
todas as demais caches. O diretrio de cada n que recebesse essa
informao poderia, ento, determinar se sua cache local contm uma cpia da
linha referenciada e, em caso afirmativo, retir-la da cache. Se a posio
referenciada est localizada na memria principal de um n que recebeu a
notificao de difuso, ento o diretrio desse n deve manter uma entrada
indicando que essa linha da memria invlida, permanecendo como tal at
que ocorra uma escrita da linha de volta (write-back) na memria. Se outro
processador (local ou remoto) requisitar a linha invlida, ento, o diretrio local
deve forar uma escrita da linha de volta na memria, antes de fornecer o dado
requisitado.

4.4 Vantagens e desvantagens de sistemas NUMA


A principal vantagem de um sistema CC-NUMA que ele pode
disponibilizar desempenho efetivo em nveis de paralelismo mais altos que o
fornecido por sistemas SMP, sem requerer mudanas substanciais no software.
Com mltiplos ns NUMA, o trfego no barramento em qualquer n individual
limitado demanda que esse barramento capaz de tratar. Porm, se houver
grande nmero de acessos a posies de memria localizadas em ns
19

remotos, o desempenho cair substancialmente. Entretanto, existem razes


para acreditar que essa

queda de desempenho

pode ser evitada.

Primeiramente, o uso de caches L1 e L2 projetado para minimizar todos os


acessos memria principal, inclusive acessos remotos. Se a maioria dos
programas tiver boa localidade temporal, o nmero de acessos remotos no
dever ser excessivo. Em segundo lugar, se os programas tiverem boa
localidade espacial, e se usada memria virtual, ento os dados requeridos
por uma aplicao devero residir em um nmero limitado de pginas usadas
frequentemente, que podem ser inicialmente carregadas na memria local do
processador que est executando a aplicao.
Finalmente, o esquema de memria virtual pode ser aprimorado,
incluindo no sistema operacional um mecanismo de migrao de pginas, que
seja capaz de mover uma pgina de memria virtual para um n onde ela
usada frequentemente.
Existem tambm algumas desvantagens na abordagem CC-NUMA. Duas delas
em particular so discutidas. A primeira que um sistema CC-NUMA no se
apresenta de forma transparente como um SMP; so requeridas modificaes
de software para migrar sistemas operacionais e aplicaes de um sistema
SMP para um sistema CC-NUMA. Tais modificaes incluem alocao de
pginas,

como

mencionado

anteriormente,

alocao

de

processos e

balanceamento de carga pelo sistema operacional. Uma segunda preocupao


a disponibilidade. Essa uma questo bastante complexa e depende da
exata implementao do sistema CC-NUMA.

5. CARACTERSTICAS DOS CHIPSETS PARA


ATENDER ARQUITETURAS MULTIPROCESSADAS
Usemos como exemplo o Chipset Intel E8500, que foi feito para
multiprocessamento e para aplicaes em servidores. Que esteja claro que se
trata da tecnologia de um produto lanado em maro de 2005, ento alguns
recursos podem soar obsoletos hoje em dia.
20

Sistema do chipset Intel E8500. Diagrama de blocos

5.1 Ponte Norte do Chipset Intel E8500


A Ponte Norte o centro da arquitetura do Chipset E8500 (ver acima).
Ele proporciona a interconexo para:

Multiprocessador Intel Xeon de 64-bit da via dois barramentos

frontais de 667 MHz otimizados para aplicaes em servidores

XMBs (eXternal Memory Bridges) via quatro IMIs (Independent

Memory Interfaces)

Componentes I/O via uma ligao PCI Express x4 e trs x8, alm

de ICH5 (I/O Controller Hub 5) via HI 1.5

21

5.1.1 Suporte do barramento frontal

suporta at quatro Multiprocessadores Xeon de 64-bit da Intel

Opera a 667 MHz

Mantm coerncia em ambos os barramentos

Barramento de dados 64-bit QDR (taxa de transferncia

quadruplicada) fornecendo uma largura de banda de 5.3 GB/s por barramento

5.1.2 Independent Memory Interface

Quatro portas IMI, cada uma com largura de banda para entrada

(read) de at 5.33 GB/s e para sada (write) de 2.67 GB/s simultaneamente

Suporte de endereamento 40-bit fornece um terabyte (240 bytes)

de capacidade de endereamento

5.1.3 Interfaces I/O


O chipset Intel E8500 depende primariamente do PCI Express para
proporcionar a interligao entre a Ponte Norte e o subsistema I/O. O
subsistema I/O se baseia em uma ligao PCI Express x4, trs ligaes PCI
Express x8 (cada qual pode ser dividida em duas ligaes x4), e uma ligao
HI 1.5.

5.1.4 PCI Express

Uma ligao x4 e trs ligaes x8. Cada ligao x8 pode ser

configurada como duas ligaes x4, deixando um total de sete ligaes x4.

1 GB/s de largura de banda em cada direo para ligaes x4 e 2

GB/s para ligaes x8.


22

Todas as portas suportam Hot-Plug

5.1.5 HI 1.5

8-bit de largura, taxa de transferncia quadruplicada, 66 MHz de

clock

266 MB/s de largura de banda

Interconexo I/O legada ao ICH5

5.2 XMB (eXternal Memory Bridge) do Chipset Intel E8500


O XMB do chipset Intel E8500 um controlador de memria inteligente
que conecta as interfaces IMI e DDR entre si. Cada XMB conectado a uma
das quarto interfaces IMI da Ponte Norte.
O chipset Intel E8500 pode operar com uma a quarto XMBs.

5.3 DDR Memory Support

Duplos canais de memria DDR operando em sincronia com

quarto slots DIMM por canal

DIMMs devem estar pareadas, e DIMMs em um par devem ser

idnticas

Suporte a DDR a 266 MHz ou 333MHz e DDR2 a 400 MHz

Suporte a tecnologias 256-Mbit, 512-Mbit, e 1-Gbit

5.4 IMI Support

High speed, point-to-point, differential, recovered clock

interconnect.

largura de banda para sada (write, para o XMB) de at 2.67 GB/s

outbound (to the XMB) e largura de banda para entrada (read, a partir do
XMB) de at 5.33 GB/s simutaneamente.

Suporte para Hot-Plug.

23

6. CLUSTERS
6.1 Introduo
Quando o assunto computao de alto desempenho, no difcil
pensarmos em servidores sofisticados e caros respondendo por este trabalho.
No entanto, possvel obter resultados to bons quanto ou superiores a partir
de alguma soluo de cluster - uma tecnologia capaz de fazer computadores
mais simples trabalharem em conjunto, como se formassem uma mquina s.

6.2 O que Cluster?


Cluster (ou clustering) o nome dado a um sistema que relaciona dois
ou mais computadores para que estes trabalhem de maneira conjunta no intuito
de processar uma tarefa. Estas mquinas dividem entre si as atividades de
processamento e executam este trabalho de maneira simultnea.
Cada

computador

de n (ou node).

que

Teoricamente,

faz
no

parte

do

limite

cluster

recebe

mximo

de

o
ns,

nome
mas

independentemente da quantidade de mquinas que o compe, o cluster deve


ser "transparente", ou seja, ser visto pelo usurio ou por outro sistema que
necessita deste processamento como um nico computador.
Os ns do cluster devem ser interconectados, preferencialmente, por
uma tecnologia de rede conhecida, para fins de manuteno e controle de
custos, como a Ethernet. extremamente importante que o padro adotado
permita a incluso ou a retirada de ns com o cluster em funcionamento, do
contrrio, o trabalho de remoo e substituio de um computador que
apresenta problemas, por exemplo, faria a aplicao como um todo parar.
A computao em cluster se mostra muitas vezes como uma soluo
vivel porque os ns podem at mesmo ser compostos por computadores
simples, como PCs de desempenho mediano. Juntos, eles configuram um
sistema de processamento com capacidade suficiente para dar conta de
24

determinadas aplicaes que, se fossem atendidas por supercomputadores ou


servidores sofisticados, exigiriam investimentos muito maiores.

Um antigo cluster montado com desktops

No necessrio haver um conjunto de hardware exatamente igual em


cada n. Por outro lado, importante que todas as mquinas utilizem o mesmo
sistema operacional, de forma a garantir que o software que controla o cluster
consiga gerenciar todos os computadores que o integram.

6.3 Tipos de Clusters


H uma enormidade de aplicaes que s podem ser atendidas
satisfatoriamente
meteorolgicos,

com

computao

ferramentas

de

de

alto

mapeamento

desempenho:
gentico,

sistemas

simuladores

geotrmicos, programas de renderizao de imagens tridimencionais, entre


tantos outros. Com o advento da computao em nuvens, este cenrio se torna
ainda mais amplo: pode-se ter uma infraestrutura tecnolgica respondendo a
vrios clientes simultaneamente de maneira remota, por exemplo.

25

Em todos estes casos e em qualquer outro tipo de aplicao crtica - que


no pode parar de funcionar ou no pode perder dados (os sistemas bancrios,
por exemplo), O cluster pode se mostrar como uma soluo vivel, desde que
o tipo mais adequado seja escolhido.
H vrios tipos de cluster, mas os principais so: cluster de alto
desempenho, cluster de alta disponibilidade e cluster de balanceamento de
carga.

6.3.1 Cluster de Alto Desempenho (High Performance Computing


Cluster)
Clusters de alto desempenho so direcionados a aplicaes bastante
exigentes no que diz respeito ao processamento. Sistemas utilizados em
pesquisas cientficas, por exemplo, podem se beneficiar deste tipo de cluster
por necessitarem analisar uma grande variedade de dados rapidamente e
realizar clculos bastante complexos.
O foco deste tipo o de permitir que o processamento direcionado
aplicao fornea resultados satisfatrios em tempo hbil, mesmo que haja
centenas de milhares de gigaflops envolvidos com a tarefa (1 gigaflop
corresponde a 1 bilho de instrues de ponto flutuante executadas por
segundo).

6.3.2 Cluster de Alta Disponibilidade (High Availability Computing


Cluster)
Nos clusters de alta disponibilidade, o foco est em sempre manter a
aplicao em pleno funcionamento: no aceitvel que o sistema pare de
funcionar, mas se isso acontecer, a paralizao deve ser a menor possvel,
como o caso de solues de misso crtica (ambiente tecnolgico construdo
para evitar a paralisao de servios computacionais e a perda de dados
importantes a um negcio) que exigem disponibilidade de, pelo menos,
99,999% do tempo a cada ano, por exemplo.
26

Para atender a esta exigncia, os clusters de alta disponibilidade podem


contar com diversos recursos: ferramentas de monitoramento que identificam
ns defeituosos ou falhas na conexo, replicao (redundncia) de sistemas e
computadores para substituio imediata de mquinas com problemas, uso de
geradores para garantir o funcionamento em caso de queda de energia, entre
outros.
Em determinadas circunstncias, tolervel que o sistema apresente
algum grau de perda de desempenho, especialmente quando esta situao
consequncia de algum esforo para manter a aplicao em atividade.

6.3.3 Cluster para Balanceamento de Carga (Load Balancing)


Em clusters de balanceamento de carga, as tarefas de processamento
so distribudas o mais uniformemente possvel entre os ns. O foco aqui
fazer com que cada computador receba e atenda a uma requisio e no,
necessariamente, que divida uma tarefa com outras mquinas.
Por exemplo um grande site na internet receba por volta de mil visitas
por segundo e que um cluster formado por 20 ns tenha sido desenvolvido
para atender a esta demanda. Como se trata de uma soluo de
balanceamento de carga, estas requisies so distribudas igualmente entre
as 20 mquinas, de forma que cada uma receba e realize, em mdia, 50
atendimentos a cada segundo.
No basta ao cluster de balanceamento de carga ter um mecanismo
meramente capaz de distribuir as requisies, necessrio que este
procedimento seja executado de forma a garantir um "equilbrio" na aplicao.
Para tanto, o mecanismo pode monitorar os ns constantemente para verificar,
por exemplo, qual mquina est lidando com a menor quantidade de tarefas e
direcionar uma nova requisio para esta.
O balanceamento de carga pode ser utilizado em vrios tipos de
aplicaes, mas o seu uso bastante comum na internet, j que solues do
27

tipo tm maior tolerncia ao aumento instantneo do nmero de requisies,


justamente por causa do equilbrio oriundo da distribuio de tarefas.

6.4 Combinao de tipos de clusters


Uma soluo de cluster no precisa se "prender" a apenas um tipo.
Conforme a necessidade, pode-se combinar caractersticas de tipos diferentes
no intuito de atender plenamente aplicao.
Por exemplo, uma loja na internet pode utilizar um cluster de alta
disponibilidade para garantir que suas vendas possam ser realizadas 24 horas
por dia e, ao mesmo tempo, aplicar balanceamento de carga para suportar um
expressivo aumento eventual no nmero de pedidos causados por uma
promoo.

6.4 Funcionamento bsico dos clusters


Para que um cluster seja constitudo, necessrio fazer uso de alguns
elementos bsicos. O primeiro deles so os equipamentos a serem utilizados
como ns.
Para isso, pode-se usar mquinas construdas especificamente para
funcionar como ns. Neste caso, os computadores teriam apenas dispositivos
de hardware imprescindveis ao cluster.

28

Cluster avanado construdo com equipamentos especficos

Mas, tambm possvel utilizar computadores "convencionais", como


desktops para fins domsticos ou para uso em escritrio. Assim, uma
universidade ou uma empresa, por exemplo, pode utilizar mquinas que foram
substitudas por modelos mais recentes para criar um cluster e, eventualmente,
economizar com a aquisio de servidores.
Os ns podem ainda ser no dedicados ou dedicados. No primeiro caso,
cada computador que faz parte do cluster no trabalha exclusivamente nele.
No segundo, o n utilizado somente para este fim, fazendo com que
dispositivos como teclados e monitores sejam dispensveis, se por algum
motivo, for necessrio acessar uma mquina em particular, pode-se faz-lo via
terminal, a partir do n principal, por exemplo.
Outro elemento importante o sistema operacional. Como j informado,
os ns no precisam ser exatamente iguais no que diz respeito ao hardware,
mas essencial que todas os computadores utilizem o mesmo sistema
operacional.
Esta homogeneidade importante para diminuir a complexidade de
configurao e manuteno do sistema, e garantir que os procedimentos
29

rotineiros ao cluster, como monitorizao, distribuio de tarefas e controle de


recursos sejam executados de maneira uniforme. Para reforar estes aspectos,
pode-se at mesmo adotar sistemas operacionais preparados especialmente
para clustering.
Do ponto de vista do software, o cluster conta ainda com o elemento que
faz o papel de middleware: trata-se de um sistema que permite o controle do
cluster em si e, portanto, est intimamente ligado ao sistema operacional. o
middleware que lida, por exemplo, com as bibliotecas que fazem toda a
comunicao do cluster, uma delas o padro MPI (Message Passing
Interface).
Alm de trabalhar com o gerenciamento do cluster, o middleware
oferece uma interface para que um administrador possa configurar o cluster,
ferramentas para manuteno e otimizao, recursos de monitoramento e
assim por diante.
Por padro, o middleware instalado em uma mquina chamada de n
controlador (ou n mestre). O nome deixa claro: trata-se do n principal, que
efetivamente controla o cluster a partir da distribuio de tarefas, do
monitoramento e de procedimentos relacionados.
A comunicao entre os ns, que onde est a delimitao do que
constitui o cluster em si, feita a partir de uma tecnologia de rede local. Os
padres Ethernet (Gigabit Ethernet, Fast Ethernet, etc) so bastante utilizados
justamente por serem mais comuns e, portanto, melhor suportados e menos
custosos. Mas h outras opes viveis, entre elas, o Myrinet e o InfiniBand,
ambos com caractersticas bastante apropriadas para clustering.

6.5 Cluster Beowulf


O Beowulf no , necessariamente, um middleware, como muitos
pensam. Na verdade, este nome faz referncia a um padro de clustering

30

disponibilizado pela NASA (National Aeronautics and Space) em 1994 e


amplamente adotado desde ento.
Originalmente, Beowulf o nome de um poema extenso e bastante
antigo, cujo manuscrito foi encontrado no sculo XI. A obra descreve os atos de
um heri de mesmo nome que se destaca por sua fora descomunal e que,
portanto, enfrenta um perigoso monstro para salvar um reino. A histria serviu
de inspirao para que os pesquisadores Thomas Sterling e Donald Becker, da
NASA, batizassem o projeto de cluster no qual trabalhavam de Beowulf.
Um cluster Beowulf se define, basicamente, pela nfase nas seguintes
caractersticas:

entre os ns, deve haver pelo menos um que atue como mestre

para exercer o controle dos demais. As mquinas mestres so chamadas


de front-end; as demais, de back-end. H a possibilidade de existir mais de
um n no front-end para que cada um realize tarefas especficas, como
monitoramento, por exemplo;

a comunicao entre os ns pode ser feita por redes do tipo

Ethernet, mais comuns e mais baratas;

no necessrio o uso de hardware exigente, nem especfico. A

ideia a de se aproveitar componentes que possam ser encontrados


facilmente. At mesmo PCs considerados obsoletos podem ser utilizados;

o sistema operacional deve ser de cdigo aberto, razo pela qual

o Linux e outras variaes do Unix so bastante utilizados em cluster


Beowulf. O MOSIX, uma opo bastante usada para este fim;

os ns devem se dedicar exclusivamente ao cluster;

deve-se fazer uso de uma biblioteca de comunicao apropriada,

como a PVM (Parallel Virtual Machine) ou a MPI (Message Passing


31

Interface). Ambas so direcionadas troca de mensagens entre os ns,


mas o MPI pode ser considerado mais avanado que o PVM, uma vez que
consegue trabalhar com comunicao para todos os computadores ou para
apenas um determinado grupo.

Esquema bsico de um cluster Beowulf

Com estas caractersticas, pode-se construir um cluster "poderoso" e, ao


mesmo tempo, poupar gastos com equipamentos, licenas de software e
manuteno. O cluster montado por Thomas Sterling e Donald Becker para a
NASA, por exemplo, era composto por 16 PCs com processador Intel 486 DX4
e sistema operacional Linux conectados por uma rede Ethernet de 10 Mb/s.
Esta foi uma soluo consideravelmente mais barata e, possivelmente, menos
complexa que um supercomputador.

6.6 Algumas solues de sistemas para clusters


H uma quantidade razovel de solues para clusters, mas algumas se
sobressaem, especialmente aquelas que se relacionam com Linux e outros
sistemas baseados em Unix.

32

6.6.1 MOSIX
O MOSIX (Multicomputer Operating System for Unix) uma das opes
mais tradicionais quando o assunto clustering. Trata-se, resumidamente, de
um conjunto de softwares que permite a implementao de clusters em
sistemas baseados no Unix, tendo forte nfase em balanceamento de carga e
alto desempenho.
Entre as suas principais caractersticas esto: possibilidade de trabalhar
com ns dedicados e no dedicados; suporte no apenas a CPUs, mas
tambm a GPUs (a partir da verso 2); migrao dinmica de processos (um
n mais potente pode assumir determinada tarefa para evitar sobrecarga em
outro); e possibilidade de remoo e incluso de ns sem interromper o cluster.
Como o MOSIX tambm trabalha com ns no dedicados, possvel
inclusive fazer com que as mquinas de um escritrio passem a trabalhar no
cluster aps o horrio do expediente, por exemplo. Mas, mesmo se houver
usurios utilizando os ns, possvel manter o cluster em funcionamento, j
que as atividades do MOSIX so totalmente "transparentes", ou seja, seu
trabalho no computador no perceptvel.
O MOSIX no uma soluo gratuita. Houve uma verso sua de cdigo
aberto chamada OpenMosix que, infelizmente, foi descontinuada em maro de
2008.

6.6.2 OpenSSI
O OpenSSI uma soluo aberta para clusters focada em ambientes
Linux. O nome tem como base o conceito de SSI (Single System Image), ou
seja, um sistema que considera vrios ns, mas se parece, no ponto de vista
do usurio, apenas como um nico computador.

33

A "viso" de apenas uma nica mquina tambm vlida para os


softwares: este no precisam ser alterados para "enxergar" cada n e assim
rodar no cluster, facilitando a implementao da soluo.
O OpenSSI pode lidar tanto com alto desempenho quanto com alta
disponibilidade, alm de possuir recursos para balanceamento de carga.

6.6.3 Kerrighed
O Kerrighed outra opo SSI aberta para clusters que tem como base
o Linux. Esta soluo se destaca principalmente por fazer uso do conceito
de Distributed Shared Memory (DSM), algo como "Memria Compartilhada
Distribuda", onde a memria de cada n se "soma" a dos demais, como se
formassem um volume nico disposio de todo o cluster.
Esta abordagem oferece vrios benefcios: parte da memria pode ser
disponibilizada para todos os clientes da aplicao; sistemas desenvolvidos
para rodar de maneira centralizada podem ser executados de maneira
distribuda dentro da soluo; o cluster pode se comportar como se fosse uma
mquina com mltiplos processadores; entre outros.

6.7 Vantagens e desvantagens dos clusters

pode-se obter resultados to bons quanto ou at superiores que

um servidor sofisticado a partir de mquinas mais simples e mais baratas


(tima relao custo-benefcio);

no necessrio depender de um nico fornecedor ou prestador

de servio para reposio de componentes;

a configurao de um cluster no costuma ser trivial, mas fazer

um supercomputador funcionar pode ser muito mais trabalhoso e exigir pessoal


especializado;

possvel aumentar a capacidade de um cluster com a adio de

ns ou remover mquinas para reparos sem interromper a aplicao;


34

h opes de softwares para cluster disponveis livremente, o que

facilita o uso de uma soluo do tipo em universidades, por exemplo;

relativa facilidade de customizao para o perfeito atendimento da

aplicao;

um cluster pode ser implementado tanto para uma aplicao

sofisticada quanto para um sistema domstico criado para fins de estudos, por
exemplo.
Mas, apesar destes benefcios, os clusters no so a soluo perfeita
para todo e qualquer problema computacional. H aplicaes onde o uso de
outra tecnologia se mostra mais adequado. Entre as razes para isso esto:

a facilidade de expanso do cluster pode ser uma "faca de dois

gumes": a quantidade de mquinas pode aumentar tanto que a manuteno se


torna mais trabalhosa, o espao fsico pode ficar imprprio, etc;

a tecnologia de comunicao utilizada pode no oferecer a

velocidade de transferncia de dados ou o tempo de resposta necessrio,


dependendo da aplicao;

um cluster tem como base uma rede local, logo, no se pode

acrescentar mquinas que estejam muito distantes geograficamente.


Por estes aspectos, fica evidente que as necessidades e os requisitos de
uma aplicao devem ser bem avaliados para que se possa decidir entre a
implementao de um cluster ou outra tecnologia. Se o clustering for a opo
escolhida, deve-se seguir com a avaliao, desta vez para se decidir sobre as
solues e recursos disponveis.

35

Switch Ethernet: tecnologias amplamente disponveis comum em clusters

6.8 Concluindo
A origem da denominao "cluster" no clara, mas sabe-se que as
primeiras solues de processamento paralelo remontam dcada de 1960,
havendo, a partir da, alguns princpios que hoje formam a base da ideia de
clustering.
O fato que o passar do tempo no torna o conceito ultrapassado. H
um motivo especial para isso: os clusters se relacionam intimamente
otimizao de recursos, uma necessidade constante em praticamente qualquer
cenrio computacional. E este aspecto pode se tornar ainda mais atraente
quando a ideia de cluster associada a conceitos mais recentes, como cloud
computing e virtualizao.

36

7. CONSIDERAES FINAIS
A computao paralela um modelo que j existe a anos em sistemas
de grande porte, mas foi apenas na ltima dcada que passou a ganhar
importncia em sistemas comerciais e caseiros. Grande parte disso se deve s
limitaes fsicas do aumento da densidade de transistores em um
processador, o que impede que o aumento da frequncia seja to grande
quanto o esperado.
Hoje em dia a computao paralela disparado a principal arquitetura
utilizada nos computadores, tendo como principais representantes para o
pblico domstico os processadores da linha Intel Core e AMD Phenon.
Com o desenvolvimento deste trabalho foi possvel analisar as principais
caractersticas do paralelismo, suas vantagens e desvantagens em relao ao
processamento sequencial, e, principalmente, sua importncia para o
desenvolvimento da tecnologia. Com isso, torna-se evidente que levar algum
tempo para outro tipo de arquitetura surgir e ganhar a relevncia que o
paralelismo possui atualmente.

37

8. REFERNCIAS BIBLIOGRFICAS
Tanenbaum, Andrew S. Organizao Estruturada de Computadores - 5
edio. Editora Pearson 2007
Intel E8500 Chipset Ponte Norte e eXternal Memory Bridge (XMB)
Datasheet. Maro, 2005
Stallings, William. Arquitetura e Organizao de Computadores - 5ed.
Prentice Hall, 2003
Patterson, David A. e John L. Hennessy. Computer Organization and Design,
Second Edition. Morgan Kaufmann Publishers, 1998
Hennessy, John L. e David A. Patterson. Computer Architecture: A
Quantitative Approach. 3 edio. Morgan Kaufmann, 2002
Rabaey, J. M. Digital Integrated Circuits. Prentice Hall, 1996
Roosta, Seyed H. Parallel processing and parallel algorithms: theory and
computation. Springer, 2000
Culler, David E.; Jaswinder Pal Singh e Anoop Gupta. Parallel Computer
Architecture

Hardware/Software

Approach.

Morgan

Modern

Processor

Kaufmann

Publishers, 1999
Shen,

John

Paul

Mikko

H.

Lipasti.

Design:

Fundamentals of Superscalar Processors. McGraw-Hill Professional, 2005

Richard S. Morrison. Cluster Computing - Architectures, Operating


Systems, Parallel Processing & Programming Languages. GNU, 2003

38