Pergunta

Eu sou novo no mundo da computação paralela. Você pode me dizer que é possível executar um código C ++ usa rotinas MPI no meu laptop com núcleo duplo ou existe algum simulador/emulador para fazer isso?

Foi útil?

Solução

A maioria das implementações do MPI usa memória compartilhada para comunicação entre as classificações localizadas no mesmo host. Nada de especial é necessário em termos de configuração do laptop.

Usando um laptop de núcleo duplo, você pode executar duas classificações e o agendador do sistema operacional tenderá a colocá -los em núcleos separados. O agendador WinXP tende a aplicar algum grau de "ligação da CPU", porque, por padrão, os trabalhos tendem a ser agendados no núcleo onde eles correram pela última vez. No entanto, a maioria das implementações do MPI também permite uma "ligação da CPU" explícita que forçará uma classificação a ser agendada em um núcleo específico. A sintaxe para isso não é padrão e deve ser obtida a partir da documentação de implementações específicas.

Você deve tentar usar a versão "a mesma" e a implementação do MPI no seu laptop que os computadores da universidade estão em execução. Isso ajudará a garantir que os sinalizadores de tempo de execução do MPI sejam iguais.

A maioria das implementações do MPI é enviada com algum tipo de "Wrapper Compiler" ou pelo menos um conjunto de instruções para criar um aplicativo que incluirá a biblioteca MPI. Use esses invólucros ou siga essas instruções.

Outras dicas

Se você estiver interessado em um simulador de aplicativos MPI, provavelmente deve verificar o SMPI.

Este simulador de código aberto (no qual estou envolvido) pode executar muitos aplicativos MPI C/C ++/Fortran não modificados e prever com bastante precisão o tempo de execução do aplicativo, desde que você tenha uma descrição precisa da sua plataforma de hardware. Estudos online e offline são possíveis.

Existem muitas outras vantagens no uso de um simulador para estudar aplicativos MPI:

  • Reprodutibilidade: Várias corridas levam ao mesmo comportamento, a menos que você especifique isso. Você não terá nenhum HeisenBugs em que adicionar mais algumas alterações de rastreamento o comportamento do aplicativo;
  • Análise de What-If: Capacidade de testar na plataforma à qual você não tem acesso ou que ainda não foi construído;
  • Clairevoyance: Você pode observar todas as partes do sistema, mesmo no núcleo da rede.

Para mais informações, veja esta apresentação ou Este artigo.

A estrutura SMPI pode até estudar formalmente a correção de aplicações de MPI por meio de testes exaustivos, como mostrado em essa apresentação.

As mensagens MPI são transportadas via rede de TCP (existem outras possibilidades de alto desempenho, como desempenho compartilhado, mas a rede é o padrão). Portanto, não importa em todos os onde o aplicativo é executado, desde que os nós possam se conectar. Eu acho que você deseja testar o aplicativo no seu laptop, para que todos os nós estejam em execução localmente e possam se conectar facilmente através da rede de loopback.

Não tenho certeza se entendi sua pergunta, mas um laptop é um computador como qualquer outro. Desde que você tenha configurado seu MPI LIBS corretamente e defina seus caminhos, é claro que você pode usar as rotinas MPI no seu laptop.

No que me diz respeito, uso o Debian Linux (http://www.debian.org) por todas as minhas coisas paralelas. Eu escrevi um pequeno artigo que lida com Como fazer com que o MPI funcione em máquinas Debian. Você pode querer se referir a ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top