Você está na página 1de 6

COMPARAO DE MULTIPROCESSADORES DE MEMRIA PARTILHADA

E DE TRANSFERNCIA DE MENSAGENS

por Andr P. Martins Instituto Superior Tcnico Universidade Tcnica de Lisboa Lisboa, Portugal apmart@rnl.ist.utl.pt Telmo R. L. Coentro Instituto Superior Tcnico Universidade Tcnica de Lisboa Lisboa, Portugal trlc@rnl.ist.utl.pt

Resumo - Apresenta-se a problemtica da comunicao interprocessador em sistemas multiprocessador bem como as solues de memria partilhada e de transferncia de messagens. Para esse efeito introduzem-se alguns conceitos base e descrevem-se algumas caracteristicas e particularidades do problema e das solues. Para melhor ilustrar as solues so caracterizados casos reais. A abordagem seguida poder constituir uma introduo ao tema deste artigo. Palavras chave ASCI Option Red, Compaq AlphaServer GS320, Comunicao por memria partilhada, Comunicao por transferncia de mensagens, Intel Paragon.

1. Introduo
Fazendo uma retrospectiva das ltimas dcadas do mercado de computao de alto desempenho, High Performance Computing (HPC), verifica-se que o factor mais constante foi a evoluo. Este mercado tem sido marcado pela rpida mudana de fornecedores, arquitecturas, tecnologias e aplicaes. Apesar desta instabilidade, a evoluo do desempenho em larga escala tem-se mostrado um processo contnuo e constante. A convergncia de desempenho entre os microcomputadores e os supercomputadores com um s processador motivou o aparecimento do processamento paralelo, que vem ultrapassar alguns limites do uniprocessamento, reduzir alguns custos (podem construir-se supercomputadores recorrendo a um conjunto de processadores normais), e tambm para facilitar a expansibilidade de um computador (bastando para isso adicionar mais processadores). Por processamento paralelo entende-se a resoluo de um problema mais rpida e eficientemente, utilizando para isso vrios elementos de processamento. Para a realizao desse processamento paralelo podem-se considerar as seguintes arquitecturas: Processador vectorial Multiprocessador simtrico Processador paralelo massivo Memria partilhada e distribuida Clusters de workstations ou de computadores pessoais Combinaes hbridas

Figura 1 - Aumento do desempenho ao longo dos anos As grandes reas industriais que necessitam do grande poder de processamento destes sistemas de computao de alto desempenho so as petrolferas, qumicas e farmacuticas, aeroespaciais, de renderizao e processamento de imagem. O aumento de complexidade dos sistemas, consequncia da evoluo dos mesmos, levou ao aparecimento de novos problemas, entre os quais o da comunicao interprocessadores. Ao longo deste trabalho ser exposto este problema e algumas das suas solues, nomeadamente a memria partilhada e transferncia de mensagens.

Comparao de multiprocessadores de memria partilhada e de transferncia de mensagens

2. Diferentes tipos de arquitecturas 2.1 Taxionomia de Flynn

- custo reduzido - largura de banda severamente limitada (apropriado para sistemas com 4 ou menos processadores). Crossbar switch

A taxionomia da Flynn fornece um mtodo de classificar as arquitecturas de computadores: SISD Single Instruction, Single Data Um nico processador com um nico fluxo de instrues operando sequencialmente sobre um nico fluxo de dados. SIMD Single Instruction, Multiple Data Um conjunto de processadores controlado por um nico fluxo de instrues, cada um operando individualmente sobre um fluxo de dados privado. MISD Multiple Instruction, Single Data Um fluxo de dados comum operado por um conjunto de processadores independentes no fluxo de instrues. MIMD Multiple Instruction, Multiple Data Conjunto de processadores que executam os seus fluxos de instrues e de dados independentemente. Partindo desta classificao genrica, os sistemas que seguidamente iremos abordar inserem-se na categoria MIMD.

- ligaes indirectas - no h optimizao de acesso por localidade - custo superior ao barramento Multistage network

2.2

Comunicao interprocessador

Os sistemas MIMD so mquinas assncronas. Surge da a necessidade dos seus mltiplos processadores comunicarem para que se possam coordenar e comportar como uma unidade coerente. Para caracterizar essa comunicao salientam-se as seguintes vertentes desenvolvidas nas seces seguintes: 2.2.1 Topologias de interligao diferentes estruturas utilizadas para ligar os processadores. Modelos de comunicao tipos de ligao processador memria processador. Topologias de interligao

