Você está na página 1de 8

Arquitetura e Avaliao do Cluster de Alto Desempenho Netuno

Vincius Silva 1, Cristiana Bentes 3, Srgio Guedes2, Gabriel P. Silva 1 DCC-IM/UFRJ1, NCE/UFRJ2, DESC/UERJ3 vss@ufrj.br, cris@eng.uerj.br, guedes@nce.ufrj.br, gabriel@dcc.ufrj.br Resumo
Este artigo apresenta a arquitetura e os resultados da avaliao de desempenho do supercomputador Netuno, um cluster de alto desempenho recentemente instalado na UFRJ. So apresentados detalhes tanto de sua arquitetura como dos softwares bsicos e de middleware utilizados na sua construo. Os resultados de avaliao obtidos registram um desempenho de 16,2 TFlops sustentados para o benchmark HPL (High Performance Linpack), o que colocou o supercomputador Netuno na 138a posio na lista Top500 de junho de 2008. Atualmente, o supercomputador Netuno atende diversas instituies de ensino e pesquisa no Brasil, participantes das redes temticas de pequisa de Geofsica Aplicada e de Oceanografia (REMO), patrocinadas pela Petrobras. do procedimento de avaliao de desempenho do cluster Netuno; finalmente, as concluses e trabalhos futuros so relatados na Seo 6.

2. Opes Arquiteturais
Um cluster pode variar imensamente em termos de opes arquiteturais utilizadas: ns computacionais, redes de interconexo e sistemas de armazenamento so as principais delas. Nesta seo, apresentamos as configuraes de hardware utilizadas neste projeto, com uma justificativa para sua escolha.

2.1. Ns Computacionais
Uma das primeiras escolhas realizadas no Netuno foi a configurao dos ns computacionais, incluindo-se a quantos e quais processadores a serem utilizados. 2.1.1. Processadores Na seleo dos processadores, os principais fatores a serem levados em conta so: o nmero de processadores por n computacional, a quantidade de ncleos de cada processador, a freqncia de operao, o consumo, a dissipao e, obviamente, o custo. Uma configurao tpica de um cluster de alto desempenho pode atingir alguns milhares de ncleos facilmente. A primeira conseqncia disto um grande impacto na energia consumida e no calor dissipado por todo o equipamento. Portanto, logo aps o desempenho, a primeira preocupao em um cluster com o consumo. Os processadores multicore tm a grande vantagem de apresentarem uma relao de consumo versus desempenho muito melhor do que os processadores convencionais, e tambm um custo por ncleo bem menor. Logo, se estabeleceu como tendncia nos clusters modernos o uso de um ou mais processadores multicore nos ns computacionais. O projeto do Netuno no foi exceo regra. Optamos pelo uso em cada n do Netuno de dois processadores Intel E-5430, cada um com 4 ncleos de 64 bits, com freqncia de trabalho de 2,66 GHz, tecnologia de 45 nm, freqncia de barramento de 1,3 GHZ, memria cache de 12 MB. O desempenho de pico estimado em 4

1. Introduo
Na escolha e configurao de um cluster de alto desempenho h uma grande variedade de opes, incluindo-se configurao dos ns, redes de interconexo, sistemas de armazenamento, sistema operacional, compiladores, ferramentas de submisso e softwares de gerenciamento, entre outros. O desempenho final do cluster ir depender da escolha de um conjunto harmonioso de hardware e software. O objetivo deste artigo apresentar as alternativas e opes arquiteturais para o projeto de um sistema de computao de alto desempenho, tomando-se como referncia o projeto do sistema Netuno. O Netuno um cluster de alto desempenho com 256 ns computacionais, 4 ns para acesso via protocolos ssh ou http, uma rede de interconexo de alto desempenho do tipo InfiniBand e um sistema de armazenamento paralelo com 30 TB. Neste artigo abordamos tambm os detalhes de avaliao do Netuno, que apresentou um desempenho sustentado de 16,2 TFlops para o benchmark HPL (High Performance Linpack). O restante deste artigo est organizado da seguinte maneira: na Seo 2 descrevemos as opes arquiteturais utilizadas; na seo seguinte, so feitas consideraes a respeito do sistema operacional, middlewares e compiladores utilizados; a Seo 4 apresenta os detalhes

