quinta-feira, 6 de fevereiro de 2014

Open-MPI atinge marco com Fortran pronto 1.7.4 liberação


Considerações-chave para a sua Plataforma como Estratégia de Serviço


O projeto Open-MPI década de idade, amado da comunidade HPC, foi enviado código para um grande lançamento característica que traz-lo perto de uma completa implementação MPI 3.


Falando ao The Register, da Cisco Jeff Squyers (que junto com Richard Graham de Oak Ridge foi um dos instigadores do projeto Open-MPI há dez anos) disse que talvez uma das características mais importantes da nova versão é que embrulha muito necessário apoio Fortran na interface.







Enquanto que, provavelmente, irá aumentar risos entre os miúdos frescos, Fortran não só está vivo e bem na comunidade HPC, continua a ser uma das línguas principais do mundo de grandes trituradores de número.


"Este é o primeiro conjunto de ligações MPI-Fortran que são realmente compatíveis com a linguagem", disse Squyers.


MPI, explicou ofertas alças para linguagens e compiladores que os conectam aos objetos subjacentes MPI -, mas "todas essas alças costumava ser inteiros simples. Com este lançamento, as alças são agora tipos originais "Com esses tipos Fortran-compliant, ele disse, o usuário -. Software de gravação cientista para uma determinada função - fica melhor assistência do compilador Fortran.


"Há também protótipos rígidas para todos os motores de função MPI", disse Squyres, o que significa mais uma vez os usuários a obter uma melhor assistência na correção de erros.


A versão 1.7.4 Open-MPI também chega perto de uma implementação completa do padrão MPI 3, disse ele, com apenas um item importante - suporte para operações one-way - faltando.


Um grande item na nova versão é o suporte para "coletivos sem bloqueio" no modelo de comunicação. Embora haja uma série de tipos de comunicação além do ponto ponto-a-simples, Squyers escolheu transmissões sem bloqueio como um bom exemplo do que isso significa para o usuário HPC.


"Pode ser realmente útil perguntar MPI para iniciar uma transmissão, enquanto o segmento de computação vai embora para fazer cálculos, porque isso é o que faz, e voltar mais tarde para ver se a transmissão for concluída."


Por exemplo, disse ele, uma operação muito usada em dinâmica de fluidos é uma operação totalmente reduzir: um vetor de números é distribuído através de milhares de núcleos, e que o usuário quer que os cálculos em cada núcleo a ser testada contra o outro.


A transmissão sem bloqueio bloqueando significa que você pode começar uma iteração do cálculo, enviar uma mensagem para recolher o resultado - e, em vez de esperar por respostas para a transmissão, vá em frente com a próxima iteração.


"Eu posso sobrepor iteração e computação, sem esperar que a comunicação", disse Squyres.




  • Uma nova política de ligação que faz com que "extensa" uso de afinidade de processo por padrão, de modo que um processo pode ser obrigado a permanecer em um determinado núcleo, e

  • Melhor suporte CUDA, cortesia de contribuições da Nvidia.



O que é Open-MPI, afinal?


Então, por que haveria um alarido sobre uma liberação característica de um padrão de transmissão de mensagens? Já não estamos fazendo isso, praticamente para sempre?


O Message Passing Interface, MPI - o padrão que sustenta tanto os esforços de código aberto e implementações proprietárias - remonta à década de 1990, e sua longevidade a torna a língua franca da comunidade HPC.


Supercomputação, Squyers explicou ao The Register, tem exigências que nunca foram cumpridas por ônibus middleware comerciais, nem por parte do mundo do sockets TCP.


Em particular, a HPC tem latência extremamente baixa.


A implementação TCP muito bem afinado pode ser capaz de obter pings de 10 microssegundos entre um par de servidores no mesmo centro de dados, mas o usuário supercomputador quer latência mais perto de um décimo disso. Esse é um dos objetivos do MPI, e ambas as suas implementações de código proprietárias e abertas.


O outro, Squyers disse, é que o middleware deve apresentar comunicações para os usuários da forma mais simples possível.


"É uma rede muito abstração de alto nível", explicou. "A pessoa que escreve o aplicativo é um engenheiro químico, ou um físico ou um biólogo. Eles querem triturar alguns números, e eles entendem seus próprios algoritmos e matemática, mas eles não entendem a rede.


"Eles querem dizer seu software 'tomar esta gigabyte de números de precisão dupla e enviá-lo para o número 38'. Sob MPI, um milagre acontece: os dados são enviados, mas o usuário não tem que saber se ele está em um núcleo de um par de racks de distância, ou no mesmo servidor enviado via memória compartilhada ".


O padrão MPI primeiro foi transformado em Open-MPI por Squyers e Graham em um projeto que começou em 2004 e lançou seu primeiro código em 2005.


Embora existam alternativas ao MPI - SGI shmem (acesso à memória hierárquica simétrica), que tem uma implementação aberta e PGAS (espaço de endereço global particionado), por exemplo - Squyers acredita que MPI subjaz tanto quanto 90-95 por cento do código HPC fora lá.


A penetração da implementação Open-MPI é mais difícil de avaliar, uma vez que está incluído no Linux e algumas distribuições do OpenBSD. ®





Nenhum comentário:

Postar um comentário