+ Responder ao Tópico



  1. #1
    veiga
    Visitante

    Padrão Avaliação de um Cluster!!

    Ola,

    Preciso fazer uma avaliação em um Cluster pq o pessoal ta a fim de investir uma grana nele... tipo, a avaliação é pra ver o que vai melhorar o desempenho do cluster com uma melhor relação custo-desempenho. Por exemplo, decidir se vai ser melhor comprar mais alguns nós ou passar a rede pra gigabit.

    Alguem conhece um software que gere um relatório sobre a utilização do cluster? Por que o resultado eh dependente do tipo de aplicação que o pessoal roda... eu tava pensando em utilizar uma ferramenta de monitoração de cluster qualquer, talvez Ganglia q eu ja tenho bastante experiencia, mas teria q fazer várias modificações pq a forma de apresentação dos dados não facilita uma analise desse tipo...

    Lendo os outros topicos desse forum vi que tem gente aqui q da consultoria a empresas... alguem ja precisou fazer alguma coisa desse tipo?? Se puderem me passar alguma documentação eu agradeço.

    Obrigado.


    veiga

  2. #2

    Padrão Avaliação de um Cluster!!

    "Preciso fazer uma avaliação em um Cluster pq o pessoal ta a fim de investir uma grana nele... tipo, a avaliação é pra ver o que vai melhorar o desempenho do cluster com uma melhor relação custo-desempenho. Por exemplo, decidir se vai ser melhor comprar mais alguns nós ou passar a rede pra gigabit. "

    Olá Veiga,,,

    Vários fatores influenciam na performance de um cluster paralelo, desde o hardware (Mem, CPU. Cache, Sub sistema de I/o, etc..), o Hardware de Rede (NIC, Switch, tecnologia de rede), ao modelo de programação paralela (algoritmo, metódo de passagem bloqueante, não bloqueante, etc...)

    Mas, se você quer medir a performance da sua rede use o NetPIPE

    O NetPipe é um medidor de performance de desempenho para sua rede local desenvolvido pela Iowa State University Research Fundation. Ele pode ser baixado do site ftp://ftp.scl.ameslab.gov/pub/netpip...ipe-2.4.tar.gz.

    Sua independência de protocolo permite visualização da sobrecarga "overhead" provenientes de camada de protocolo superior. Ele conduz com certeza à descoberta de uma maior profundidade no desempenho de diversas tecnologias de rede, transferindo tamanhos de blocos que podem ser posteriormente analisados em maiores detalhes.

    O NetPipe é baseado no protocolo TCP/IP. Ele pode responder a diversas perguntas tais como:

    · Como um determinado pacote dados de tamanho "x" chegam ao seu destino?
    · Qual a rede e o protocolo que transmitirão tamanhos “x” de blocos mais rápidos?
    · Qual é a vazão (throughput) de uma determinada rede e o nível de saturação?
    · Existe algum bloco de tamanho "x" para que sua vazão possa ser otimizada?
    · Qual o atraso ocasionado pelos protocolos de comunicação das camadas superiores?
    · Como poderia um pequeno bloco de controle de mensagem chegar rapidamente? (<1 kbyte) e qual rede e protocolo são melhores para este propósito?

    Essa ferramenta é essencial para estudo do impacto de uma rede local nos clusters, por isso os estudantes e pesquisadores de redes locais podem se utilizar destes recursos para aprofundamento em avaliações em protocolos e equipamentos de rede.

    Instalando o NetPipe

    Depois de baixado o aplicativo no diretório /usr/local execute os procedimentos abaixo:

    #tar -zxvf netpipe-2.4.tar.gz

    #cd netpipe-2.4

    #make TCP

    Isto vai gerar um arquivo denominado NPtcp.

    Copie o NPtcp para as estações remotas execute o comando:

    #./NPtcp -r

    No controlador mestre digite:

    NPtcp -t -h <nome do nó escravo> -o <arquivo_gravação_do_teste> -P

    Exemplo: ./NPtcp -t -h escravo1 -o teste.txt -P

    O arquivo de saída dos resultados estará composto por 5 colunas:

    · tempo para transferência de bloco de dados;
    · bits por segundo;
    · bits por bloco;
    · bytes por bloco;
    · distorção.

    Esses dados permitem que você crie gráficos representativos para comparar a performance de sua rede. Por exemplo, um gráfico de assinatura de sua rede pode ser feito através de tempo de transferência x bits por segundo ou então o mais tradicional que seria largura de banda x tamanho do bloco, pelos dados contidos em bytes por bloco x bits por segundo.

    Para compilar os módulos para MPI e PVM devemos fazer algumas modificações para sua execução:

    No arquivo Makefile identifique a linha #Adjust these for MPI.... e altere para as características abaixo:

    MPI_HOME=/usr/local/mpich-1.2.5
    MPI_ARCH=LINUX
    MPI_DEVICE=ch_p4

    Para o PVM faça as alterações abaixo:

    PVM_HOME=/usr/share/pvm3
    PVM_ARCH=LINUX

    Na seção MPI Npmpi: Npmpi.o MPI.o na linha logo abaixo antes do $(EXTRA_LIBS) retire o lmpi e troque por -lmpich

    Depois deste sufoco... façamos:

    #make MPI
    #make PVM

    Para executarmos o MPI digite o comando para execução em dois processos:

    #mpirun -np 2 ./Npmpi

    O resultado ficará em NETpipe.out

    []´s

    Marcos Pitanga
    Linux Clusters Specialist

  3. #3
    veiga
    Visitante

    Padrão Avaliação de um Cluster!!

    Ola Pitanga,

    Obrigado pela atenção, vou dar uma olhada nesse NetPIPE... mas acho q vou precisar de algo mais pra medir o desempenho do hardware do cluster!!

    Se alguem tiver alguma documentação sobre esse tipo de coisa eu agradeço!


    Valeu!


    veiga

  4. #4

    Padrão Avaliação de um Cluster!!

    Bem ai vai....

    O LMbench faz parte do pacote de testes do BPS da Paralogic, que efetua diversos testes de avaliação de latência em seu cluster tais como:

    · sistemas de arquivos;
    · medidas de banda;
    · carga de memória;
    · sobrecarga em trocas de contexto;
    · rede local e remota;
    · escritas e leituras no disco;
    · kernel, forks locais e remotos;
    · dentre outros.

    Descompacte o arquivo #tar zxvf lmbench-2.0-patch1.tgz localizado no diretório /usr/bps entre no diretório LMbench/ e digite cd src, e make results, a compilação será executada e diversas perguntas lhe serão feitas, leia atentamente e responda de acordo com seu hardware.

    Vá ao diretório LMbench/results e digite make, isto vai gerar um sumário do seu sistema.



    O LINPACK é um conjunto de rotinas em Fortran usada como benchmark para supercomputadores criada no inicio dos anos 80, quando Jack Dongarra (Argonne National Laboratory) iniciou uma coleção de resultados em sistemas baseado na velocidade de resolução em matrizes lineares 100 x 100. O LINPACK analisa e resolve sistemas de equações lineares e problemas de mínimos quadrados, essas matrizes que podem ser triangular e triangular quadrada. A biblioteca LINPACK é organizada ao redor que quatro fatorizações matriciais: fatorização LU fatorização de Cholesky, fatorização QR e decomposição singular de valores. Ela usa algorítimos orientados a colunas para aumentar a eficiência, preservando a localidade. Isso significa que se um programa referencia um item em um particular bloco, a próxima referência está no mesmo bloco. O uso de algoritmos de particionamento em bloco tem como objetivo reduzir a movimentação de dados entre os diversos níveis de hierarquia da memória.

    Uma fator interessante que foi adicionada ao LINPACK é a orientação dos algoritmos à arrays como colunas. A escolha desse método é devida à forma que o Fortran faz o armazenamento de matrizes na memória. Como ele usa armazenamento por coluna, isto facilita a computação do código LINPACK.

    Atualmente a implementação portável do LINPACK passou a se chamar High Performance LINPACK (HPL) Benchmark, sendo a principal ferramenta de avaliação de performance em supercomputadores (inclusive os clusters). Essa lista é chamada Top500, em que se encontra os 500 computadores mais rápidos do planeta.

    Baixe o HPL de www.netlib.org/benchmark/hpl, depois faça:
    % tar zxf hpl.tgz
    % cd hpl

    Crie um 'Make.<archname>' no diretório 'hpl'. Considere o archname como Linux_P4_CBLAS_p4 para um sistema Linux com processadores Pentium 4, utilizando a versão do BLAS em C construído pelo ATLAS e usando o dispositivo ch_p4 device do MPICH . Faça os seguintes passos.

    % cp makes/Make.Linux_PII_CBLAS_gm Make.Linux_P4_CBLAS_p4

    Edite o arquivo e modifique a arquitetura ARCH para Linux_P4_CBLAS_p4, e configure o LAdir para a localização das bibliotecas ATLAS.

    % make arch=<Linux_P4_CBLAS_p4>
    % cd bin/< Linux_P4_CBLAS_p4>
    % mpirun -np 4 ./xhpl

    Confira a saída para ter certeza que você tem a resposta certa. O arquivo “HPL.dat” controla os parâmetros atuais do teste. Para modificar esses parâmetros aconselho um lida mais detalhada na documentação do HPL.

    Como observado verificamos que é fácil instalar, executar e calcular a performance. Com isso o leitor já possui referência suficiente para comparar a performance de seu cluster no www.top500.org.

    A principal desvantagem do HPL é que para máquinas seqüenciais e paralelas esse benchmark tende a superestimar a performance das aplicações científicas do mundo real ao alcance em um determinado sistema. Isso é causado porque os códigos do LINPACK são cálculos de matrizes-densas, o que favorece em muito aos dados com características locais. Não é muito comum o HPL, por exemplo, alcançar 30% ou mais de performance teórica de pico de um sistema. As aplicações científicas reais, ao contrário, raramente alcançam mais do que 10% de pico nos modernos sistemas paralelos de memória distribuída como os sistemas Beowulf.


    []´s

    Marcos Pitanga

  5. #5
    Super_Diaulas
    Visitante

    Padrão Avaliação de um Cluster!!

    ow Pitanga.......seja uma pessoa boa........

    sobre essas ferramentas.......

    escreva um tuto e coloca Artigos/Documentos......

    claro se já não tiver 1.....pq eu não olhei...heheheheh

    achei bastante interessante isso........

  6. #6

    Padrão Avaliação de um Cluster!!

    OK, vou escrever alguns tutoriais......

    []´s

    Marcos Pitanga
    Linux Clusters Specialist