- ligaes indirectas (aplicando routing) - custo inferior ao crossbar switch Malha bidireccional

De seguida descrevem-se sucintamente as vrias possibilidades de estruturas de ligao: Barramento

- ligaes directas -optimizao do acesso por localidade - ligaes directas - boa expansibilidade (uso generalizado)
Pg. 2/6

Comparao de multiprocessadores de memria partilhada e de transferncia de mensagens

Hipercubo

Figura 3 - UMA - Tempos de acesso uniformes (p0 m0 = p0 m1 = p0 m2) - ligaes directas - optimizao do acesso por localidade - custo elevado - boa expansibilidade NUMA (Non Uniform Memory Access) tipicamente usada em multiprocessadores de larga escala dado que nesta metodologia os baixos valores de acesso memria local contribuem para o bom desempenho. A relevncia do principio de localidade de informao dificulta o desenvolvimento de aplicaes. Contrariamente soluo anterior a expansibilidade no comprometida pelo congestionamento das ligaes.

2.2.2 2.2.2.1

Modelos de comunicao Comunicao por memria partilhada

Nesta abordagem, cada processador tem acesso a toda a memria sistema atravs de um barramento ou de uma rede de comunicao. O modelo ideal para uma memria partilhada por vrios processadores teria um tempo de acesso baixo, num s ciclo de relgio e com largura de banda infinita. Figura 4 - NUMA - Tempo de acesso de p0 m1 maior do que p0 m0 Na utilizao da partilha de memria, surgem as seguintes questes: Figura 2 PRAM (Parallel RAM) Sincronizao no acesso memria a existncia de uma memria global implica que haja mecanismos para garantir exclusividade na escrita, como os j conhecidos semforos, trincos, etc. Competio pelo acesso memria como o nmero de processadores excede o nmero de vias de acesso memria podem surgir situaes de congestionamento e consequente subutilizao do sistema. A utilizao de uma cache bem dimensionada em cada processador resolve este problema. Consistncia da memria dada a utilizao de uma cache local em cada processador pe-se o problema de garantir a coerncia dos dados entre a cache e a memria. Para solucionar este problema recorre-se a mecanismos de coerncia de cache. Escalabilidade reduzida Deriva da complexidade inerente de gerir um grande nmero de processadores na mesma mquina.
Pg. 3/6

Na realidade os tempos de acesso no so desprezveis, crescem com o tamanho do sistema, a largura de banda limitada. Uma das solues aplicadas para contornar esta ltima situao passa por utilizar lgica adicional para interligaes, o que faz com que aumente os tempos de acesso. As referidas interligaes categorias principais: englobam-se em duas

UMA (Uniform Memory Access) normalmente usada em multiprocessadores de pequena dimenso devido ao aumento do tempo de acesso medida que o sistema cresce. O desenvolvimento de aplicaes simplificado pois no existe preocupao com o principio de localidade da informao, contudo o congestionamento das interligaes um factor limitativo da largura de banda.

Comparao de multiprocessadores de memria partilhada e de transferncia de mensagens

Uma soluo a utilizao de ccNUMA (cache coherent Non Uniform Memory Access) que consiste na implementao transparente de coerncia de memria entre vrios clusters de mquinas multiprocessador, atravs de uma rede de comunicao de banda larga. Os sistemas que seguem esta arquitectura so normalmente mquinas de tamanho mdio, com um mximo de 64 processadores, de elevado custo e com um baixo tempo de acesso a informao no local, oferecendo normalmente um bom desempenho multiprocessadores. O desenvolvimento de aplicaes paralelas neste modelo pode ser feito tendo como base a biblioteca OpenMP. O API disponibilizado extende linguagens de programao sequencial (C/C++/Fortran) acrescentando-lhes estruturas SPMD (Simple Program, Multiple Data), isto , estruturas que simplificam a partilha de dados entre processos cooperativos. Possui ainda primitivas de sincronizao, de partilha e privatizao de dados.
#include <omp.h> int main() { omp_lock_t lck; int id; omp_init_lock(&lck); #pragma omp parallel shared(lck) private(id) { id = omp_get_thread_num(); omp_set_lock(&lck); printf("My thread id is %d.\n", id); // only one thread at a time can execute this printf omp_unset_lock(&lck); while (! omp_test_lock(&lck)) { skip(id); /* we do not yet have the lock, so we must do something else */ } work(id); /* we now have the lock and can do the work */ omp_unset_lock(&lck); } omp_destroy_lock(&lck); }