operaes de ponto flutuante por ciclo de relgio, ou seja, 10,6 GFlops para cada ncleo ou 85,1 GFlops por n. O perfil de dissipao trmica do processador escolhido de 80 W. Outras opes do mesmo fabricante ofereciam um desempenho melhor, mas custa de um maior consumo e dissipao at 50% maior. Devemos observar que os processadores modernos possuem formas de controlar dinamicamente a freqncia e a tenso de operao. Eles possuem sensores de temperatura em diversos pontos do encapsulamento. Se for notado um aumento excessivo da temperatura, a freqncia de operao e a tenso so ajustados para que a temperatura mxima do processador no seja ultrapassada. Assim sendo, o investimento adicional em processadores de maior velocidade (e maior consumo) pode ser perdido, caso a potncia dissipada pelo sistema esteja acima da capacidade de refrigerao instalada. 2.1.2. Memria O uso de processadores multicores oferece uma srie de vantagens, mas exige cuidados, como por exemplo, na definio da quantidade de memria adequada para o funcionamento do n computacional. Cada ncleo deve ter uma quantidade de memria suficiente para executar as suas aplicaes. Um maior nmero de ncleos, portanto, tem impacto direto na capacidade de memria a ser instalada em cada n. Na poca de especificao do sistema Netuno, no havia ainda um conjunto definido de aplicaes. Levantamentos realizados indicavam a regra de ouro de pelo menos 1 GB por cada ncleo. Valores menores poderiam resultar em operaes excessivas de swap de memria virtual, com a conseqente degradao de desempenho. Optamos, de um modo conservador, pelo uso de 2 GB por ncleo, ou seja, um total de 16 GB de memria principal para cada n computacional. O uso de mdulos de memria com correo de erro ou paridade so condies tambm exigidas para equipamentos desse tipo. Utilizamos memrias de freqncia e padro adequados aos processadores escolhidos: memrias FB-DIMM 667, do tipo dual rank. 2.1.3. Armazenamento e Interfaces de E/S A melhor relao custo/benefcio deve ser buscada na definio do tipo de disco a ser utilizado localmente. Em termos de quantidade, o espao em disco no n computacional deve ser apenas o suficiente para armazenar uma cpia do sistema operacional e para definir uma rea temporria disponvel para as aplicaes. Deste modo, cada n computacional conta com um disco local de 160 GB, do tipo SATA, de baixo custo e desempenho adequado para o uso em aplicaes paralelas.

Note que os arquivos de usurio, como aplicaes, arquivos de configurao e dados de entrada e sada, devem estar em um sistema de arquivos remoto, acessvel a todos os ns de uma maneira uniforme. Para acesso a esse sistema de arquivos utilizamos uma rede do tipo ethernet, com uma interface de 1 Gbps para cada n computacional, compartilhada entre os todos os processadores (e seus respectivos ncleos). O aumento do nmero de ncleos em cada n, nesse caso, de menor impacto nas demandas para acesso aos sistemas de arquivos remotos, pois apenas uma nica cpia do sistema operacional, responsvel pelos acessos de E/S, executada em cada n computacional. J em se tratando de largura de banda disponvel para comunicao, o aumento do nmero de ncleos em cada n requer um aumento correspondente na largura de banda. No h como prever a priori os padres de comunicao de cada aplicao, assim sendo, deve-se assegurar o mximo de largura de banda possvel. Entre as diversas tecnologias disponveis, optamos pela incluso em cada n de uma interface do tipo HCA para a rede InfiniBand, com taxa mxima de transferncia de 20 Gbps. Esta interface se destina comunicao entre processos, como aquela realizada pelas bibliotecas MPI. Assim, com um total de 8 ncleos para cada n, o Netuno tem uma largura de banda mdia de 2,5 Gbps disponvel para cada um dos ncleos.

2.2. Redes de Interconexo


Como mencionado anteriormente h duas redes de interconexo no Netuno: uma para comunicao, via troca de mensagens, entre as aplicaes em execuo nos ns computacionais e outra para acessos de E/S das aplicaes ao sistema de arquivos remoto e paralelo. 2.2.1. Rede para Troca de Mensagens A rede para troca de mensagens entre os ns importante para um bom desempenho das aplicaes paralelas que executam no cluster, devendo-se considerar tanto a taxa de transferncia mxima por canal, como tambm a latncia, que tm impacto decisivo no tempo total de transmisso das mensagens. A rede de conexo InfiniBand possui as caractersticas acima descritas. O padro InfiniBand define uma conexo serial padro (SDR) com 2,5 Gbps em cada sentido e suporta ainda velocidades DDR e QDR, respectivamente de 5 Gbps e 10 Gbps. Os canais usam uma codificao 8B/10B cada 10 bits transmitidos enviam 8 bits de informao til de modo que a taxa de transmisso til 4/5 da taxa bruta. Uma caracterstica muito interessante do padro InfiniBand a possibilidade do uso de acesso direto memria remoto (RDMA) para diminuir a sobrecarga do processador nas operaes de envio e recepo de