congestionamento causado pela topologia de rede de ligao dos ns. Este mecanismo utilizado quando se pretende fazer MPP (Massive Parallel Processing) em que se aglomeram muitos ns de baixo custo multicomputadores. Um dos modelos de programao que suportam este tipo de comunicao o MPI (Message Passing Interface). As primitivas disponibilizadas nesta biblioteca implementam comunicao entre pares de processos, mecanismos de sincronizao e gesto de grupos de processos, controlo de eficincia em runtime, etc.

#include "mpi.h" int main(int argc, char *argv[]) { int size; MPI_Comm parent; MPI_Init(&argc, &argv); MPI_Comm_get_parent(&parent); if (parent == MPI_COMM_NULL) error("No parent!"); MPI_Comm_remote_size(parent, &size); if (size != 1) error("Something's wrong with the parent"); /* * Parallel code here. */ MPI_Finalize(); return 0; }

Figura 6 Exemplo de programa utilizando MPI 2.2.2.3 Memria partilhada vs Transferncia de mensagens

Referem-se de seguida alguns dos aspectos mais relevantes da comparao entre os dois mtodos em estudo. Vantagens: Memria partilhada Modelo de programao compatvel com uniprocessador e consequentemente mais acessvel. Maior eficincia na transferncia de pequenas unidades de dados. Comunicao entre processos uniforme, independente do processador onde se executam. Leitura e escrita na memria utiliza os mecanismos de load/store convencionais. Padro de comunicao explcito e conhecido. Hardware utilizado mais simples.
Pg. 4/6

Figura 5 Exemplo de programa utilizando OpenMP 2.2.2.2 Comunicao por transferncia de mensagens Neste caso cada processador tem somente acesso directo aos seus dados na memria local. A comunicao interprocessador serve para obter dados que no se encontrem na memria local e que sejam necessrios. Este mtodo levanta as seguintes questes: Latncia no acesso memria no local dado que o acesso memria no local depende de ligaes de rede potencialmente congestionadas, o tempo de acesso um dos factores mais limitativos no desempenho destes sistemas. Expansibilidade estes sistemas apresentam alguma flexibilidade no que toca expanso dado que basta acrescentar ns. Contudo isto s verdade enquanto o speedup pretendido com a expanso no for comprometido pelo

Transferncia de mensagens

Comparao de multiprocessadores de memria partilhada e de transferncia de mensagens

Desvantagens:

Cada processador tem o seu espao de endereamento prprio.

Memria partilhada Maior complexidade utilizado. no hardware

Outras caracteristicas: - Existncia de 41 registos de inteiros e 41 registos de virgula flutuante para efeitos de renomeao. - Picos de execuo de 4 instrues por ciclo de relgio. - Suporte para endereos fisicos de 44 bits e para endereos virtuais de 48 bits.

Necessidade de sincronizao. Expansibilidade limitada/Custo elevado Modelo de complexo. programao no mais a

Transferncia de mensagens

Penalizao elevada memria no local.

acesso

3. Alguns casos reais: 3.1


3.1.1

Memria partilhada
Compaq AlphaServer GS320: Figura 8 - Estrutura de blocos do Alpha 21264

3.2
3.2.1

Transferncia de mensagens
ASCI Option Red

Figura 7 - Compaq AlphaServer GS320 Este servidor da Compaq comporta at 32 processadores RISC Alpha 21264, 256 GB de memria, 4 MB de cache de nvel 2 (on board), com uma interligao de crossbar switch entre os processadores, permitindo um desempenho mximo de 32.68 Gflops. A comunicao interprocessador feita atravs de partilha de memria (ccNUMA). Alpha 21264 Caracteristicas tcnicas do processador: Frequncia do relgio: 1 GHz. Cache de nvel 1: 128 KB no bloqueantes (64K para dados write-back e 64KB para instrues), com 4 vias de associatividade. Cache de nvel 2: off chip. Registos: - 32 registos para operaes com inteiros. - 32 registos para uso de operaes de virgula flutuante. Pipeline de 7 andares com execuo fora de ordem, com predio de saltos e com cache de predio de saltos. Figura 9 - ASCI Option Red Em 1996, as investigaes empreendidas pelo departamento de energia (DOE) dos Estados Unidos necessitavam de capacidades de processamento que excediam os supercomputadores existentes na altura. Neste contexto, foi criado o programa de investigao ASCI (Accelerated Strategic Computing Initiative). A Intel desenvolveu o primeiro supercomputador neste programa, designado por ASCI Option Red. Este supercomputador est organizado numa malha bidimensional constituda por 4640 ns cada qual com 128MB (alguns ns de controlo com 256MB), num total de 606 GB de memria RAM. O sistema ocupa uma rea de cerca de 231 metros quadrados, atinge um desempenho de cerca de 3.15 TFlops e possui um total de 9536 Intel Pentium II Xeon, o qual passamos a descrever de seguida. O modelo de comunicao interprocessador utilizado por transferncia de mensagens.