mensagens, o que tambm possibilita latncias ponto-aponto menores que 1 s. O uso de RDMA admite tambm o que chamado de transferncia zero-cpia, permitindo que o adaptador de rede transfira dados diretamente de/para a memria da aplicao (espao de usurio), eliminando a necessidade de copiar dados entre a memria da aplicao e os buffers de dados dos sistema operacional. Como resultado, os dados da aplicao so enviados diretamente para a placa de rede, reduzindo a latncia e permitindo uma transferncia rpida das mensagens. Se o padro de comunicao da aplicao conhecido, ento possvel realizar algumas otimizaes no projeto da topologia da rede. O Netuno, contudo, no se destina a um nico tipo de aplicao e, portanto, deve prover a maior flexibilidade possvel. A opo adotada no Netuno foi o uso de um switch fabric InfiniBand (CISCO SFS-7024D-X) com 264 portas DDR 4X, permitindo a comunicao simultnea, totalmente sem bloqueio, entre os 256 ns computacionais com uso de conexes em cobre. Este switch fabric possibilita o uso de RDMA com latncia final (de espao de usurio para espao de usurio) menor que 4 s. O uso da rede InfiniBand, ao invs de outros tipos de rede, como Infinipath, Myrinet, QsNet e SCI, se justifica por sua relao custo/desempenho e por tambm ser o tipo de rede de maior crescimento entre os sistemas computacionais de alto desempenho que aparecem relacionados na lista Top500 [1]. 2.2.2. Rede de Entrada e Sada A rede de E/S para acesso aos arquivos remotos possui uma demanda muito menor em termos de latncia e taxa de transmisso, j que as aplicaes paralelas de interesse fazem tipicamente uso intensivo de processador (cpu-bound) e, portanto, realizam relativamente um nmero menor de operaes de E/S. Por outro lado, essa questo no pode ser tratada com menor importncia, j que os supercomputadores consomem e produzem uma quantidade expressiva de dados em um curto espao de tempo. Segundo Ken Batcher [2], "Um supercomputador um dispositivo para transformar problemas cpu-bound em problemas I/O-bound. Embora a demanda de cada um dos ns computacionais isoladamente possa no ser to significativa, podem surgir problemas quando todos os ns fazem acesso simultneo a um nico sistema de arquivos. Para evitar este problema, h um switch em cada gabinete para onde convergem todas as conexes de 1 Gbps de cada um dos 32 ns computacionais instalados no gabinete. Dos switches em cada gabinete, partem duas conexes em fibra tica, de 10 Gbps cada, que se conectam a um switch central de alto desempenho

(CISCO 6509), com 16 interfaces em fibra tica, perfazendo um total de 8 gabinetes. O sistema de arquivos remoto e paralelo se conecta a este roteador de alta capacidade atravs de 12 portas ethernet de 1 Gbps, totalizando uma taxa mxima de transferncia de 1,2 Gbytes por segundo. Esta opo de ligao do sistema de arquivos remoto foi a melhor possvel no momento da especificao e aquisio do equipamento, dado que opes de maior desempenho (10 GE) ainda no estavam disponveis.

2.3. Sistema de Arquivos Remoto e Distribudo


Uma das maiores dificuldades enfrentadas durante a especificao do Netuno foi a falta de informaes para melhor dimensionar o sistema de arquivos compartilhado pelos ns computacionais. A opo inicial, o uso de um sistema de arquivos distribudo do tipo NAS (Network Attached Storage), acessvel remotamente via protocolo NFS (Network File System), foi logo abandonada. Sistemas do tipo NAS no escalam bem, quer em termos de capacidade de armazenamento ou de desempenho. Alm disso, o protocolo NFS tem fragilidades e limitaes de desempenho que se agravam quando h um grande nmero de clientes acessando um mesmo servidor/ arquivo. Para contornar essas limitaes, o uso de sistemas de arquivos paralelos distribudos passou a ser considerado, sendo que, entre as opes disponveis, avaliamos o uso do PVFS, Lustre e PanFS. Optamos pelo uso do PanFs pelas caractersticas que iremos descrever a seguir. A Figura 1 mostra a arquitetura bsica do PanFS.

Figura 1: Arquitetura Bsica do PanFS O PanFS um sistema de arquivos projetado pela Panasas, que tem as caractersticas de alta velocidade, globalidade e escalabilidade. Para isso se utiliza de hardware dedicado denominado de carto de

armazenamento. Cada unidade bsica de armazenamento, uma gaveta para montagem em gabinete com altura 4U, pode acomodar at 11 cartes, sendo 1 carto de diretrio e 10 cartes de armazenamento Cada carto na realidade um sistema completo, com uma pequena placa me, processador, memria, um ou mais discos, interface de rede interna Gigabit. A memria utilizada tambm como cache para os dados armazenados nos discos. H dois tipos de cartes: um carto de diretrio que faz o papel de gerenciador de metadados e um carto de armazenamento que armazena os dados propriamente ditos. O PanFs um sistema de arquivos baseado em objetos, ou seja, os clientes contactam o gerenciador de metadados para realizar um acesso a um arquivo. O gerenciador de metadados envia um mapa da localizao dos dados para o cliente. Ento o cliente se comunica com os cartes de armazenamento diretamente e em paralelo. medida que os dados so escritos nos cartes de armazenamento, eles so quebrados em blocos de 64 KB. Atributos de arquivo, um identificador de objeto e outras informaes so adicionadas a cada bloco para formar um objeto. Os objetos so escritos utilizando-se RAID-1 para arquivos com 64 KB ou menos, e RAID-5 para arquivos maiores. O cliente utiliza o protocolo de acesso DirectFlow, que permite acesso aos cartes de armazenamento diretamente e em paralelo. Este protocolo permite ao cliente enviar pedidos de acesso aos dados de um mesmo arquivo em paralelo, melhorando bastante o desempenho. Os testes de avaliao que realizamos no Netuno indicam o desempenho de uma nica gaveta (4 links Gigabit) com um nico carto de diretrio em torno 350 MB/S para leitura de dados. O cliente DirectFlow da Panasas muito similar ao cliente NFSv4.1(Parallel NFS), e o cdigo fonte est disponvel publicamente. Alm do cliente DirectFlow, os clientes podem acessar os arquivos usando NFS e CIFS. Os cartes de diretrio atuam como servidores NFS e CIFS. O PanFS possui ainda uma interface ROM/IO que permite que seja utilizado pelo conjunto de rotinas da biblioteca MPI-I/O. O sistema adquirido para o Netuno possui 3 gavetas, cada uma com 10 cartes de armazenamento com 2 discos de 500 GB cada, totalizando 30 TB de capacidade de armazenamento e capacidade mxima de transferncia de 1,4 GB/S para leitura de arquivos.

3.1 Sistema Operacional


H vrias opes possveis na escolha do sistema operacional de um cluster. H verses comerciais e ainda diversas variaes do Linux, algumas sob licena e outras gratuitas. No caso do Netuno, decidimos pela utilizao da distribuio CentOS do Linux, verso 5.1, em todos os ns do cluster. uma distribuio gratuita, baseada na distribuio licenciada do RedHat Enterprise Linux, com maturidade e estabilidade suficientes para garantir um funcionamento adequado e sem falhas. O uso do Linux oferece como grande vantagem a possibilidade de compilar o ncleo de modo personalizado, isto , apenas com os mdulos especficos para o hardware dos ns computacionais. Alm da economia de espao em memria para as aplicaes, permite uma maior estabilidade do sistema operacional, pela reduo do nmero de componentes envolvidos. Um componente importante do sistema operacional o driver que ser utilizado para interface com a rede InfiniBand. A inexistncia de um driver adequado, ou ainda com baixo desempenho, pode comprometer o bom funcionamento do cluster. O driver utilizado no Netuno foi aquele fornecido pela OpenFabrics Alliance [3], tambm conhecido como OFED (OpenFabrics Enterprise Distribution). Esse driver projetado para realizar a conexo entre os componentes do cluster, sejam eles servidores ou sistemas de armazenamento, sendo otimizados para desempenho (alto throughput, baixa latncia) utilizando RDMA e outras tecnologias disponveis no adaptador HCA. A distribuio OFED inclui tambm um gerenciador de rede InfiniBand (OpenSM), ferramentas de diagnstico, testes de avaliao de desempenho e suporte para uso da biblioteca MPI com a interface InfiniBand.

3.2 Compiladores e Bibliotecas de Comunicao