Pg. 5/6

Comparao de multiprocessadores de memria partilhada e de transferncia de mensagens

Intel Pentium II Xeon Caracteristicas tcnicas do processador: Frequncia do relgio: 450MHz . Cache de nvel 1: 32 KB no bloqueantes (16K para dados e 16KB para instrues), com 4 vias de associatividade, LRU. Cache de nvel 2: 2MB no bloqueante, com 8 vias de associatividade. Registos: - 8 registos de 32 bits de uso geral. - 8 registos de 80 bits para uso de operaes de virgula flutuante. Pipeline de 20 andares com execuo fora de ordem e com predio de saltos. Outras caracteristicas: - Unidades aritmticas e lgicas (ALU) funcionam ao dobro da frequncia do relgio do CPU. - Operaes bsicas sobre inteiros demoram metade do ciclo de relgio. 3.2.2 Intel Paragon

4. Concluses
Pretendeu-se com este trabalho fazer uma breve descrio de modelos de comunicao em sistemas multiprocessadores, ilustrada por alguns casos concretos. Para tal introduziram-se primeiramente os conceitos fundamentais de uma forma simplificada, dando uma viso das particularidades dos sistemas de multiprocessadores (no domnio especfico abordado). Seguidamente apresentaram-se alguns exemplos de sistemas reais com o detalhe permitido pela informao que nos foi possvel obter. A especificidade do tema e a limitao da informao disponivel no possibilitaram uma maior profundidade no tratamento dos temas.

Referncias
1. An Overview of the Intel TFLOPS Supercomputer http://www.intel.com/technology/itj/q11998/pdf/overview.pdf 2. Alpha Server GS320 System http://www.compaq.com/alphaserver/gs320/ 3. Intel Paragon Installed at Caltech http://www.crpc.rice.edu/CRPC/newsletters/apr93/news.parago n.html 4. iPSC/860 Guide http://csep1.phy.ornl.gov/ipsc860_guide/ipsc860_guide.html 5. Intel Pentium II Xeon http://developer.intel.com/design/pentiumii/xeon/prodbref/ 6. Distributer and High-Performance Computing http://www.dhpc.adelaide.edu.au/education/dhpc/2001/lectures/ architecture.pdf 7. Parallel Processors http://www.cis.upenn.edu/~amir/cis501/lecture_notes/ch8multiprocessor.pdf 8. Multiprocessors & Multithreading http://www.cs.wisc.edu/~david/cs752/notes/multiprocessors4up.pdf 9. When Message Passing meets Shared Memory http://reports-archive.adm.cs.cmu.edu/anon/2000/CMU-CS-00133.pdf 10.OpenMP http://www-unix.mcs.anl.gov/mpi/ 11.The Message Passing Interface (MPI) standard http://www.openmp.org/

Figura 10 - Intel Paragon O CRPC (Center for Research on Parallel Computation) em Caltech um dos locais onde foi instalado um supercomputador Intel Paragon XP/S modelo A4 (1993). Neste caso o Paragon tem cerca 56 ns cada um com 16MB de memria, ligados entre si por uma malha bidireccional. Cada n constituido por 2 processadores RISC Intel 860 XP, o qual descrito a seguir. O modelo comunicao interprocessador utilizado por transferncia de mensagens. Intel 860 XP Caracteristicas tcnicas do processador: Frequncia do relgio: 50MHz . Cache de nvel 1: 32 KB (16K para dados e 16KB para instrues). Registos: - 32 registos de 32 bits para operaes com inteiros. - 32 registos de 32 bits para uso de operaes de virgula flutuante. Pipeline de 3 andares. Outras caracteristicas: - Os 32 registos de 32 bits podem ser utilizados como 16 registos de 64 bits ou como 8 registos de 128 bits.

Pg. 6/6