Diversos compiladores e bibliotecas de comunicao para o padro MPI esto disponveis para utilizao em clusters com sistemas operacionais do tipo Linux. Em termos de compiladores para as linguagens C e Fortran podemos encontrar compiladores de uso pblico, como os compiladores GNU, e as verses proprietrias como Intel e Portland Group. No cluster Netuno todas essas opes esto disponveis para os usurios j que, de acordo com o tipo de aplicao, uma ou outra verso pode ser mais indicada. Para os testes de avaliao realizados com o programa HPL, apresentado na Seo 4, foram utilizados os compiladores GNU e Intel. No foi observada uma variao relevante no desempenho por conta da utilizao de um ou outro compilador.

3. Opes de Software
Apenas a escolha dos componentes de hardware de um cluster no asseguram o seu correto funcionamento e desempenho adequados. H necessidade de definio de um sistema operacional, compiladores e middleware adequados.

Em termos de bibliotecas de comunicao MPI, esto disponveis tambm diversas verses de uso pblico e algumas solues proprietrias. Atualmente, encontramse disponveis no Netuno as distribuies gratuitas OpenMPI [4], MVAPICH2 [5] e as distribuies licenciadas Intel MPI [6] e Scali MPI [7]. Nos testes realizados h diferenas significativas de desempenho e robustez entre essas diversas verses, sendo que os melhores resultados foram obtidos com a biblioteca OpenMPI. Os depuradores paralelos de domnio pblico no apresentam ainda maturidade suficiente para uso em um sistema de produo. Por conta disso optamos pelo uso do depurador paralelo proprietrio da TotalView.

Mais uma vez, h diversas solues possveis, optamos pelo uso no Netuno da ferramenta proprietria Scali Manager, atualmente adquirida e gerenciada pela empresa Platform Computing. O Netuno possui 2 ns de controle exclusivamente para a execuo de todo o software de middleware descrito nesta seo e fazer a contabilidade e controle dos usurios.

3.3 Middleware
Com o conjunto de ferramentas e compiladores relacionados at aqui, j possvel a execuo de programas paralelos no cluster. Contudo, quando se trata de em um sistema real, com vrios usurios, com diversos tipos de programas e privilgios, e ainda que demanda o gerenciamento de centenas de ns, ferramentas adicionais so necessrias para ordenar e melhorar a utilizao dos ns. Um gerenciador de carga um conjunto de ferramentas que permite um ou mais usurios compartilhar com eficincia o poder computacional de um cluster. No alto nvel, ele permite o acesso remoto a esses recursos e coordena as aes para prevenir conflitos entre usurios, melhorar a eficincia do uso cluster e gerenciar os ns com defeitos. Utilizando um gerenciador de carga, os usurios conseguem saber o estado geral do cluster, submeter novos pedidos, monitorar e controlar pedidos j submetidos, e ainda agendar tarefas para execuo com antecedncia. Em conjunto com o gerenciador de carga, normalmente encontra-se um portal de acesso, onde o usurio pode realizar todas essas funes remotamente, sem necessidade de instalar nenhum programa no seu computador e sem necessitar da interveno do gerente do sistemas. Entre as diversas opes existentes, de domnio pblico ou licenciadas, optamos pelo uso no cluster Netuno da sute Moab Cluster [8], licenciada, trabalhando em conjunto com o gerenciador de tarefas Torque [9], de domnio pblico. Adicionalmente, se faz necessrio o uso de ferramentas para gerenciar a infra-estrutura bsica do cluster garantindo, por exemplo, que todos os ns computacionais estejam consistentes entre si, com a mesma imagem do sistema operacional, incluindo ncleo do sistema operacional, bibliotecas e pacotes instalados. Uma operao simples, como enviar o mesmo comando para ser executado em todos os ns, pode se tornar uma tarefa complicada sem as ferramentas adequadas.

Figura 2: Arquitetura do Netuno A Figura 2 mostra um diagrama com a configurao do cluster Netuno.

4. Avaliao de Desempenho
4.1. O Algoritmo do Benchmark HPL
O benchmark HPL [10] a principal ferramenta de avaliao utilizada para compor a lista Top500 [1] que relaciona, a cada 6 meses, os computadores mais rpidos do planeta. O HPL um programa que resolve um sistema de equaes lineares densas (geradas aleatoriamente) em aritmtica de preciso dupla (64 bits) em computadores com memria distribuda. O pacote HPL um programa de teste com medidas de tempo, que serve tanto para quantificar a preciso das solues obtidas, assim como medir o tempo gasto para comput-la. O desempenho mximo que pode ser alcanado na execuo deste programa em um sistema paralelo depende de uma grande variedade de parmetros, que so passados pelo usurio em um arquivo de configurao no momento da sua execuo. O benchmark HPL calcula a soluo de um sistema de equaes lineares A.x=b, onde A uma matriz densa gerada aleatoriamente de dimenso N x N, x e b so vetores de tamanho N. A matriz A primeiramente fatorada como sendo o produto A=L.U, onde L e U representam as matrizes triangulares inferior e superior respectivamente.

Para a estabilidade numrica, o algoritmo de fatorao usa um pivotamento parcial de linha. A soluo x ento encontrada em dois passos sucessivos de soluo triangular, L.z=b e finalmente U.x=z. Os dados da matriz A que compem o sistema so distribudos em uma grade de processos bidimensional de tamanho P x Q de acordo com um esquema cclico em bloco. A matriz de coeficientes, de dimenso N x N+1, primeiro particionada logicamente em NB x NB blocos, que so ciclicamente distribudos na grade de processos P x Q. Isto feito em ambas as dimenses da matriz, garantindo um bom balanceamento de carga, assim como a escalabilidade do algoritmo. Foi escolhida a implementao mais simples da decomposio (fatorao) de Cholesky, conhecida como right-looking variant, para o lao principal da fatorao LU. Isso significa que, a cada iterao do lao, um painel de NB colunas fatorado, e a submatriz resultante atualizada. Deste modo, a computao logicamente particionada com o mesmo tamanho de bloco NB que foi usado para a distribuio dos dados. A Figura 3 ilustra a distribuio dos blocos da matriz para um conjunto de 6 processos. Na realidade cada elemento Aij representado na figura uma submatriz de dimenso NB. 0 1 2

A fatorao do benchmark HPL requer (2/3)*N3 operaes e as duas solues triangulares totalizam N2 operaes cada, todas de ponto flutuante. A medida que N aumenta, a fase de fatorao domina o tempo de computao. Os dados relacionados com a i-sima iterao do algoritmo so apresentados na Figura 4, D o i-simo bloco na diagonal principal, L, U e T so as partes atuais da matriz inferior, superior e restante. O valor de N determinado pela quantidade mxima de memria que cada n computacional pode destinar para o processo HPL antes que comecem acontecer operaes de swap para o disco. Isso significa que o sistema operacional precisa ser minimizado para permitir mais espao para a a execuo do HPL. Assim sendo, a imagem do sistema operacional para rodar os testes HPL no deve ser a mesma que a da fase de produo do cluster. Assumindo que o tamanho da matriz A 8*N bytes, ento, se em cada n computacional deixarmos mais ou menos 20% da memria para o sistema, N pode ser escolhido com a seguinte frmula [11]: N= 0,8 NumNos MemNo/8 [1] Onde, NumNos o nmero total de ns e MemNo a capacidade de memria de cada n do cluster. Se N for muito alto, ento o sistema comea a paginar e o desempenho diminui sensivelmente. Se N for muito baixo, mais computao poderia ter sido feita em cada n.

A11 A14 A17 A12 A15 A18 A13 A16 0 A31 A34 A37 A32 A35 A38 A33 A36 A51 A54 A57 A52 A55 A58 A53 A56 A71 A74 A77 A72 A75 A78 A73 A76 A21 A24 A27 A22 A25 A28 A23 A26 1 A41 A44 A47 A42 A45 A48 A43 A46 A61 A64 A67 A62 A65 A68 A63 A66
1

A81 A84 A87 A82 A85 A88 A83 A86 Figura 3: Distribuio dos Blocos da Matriz

4.2. Execuo do Benchmark HPL


A execuo do benchmark HPL cercada de diversas possibilidades e variaes que incluem desde os compiladores, bibliotecas matemticas e de comunicao, alm dos prprios parmetros de configurao do programa. Em termos de compiladores, tnhamos disponveis os compiladores Intel, GCC e PGI (Portland Group). Alm disso, o desempenho do HPL fortemente dependente da biblioteca BLAS, existindo vrias verses que podem ser utilizadas. Figura 4: Fatorao da Matriz Para estimar o valor NB, deve-se iniciar com valores de 32 ou 40, e ento tentar fazer NB o maior possvel. Uma vez encontrado um bom valor para NB, valores de mltiplos pares de NB, expressos pela frmula 2*i*NB, devem dar bons resultados tambm. Como N e NB so relacionados, desejvel que N seja mltiplo de NB para evitar computaes residuais. Os valores de P e Q esto relacionados ao nmero de processos, tal que: P*Q = NumProcessos. A regra de

ouro ter Q > P e possivelmente Q = 2P ou P = sqrt (N).

4.4. Resultados
Para estimar o tamanho ideal de N utilizamos a Equao 1 e obtivemos N=41448 para um apenas um n e N=663177 para todo o cluster. Esses valores so aproximaes iniciais e os valores ideais so obtidos por tentativa e erro. Para o cluster inteiro, realizamos experimentos com N=540000, 600000, 650000, 655000. O grfico da Figura 5 mostra o desempenho em TFlops obtido para esses experimentos. Conforme podemos observar no grfico, o melhor desempenho foi de 16,2 TFlops, obtido para N=655000, para valores maiores, o sistema comea a realizar swap e o desempenho cai abruptamente. Isto ocorre porque na medida em que se aumenta o nmero de ns, a quantidade de memria gasta com os buffers de comunicao do MPI tambm aumenta. Portanto, preciso deixar um pouco mais do que 20% da memria para o sistema. Para experimentos realizados em apenas um n do cluster, o melhor desempenho obtido foi de 71 GFlops para N=44000, ou seja, um pouco maior que o estimado inicialmente.
18

4.3. Refinando os Parmetros


Como o desempenho do benchmark HPL dependente do espao de memria utilizado, devemos obter o maior valor possvel de N que no cause operaes de swap. Entretanto, como N precisa ser mltiplo de NB para evitar o desbalanceamento do trabalho, ento melhor determinar primeiro o maior valor possvel para NB, para diminuir o custo de comunicao. Esses testes podem ser feitos com valores menores de N, j que o valor timo de NB tende a manter-se constante [12]. Pode-se iniciar com um valor pequeno de NB, como 32 ou 48, e ir aumentando de 16 em 16 at determinar o valor timo. Na Tabela 1, mostramos os parmetros de configurao do HPL com as opes utilizadas na avaliao realizada no cluster Netuno. Tabela 1: Parametros de Configurao do HPL
Linha 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Valor 1 Descrio # de tamanhos de problemas (N) a serem lidas

655000 N A dimenso da matriz a ser calculada 1 192 0 1 32 64 16 1 1 1 4 1 4 1 2 1 1 1 1 2 64 0 0 1 8 Nmero de NBs a serem lidos NB O tamanho de NB (nmero de elementos) Mapeamento de Processos (0=Linha,1=Coluna) # de grades de processos (P x Q) a serem lidas P P * Q = nmero total de ncleos

16

TFlops

14

Q P * Q = nmero total de ncleos Threshold Valor a ser comparado no final da execuo para validar os resultados # de tipos de painis de fatorao a serem lidos PFACTs (0=left, 1=Crout, 2=Right) # de critrios de parada recursivos a serem lidos NBMINs (>= 1) # de painis na recurso a serem lidos NDIVs # de painis de fatorao recursivos a serem lidos RFACTs (0=left, 1=Crout, 2=Right) # de tipos de difuso a serem lidos BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM) # de profundidades de lookahead a serem lidas DEPTHs (>=0) SWAP (0=bin-exch,1=long,2=mix) swapping threshold Formato de L1 in (0=transposta,1=no-transposta) Use sempre 0 Formato de U in (0=transposta,1=no-transposta) Use sempre 0 Equilibration (0=No,1=Sim) Sempre 1 Alinhamento de memria double (> 0) (4, 8 ou 16)

12

10 540000

600000

650000

655000

Figura 5: Desempenho x Tamanho da Matriz Considerando que o desempenho mximo que um n do cluster pode obter de 85,1 GFlops (conforme visto na seo 2.1.1), a execuo para N=44000 obteve uma eficincia de 82,3% do valor de pico terico. Para o cluster inteiro o desempenho mximo dado por Tmx = 85,1 GFlops x 256 = 21,7 TFlops. Portanto a execuo com N=655000 obteve uma eficincia de 74,7%, considerada excelente para clusters desse tipo. S a ttulo de comparao, a primeira mquina na lista Top500, RoadRunner, reportou este ano uma eficincia de 75.9%. Como o benchmark HPL apresenta alta taxa de comunicao entre os processos, avaliamos tambm o efeito da rede de interconexo e da biblioteca MPI no desempenho final. Com relao rede de interconexo, executamos um outro experimento no cluster inteiro com N=655000, s que utilizando somente a rede ethernet para comunicao

entre os ns. Este experimento apontou um desempenho de apenas 8,9 TFlops, ou seja, um eficincia de 42%. Este resultado mostra que a opo arquitetural pelo uso da rede InfiniBand e drivers OFED foi fundamental para a explorao em maior grau do potencial de desempenho do cluster. No que se refere biblioteca MPI empregada, apresentamos na Tabela 2 os resultados de desempenho obtidos para as bibliotecas OpenMPI, Intel MPI e Scali MPI, com diferentes nmeros de ns e parmetros de entrada. Conforme podemos observar nesta tabela, a biblioteca OpenMPI apresentou um melhor desempenho do que a biblioteca Intel MPI quando h um nmero maior de ns. Este resultado comprova a boa adequao da biblioteca OpenMPI para clusters muito grandes [13]. Embora a biblioteca comercial ScaliMPI tenha apresentado um bom resultado com at 128 ns, ela no foi utilizada para medir o desempenho final do cluster, porque apresentou problemas de execuo quando o nmero de ns ultrapassou este valor. Tabela 2: Desempenho das bibliotecas OpenMPI e IntelMPI.
Resultados (GFlops) Ns 1 4 8 16 32 64 N NB P 2 4 8 8 Q 4 8 8 16 16 32 32 OpenMPI Intel MPI 71 282 561 1106 2189 4248 8268 72 283 548 1088 2081 4097 7760 Scali MPI 72 284 570 1131 2218 4365 8385

Como trabalhos futuros pretendemos estender o processo de avaliao realizado, detalhando aspectos como, por exemplo, o uso de programas com paradigmas mistos de memria compartilhada e distribuda, incluindo outras aplicaes de alto desempenho alm do HPL e aprofundando a anlise de importncia da rede de interconexo no desempenho final das aplicaes no cluster. Alm disso, esperamos avaliar com detalhes o sistema de arquivos paralelo em uso e comparar com outras alternativas de domnio pblico.

7. Referncias
[1] TOP500 Supercomputer Site. http://www.top500.org [2] Batcher, K. E., "Design of a Massively Parallel Processor," IEEE Transactions on Computers, Vol. C29, September 1980, 836-840. [3] OpenFabrics. http://www.openfabrics.org/ [4] Gabriel, E. et alli Open MPI: goals, concept, and design of a next generation MPI implementation. In Proceedings, 11th European PVM/MPI Users Group Meeting, 2004. [5] W. Huang , G. Santhanaraman , H.-W. Jin , Q. Gao and D. K. Panda, Design of High Performance MVAPICH2: MPI2 over InfiniBand, In Proceedings of the Sixth IEEE International Symposium on Cluster Computing and the Grid, p.43-48, May 16-19, 2006 [6] Intel MPI. http://software.intel.com/en-us/intel-mpi-library/ [7] Scali MPI. http://www.platform.com/Products/platformmpi. [8] Moab Cluster Suite Cluster Resources. http:// www.clusterresources.com/products/moab-cluster-suite.php [9] TORQUE Open-Source Resource Manager. http://www.clusterresources.com/products/torque-resourcemanager.php [10] Petitet, A.; Whaley, R. C.; Dongarra, J.; Cleary, HPL A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers , Version 2.0, September 10, 2008, http://www.netlib.org/benchmark/hpl/ [11] Pillons, X., Running HPL on Windows HPC Server 2008. http://windowshpc.net/Pages/Default.aspx. [12] Wenli, Z.; Jianping, F.; Mingyu, C. Efficient Determination of Block Size NB for Parallel Linpack Test. Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS 2004). [13] Shipman, G.M.; Woodall, T.S.; Graham, R.L.; Maccabe, A.B.; Bridges, P.G. Infiniband Scalability in OpenMPI Parallel and Distributed Processing Symposium, (IPDPS 2006).

41448 192 82897 192 117234 192 165794 192

234468 192 16 331588 192 16

128 468936 192 32

6. Concluses e Trabalhos Futuros


Procuramos apresentar neste trabalho todos os requisitos, tanto de hardware como de software necessrios construo e colocao em operao de cluster de alto desempenho. Apresentamos tambm detalhes do algoritmo, da configurao e execuo do programa High Performance Linpack (HPL) em um cluster, com vistas sua incluso dos resultados obtidos na lista Top500. Nenhuma dessas tarefas pode ser realizada de forma trivial, exigindo do projetista um conhecimento acumulado em muitas reas da computao. Esperamos com este artigo compartilhar esta experincia e conhecimentos com a comunidade cientfica, facilitando e estimulando novos projetos deste tipo, fundamentais para o desenvolvimento da rea de computao de alto desempenho no pas.

Você também pode gostar