MPI (Message Passing Interface), em uma tradução livre, Interface de Passagem de Mensagens. É uma biblioteca com funções para troca de mensagens que faz a comunicação e a sincronização de processos em um Cluster paralelo.
Essa é a biblioteca que fará todo o trabalho de processamento no Cluster. Essa é a biblioteca que transforma um conjunto de máquinas em um Cluster.
Os objetivos do MPICH é fornecer uma implementação MPI que suporte eficientemente, diferentes plataformas de computação e comunicação, incluindo grupos de commodities (sistemas de Desktop, sistemas de memória compartilhada e arquiteturas multicore), redes de alta velocidade e sistemas de computação High-end de propriedade (Blue Gene, Cray); e permitir a pesquisa de ponta em MPI através de uma estrutura modular fácil de estender para outras implementações derivadas.
# ./configure --prefix=/opt/mpich --enable-shared --enable-f95 --enable-threads=runtime --enable-romio --enable-nemesis-shm-collectives --enable-debuginfo CC=gcc CXX=g++ FC=gfortran F77=gfortran --with-pvfs2=/opt/pvfs2 --with-file-system="pvfs2+nfs" --with-thread-package=posix --with-device=ch3:nemesis --with-java=/etc/java-7-openjdk# Somente se for trabalhar com Java
Se não tiver erros, terminará com:
Configuration completed
# make
O make deverá terminar com a frase abaixo sem nenhuma mensagem de erro antes dela:
make[1]: Saindo do diretório '/usr/src/mpich-3.0.4'
# make install
O make install, idem ao make, não deverá apresentar erros.
Configurando as variáveis:
# vim ~/.bashrc
PATH=/opt/mpich/bin:$PATH
export PATH
E acrescentar, também, o caminho na variável LD_LIBRARY_PATH:
/opt/mpich/lib
O arquivo bashrc acima com as variáveis, é o mesmo para o servidor e os nós.
Reinicie:
# shutdown -r now
Vendo as informações:
# mpiexec -info
Vamos testar nossa instalação, compilando e executando:
# cd /usr/src/mpich-3.0.4/examples
# ls
# mpicc -o cpi cpi.c # Esse arquivo deve ser compilado em todas as máquinas; acesse uma por uma ou utilize o seguinte comando:
# man mpicc
Ou: # man mpi_Barrier
Ou: # man mpiexec
Para remover, em caso de erros e começar de novo:
# cd /usr/src/mpich-3.0.4
# make uninstall
# make distclean
# cd /usr/src/pvfs-2.8.2
# make distclean
E remova os seguintes arquivos com rm -rf:
/usr/src/mpich-3.0.4
/usr/src/pvfs-2.8.2
/opt/mpich
/opt/pvfs2
/usr/local/sbin/pvfs2-server
Reinicie a máquina e recomece do princípio, as duas instalações criando novamente os diretórios /opt/mpich e /opt/pvfs2.
12. Ganglia
O Ganglia é um sistema de monitoramento distribuído escalável para sistemas de computação de alto desempenho, como Clusters e grids. Ele é baseado em um projeto hierárquico dirigido a Clusters. Ele aproveita as tecnologias amplamente utilizadas, tais como XML para representação de dados, XDR para compacto, transporte de dados portátil e RRDtool para o armazenamento e visualização de dados.
Ele usa as estruturas de dados e algoritmos projetados cuidadosamente para alcançar baixos custos gerais por nós e alta concorrência. A implementação é robusta e foi portada para um amplo conjunto de sistemas operacionais e arquiteturas de processadores, e está atualmente em uso em milhares de grupos em todo o mundo.
Ele tem sido usado para ligar os Clusters através de campi universitários e em todo o mundo, e pode ser escalado para lidar com grupos com 2000 nós.
Alterar o arquivo /etc/ganglia/gmod.conf no servidor e copiar para os nós. É extremamente necessário, tendo em vista que a conexão remota fica muito lenta, devido ao IP 239.2.11.71.
A parte que nos interessa alterar, está na imagem acima. Comente as linhas onde tem o IP 239.2.11.71, ou similar, e configure o host com o IP do servidor.
Altere o arquivo /etc/ganglia/gmetad.conf no servidor, deixando como na imagem acima, não sendo necessário copiar para os nós.
Para reiniciar o serviço nos nós:
# service ganglia-monitor restart
Reiniciar o Apache e o Ganglia no servidor:
# /etc/init.d/apache2 restart
# service gmetad restart
A partir daí é só digitar no navegador localhost/ganglia.
[8] Comentário enviado por adrianoh2 em 09/11/2013 - 19:45h
Material muito bom, e um excelente teste.
Pergunta: Você conseguiu fazer uma avaliação do consumo de energia com o processamento e em espera?
Seria interessante ter uma noção de quanto de energia está sendo consumida.
O legal também, é que o nobreak que você escolheu, se não me engano tem gerenciamento (horrível no linux) porém, um ponto de partida de avaliação de consumo.
Tenho um aqui do SMS, porém difícil de verificar com linux, mesmo com USB.
O aquecimento também é um baita problema com tantas máquinas... rs...
[11] Comentário enviado por Buckminster em 10/11/2013 - 17:19h
[8] Comentário enviado por adrianoh2 em 09/11/2013 - 19:45h:
Material muito bom, e um excelente teste.
Pergunta: Você conseguiu fazer uma avaliação do consumo de energia com o processamento e em espera?
Seria interessante ter uma noção de quanto de energia está sendo consumida.
O legal também, é que o nobreak que você escolheu, se não me engano tem gerenciamento (horrível no linux) porém, um ponto de partida de avaliação de consumo.
Tenho um aqui do SMS, porém difícil de verificar com linux, mesmo com USB.
O aquecimento também é um baita problema com tantas máquinas... rs...
Obrigado.
Ainda não fiz uma avaliação da energia consumida, mas pretendo fazer.
Os nobreaks não estão sendo gerenciados, por enquanto as conexões são somente físicas. Priorizei a autonomia com baterias externas.
Mas pretendo instalar um gerenciamento.
Não estou tendo problemas com aquecimento, a sala aqui é bastante ventilada e algumas máquinas tem ventoinhas extras. Como pode ver na foto, deixei um espaço entre as máquinas.
[13] Comentário enviado por Buckminster em 10/11/2013 - 17:23h
[10] Comentário enviado por albfneto em 10/11/2013 - 10:33h:
o Artigo é excelente, favoritado.
uso Modelagem Molecular na Faculdade
Obrigado Alberto.
Podemos trocar umas idéias sobre Modelagem Molecular. Faz pouco tempo que estou trabalhando com isso (um ano aproximadamente), mas estou me aprofundando nos estudos.
Resolvi postar esse artigo tendo em vista a falta de material prático em Língua Portuguesa sobre o assunto.
[16] Comentário enviado por sayrus em 10/11/2013 - 21:01h
Esse material é raro...já havia feito varias pesquisas mas sem sucesso,e o que tinha era muito velho.
Agora os caras estão fazendo com PS3 por conta do processador.
[17] Comentário enviado por Buckminster em 11/11/2013 - 18:39h
[16] Comentário enviado por sayrus em 10/11/2013 - 21:01h:
Esse material é raro...já havia feito varias pesquisas mas sem sucesso,e o que tinha era muito velho.
Agora os caras estão fazendo com PS3 por conta do processador.
[20] Comentário enviado por Buckminster em 04/12/2013 - 01:16h
Fazendo uns testes com o Siesta, identifiquei que o desempenho dele no cluster utilizando o PVFS2 é bem maior do que com NFS.
Em duas simulações iguais, uma com o PVFS2 e outra com o NFS, a diferença foi de quase 50%, ou seja, o PVFS2 terminou o trabalho quase na metade do tempo do que com o NFS.
Acredito que seja porque o volume de dados que o Siesta calcula seja grande.
Desabilitei o NFS e deixei o PVFS2 funcionando.
Porém, continuo com os testes para ter certeza, pois ainda não é conclusivo.
[21] Comentário enviado por silvafarol2 em 24/01/2014 - 15:38h
OLá, boa tarde!
está de parabéns, bom eu vou fazer o projeto final um cluster , mas ainda estou estudando esse assunto, mas no momento preciso fazer um trabalho de avaliação para montar um cluster HPC
e configurar um pequeno cluster com Linux para execução de algoritmos paralelos (por ex. O caso do Laboratório de Metrologia de Nêutrons), se puder me passar algumas dicas por onde eu começo eu agradeço...
[22] Comentário enviado por Buckminster em 24/01/2014 - 20:42h
[21] Comentário enviado por silvafarol2 em 24/01/2014 - 15:38h:
OLá, boa tarde!
está de parabéns, bom eu vou fazer o projeto final um cluster , mas ainda estou estudando esse assunto, mas no momento preciso fazer um trabalho de avaliação para montar um cluster HPC
e configurar um pequeno cluster com Linux para execução de algoritmos paralelos (por ex. O caso do Laboratório de Metrologia de Nêutrons), se puder me passar algumas dicas por onde eu começo eu agradeço...
Comece planejando o cluster (quantas máquinas terão). Depois de escolhido o hardware (as máquinas), monte o cluster fisicamente e depois instale e configure os sistemas.
Somente depois faça a escolha das bibliotecas (MPI, Lapack, Blas, etc) e essas bibliotecas devem se adequar aos programas que você irá utilizar para a execução desses algoritmos.
A escolha do hardware de rede é importantíssima (placas de rede, switch, cabos, etc), devem ser de boa qualidade. O cabeamento deve ser todo ele no mesmo padrão.
Nas referências da página 'Conclusão' do artigo estão alguns links que você pode utilizar.
Mas veja bem, as bibliotecas a serem utilizadas dependem dos programas que você irá usar no cluster.
Eu utilizo a MPICH, mas de repente para você seja mais aconselhável utilizar a OpenMPI, ou outra. Isso depende dos programas que você irá utilizar.
[24] Comentário enviado por nqk18469 em 22/02/2014 - 09:21h
Buckminster,
Valew pelo artigo. Muito Boooom !!!
Gostei mais ainda por ter sido feito com o Debian.
Faz tempo que tava querendo algo um pouco mais explicado sobre o assunto e qdo tiver um pouco mais de tempo vou tentar a instalacao na pratica. Nos ultimos meses, nem sequer tenho tido tempo de sentar na frente do computador, quanto mais pensar em algo que vai consumir um bom tempo para realizar.
Vc por caso nao teria alguma referencia de leitura (preferencialmente disponivel na internet) para instalar os nodes sem os HDs (diskless) ?
Tava planejando algo com 6 a 12 Xeons L5420.
Bem... como eh algo que sempre quis tentar montar,
pode ser que demore um pouco... mas um dia concluo... rsss
[25] Comentário enviado por Buckminster em 22/02/2014 - 11:50h
[23] Comentário enviado por Damonff em 21/02/2014 - 23:00h:
Olá,
alguém pode mim ensinar como submeter um cálculo no siesta, por exemplo, quero rodar h2o, como devo fazer?
Você deverá ter os arquivos H.psf e O.psf e o arquivo h2o.fdf (<< esse arquivo .fdf você dá o nome que quiser).
Coloque esses arquivos dentro de uma pasta de sua escolha (crie uma pasta chamada h2o, por exemplo), sendo que esta pasta deverá ter somente os três arquivos citados.
Entre na pasta h2o e digite um comando similar a esse:
# /opt/siesta < h2o.fdf | tee h2o.out
onde /opt/siesta é o local onde você instalou o Siesta, caso você instalou em outro local mude /opt/siesta para o local certo.
No site abaixo você encontra os pseudopotenciais (pseudopotentials) do oxigênio e do hidrogênio, bem como todos os .psf da tabela periódica.
Escolha de acordo com o que você quer, LDA ou GGA:
[26] Comentário enviado por Buckminster em 22/02/2014 - 12:01h
[24] Comentário enviado por nqk18469 em 22/02/2014 - 09:21h:
Buckminster,
Valew pelo artigo. Muito Boooom !!!
Gostei mais ainda por ter sido feito com o Debian.
Faz tempo que tava querendo algo um pouco mais explicado sobre o assunto e qdo tiver um pouco mais de tempo vou tentar a instalacao na pratica. Nos ultimos meses, nem sequer tenho tido tempo de sentar na frente do computador, quanto mais pensar em algo que vai consumir um bom tempo para realizar.
Vc por caso nao teria alguma referencia de leitura (preferencialmente disponivel na internet) para instalar os nodes sem os HDs (diskless) ?
Tava planejando algo com 6 a 12 Xeons L5420.
Bem... como eh algo que sempre quis tentar montar,
pode ser que demore um pouco... mas um dia concluo... rsss
Muito obrigado pelos links.
Dei uma olhada por cima no conteudo dos 2 pimeiros links e ja baixei o .pdf para ir lendo no tablet.
Infelizmente estou de mudanca e meus atuais horarios no trabalho tambem nao ajudam e quaquer tentativa de montagem, principalmente no que tange ao cabeamente, teria que ser toda refeita.
Assim que possivel o inicio do projeto, apareco para dar informacoes sobre o andamento das coisas.
[29] Comentário enviado por Buckminster em 31/03/2014 - 08:55h
[28] Comentário enviado por rudregues em 31/03/2014 - 01:00h:
Primeiramente meus parabéns por este excelente artigo!
- Vamos às dúvidas:
Na prática, como é feita a conexão física dos cabos?
Eu conecto o servidor num roteador e conecto os nós nesse roteador?
Conecta o servidor e os nós em um switch, independentemente de internet ou não.
Se quiser internet no cluster veja a página 2 do artigo: "Foi conectado um cabo direto do modem/roteador à porta 1 do Switch para prover Internet ao cluster. Nas outras portas foram conectadas as máquinas (servidor e nós)."
Caso você queira mais segurança, pode conectar o servidor no roteador em uma placa de rede e a outra placa de rede do servidor em um switch para fazer a conexão com os nós. Nesse caso você deverá ter obrigatoriamente um firewall bem configurado no servidor, pois a internet passará por ele. Além do que, nesse caso teu servidor deverá ser uma máquina boa. Com essa configuração você poderá ter acesso externo ao cluster.
[30] Comentário enviado por rudregues em 31/03/2014 - 09:47h
Certo. Outra dúvida:
- Vou construir o cluster para resolver uma implementação do algoritmo de Eliminação de Gauss. Então pelo que entendi o pacote "SIESTA" e o "Gromacs" não são necessários pra mim, certo?
Veja bem, as pastas colocadas ali serão as pastas a serem compartilhadas pelo servidor com as outras máquinas do cluster. Então, todo e qualquer arquivo que deverá ser utilizado pelo cluster durante a execução de um programa deve ser colocado nesta mesma pasta.
1) O que você quis dizer com "Deve ir o endereço de rede"? Eu devo acrescentar outra coisa além?
2) E no caso dessas pastas que precisam conter os arquivos usados pelo cluster, o programa que vou usar ele pede um arquivo de texto de entrada com valores de uma matriz, nesse caso eu tenho que colocar esse arquivo nessas três pastas do servidor apenas ou em todos os nós também?
EDIT: 3) Para o meu objetivo, o Gromacs e o SIESTA não são necessários, tem algum outro que não seja essencial?
[31] Comentário enviado por Buckminster em 31/03/2014 - 10:11h
Se você for trabalhar somente com eliminação de Gauss, o SIESTA e o Gromacs não são necessários. Tem uma ou duas bibliotecas que não são necessárias também, mas instale todas como está no artigo, não irá prejudicar. Se futuramente você for usar algum programa de modelagem ou simulação computacional já estará pronto. O HPL também não é necessário, a não ser que você queria fazer testes de desempenho.
Você irá implementar um algoritmo específico de eliminação de Gauss em qual linguagem?
Ou você irá usar o Matlab?
Deve ir o endereço da rede, o exemplo do artigo está 192.168.1.0/24 (o endereço da rede geralmente termina em zero [0] seguido da máscara da rede [24]). Isso significa que as pastas serão compartilhadas por toda a rede do cluster.
As pastas ali colocadas são da sua escolha. Essas pastas é que serão compartilhadas entre si pelas máquinas do cluster.
E não precisa colocar o arquivo nas 3 pastas, colocando em uma é o suficiente.
Se quiser pode compartilhar somente uma pasta à sua escolha, daí o arquivo /etc/exports terá somente uma linha com um caminho de pasta e no /etc/fstab dos nós deverá acrescentar o mesmo caminho com a mesma pasta somente mudando o endereço de rede pelo IP do servidor como está no artigo.
A princípio, com o NFS ou o PVFS2 bem configurado você pode instalar os programas somente no servidor e colocar o arquivo da matriz somente no servidor.
Porém, dependendo do modo de execução do programa você deverá colocar nos nós também esse arquivo com a matriz.
Por exemplo, com o SIESTA eu tenho que colocar os arquivos de entrada em todas as máquinas (servidor e nós), porém, o programa está instalado somente no servidor.
Teste aí com o algoritmo e o arquivo de entrada com a matriz somente no servidor. Caso não der certo, coloque o arquivo nos nós também, tendo o cuidado de colocar com o mesmo nome e no mesmo caminho na mesma pasta em todas as máquinas.
Como último recurso, se não funcionar, instale o algoritmo em todas as máquinas (servidor e nós).
[32] Comentário enviado por rudregues em 31/03/2014 - 10:49h
Obrigado por tirar essas dúvidas!
Então, o algoritmo é em C mesmo. Peguei dois algoritmos prontos na internet. O primeiro não lembro o link, mas o código fonte está aí:
/*
********************************************************************
Example 26 (gauss_elimination.c)
Objective : To solve the system of Linear Equations
using Gaussian Elimination without
pivoting on 'p' processors.
Input : Read files (mdatgaus.inp) for Matrix A
and (vdatgaus.inp) for Vector b
Output : The solution of matrix system of linear
equations Ax=b on processor 0.
Description : Input matrix is stored in n by n format.
Columnwise cyclic distribution of input
matrix is used for partitioning of the
matrix.
Necessary conditions : Number of Processes should be less than
or equal to 8.Matrix size for Matrix A
and vector size for vector b should be
equally striped, that is Matrix size and
Vector Size should be divisible by Number
of processes used.
if(NoofRows != NoofCols) {
MPI_Finalize();
if(MyRank == 0){
printf("Input Matrix Should Be Square Matrix ..... \n");
}
exit(-1);
}
/* .... Broad cast the size of the matrix to all ....*/
MPI_Bcast(&n_size, 1, MPI_INT, 0, MPI_COMM_WORLD);
if(n_size % Numprocs != 0) {
MPI_Finalize();
if(MyRank == 0){
printf("Matrix Can not be Striped Evenly ....No of processors (p) should divide the size of the Input matrix (n)\n");
}
exit(-1);
}
NoofRows_Bloc = n_size/Numprocs;
/*......Memory of input matrix and vector on each process .....*/
ARecv = (double *) malloc (NoofRows_Bloc * n_size* sizeof(double));
BRecv = (double *) malloc (NoofRows_Bloc * sizeof(double));
/*......Scatter the Input Data to all process ......*/
MPI_Scatter (Input_A, NoofRows_Bloc * n_size, MPI_DOUBLE, ARecv, NoofRows_Bloc * n_size,
MPI_DOUBLE, 0, MPI_COMM_WORLD);
/* Receive data from all processors (i=0 to k-1) above my processor (k).... */
for(neigh_proc = 0; neigh_proc < MyRank; neigh_proc++) {
MPI_Recv(Buffer_Pivot, NoofRows_Bloc * n_size + 1 + NoofRows_Bloc, MPI_DOUBLE, neigh_proc,
neigh_proc, MPI_COMM_WORLD, &status);
for(irow = 0; irow < NoofRows_Bloc; irow++){
/* .... Buffer_Pivot[0] : locate the rank of the processor received */
/* .... Index is used to reduce the matrix to traingular matrix */
/* .... Buffer_Pivot[0] is used to determine the starting value of
pivot in each row of the matrix, on each processor */
/*....Send data to all processors below the current processors */
for (neigh_proc = MyRank+1; neigh_proc < Numprocs; neigh_proc++) {
/* ...... Rank is stored in first location of Buffer_Pivot and
this is used in reduction to triangular form ....*/
Buffer_Pivot[0] = (double) MyRank;
MPI_Send(Buffer_Pivot, NoofRows_Bloc*n_size+1+NoofRows_Bloc, MPI_DOUBLE, neigh_proc,
MyRank, MPI_COMM_WORLD);
}
/*.... Back Substitution starts from here ........*/
[33] Comentário enviado por ewerttonbd2 em 04/05/2014 - 16:39h
Parabéns pelo tutorial.
Estou com um problema. Olha se sabe qual o erro.
root@servidor:/usr/src/pvfs-2.8.2# /opt/pvfs2/bin/pvfs2-ping -m /mnt/pvfs2
/opt/pvfs2/bin/pvfs2-ping: error while loading shared libraries: libpvfs2.so: cannot open shared object file: No such file or directory
[34] Comentário enviado por Buckminster em 20/05/2014 - 14:48h
[33] Comentário enviado por ewerttonbd2 em 04/05/2014 - 16:39h:
Parabéns pelo tutorial.
Estou com um problema. Olha se sabe qual o erro.
root@servidor:/usr/src/pvfs-2.8.2# /opt/pvfs2/bin/pvfs2-ping -m /mnt/pvfs2
/opt/pvfs2/bin/pvfs2-ping: error while loading shared libraries: libpvfs2.so: cannot open shared object file: No such file or directory
segui os passos e nao sei oque pode ser isso.
/opt/pvfs2/bin/pvfs2-ping: error while loading shared libraries: libpvfs2.so: cannot open shared object file: No such file or directory
/opt/pvfs2/bin/pvfs2-ping: erro ao rodar a biblioteca compartilhada: libpvfs2.so: a biblioteca não pode ser aberta: não foi encontrado o arquivo ou diretório.
Se o sistema usado for o Debian do artigo execute:
# updatedb
# locate libpvfs2.so
e veja se a biblioteca existe. Se o comando não encontrar a biblioteca reveja os passos.
[36] Comentário enviado por henriqueuclides em 28/05/2014 - 14:51h
primeiramente obrigado pelo artigo, gostei muito
mas estou com um problema, quero fazer esse cluster semelhante ao seu, e estou com problema pra rodar programas proprietarios, o problema esta na hora de executar algum deles nas maquinas como user, fiz a instalação como su e dei todas as permissoes pro user poder executar o programa, mas mesmo assim diz que nao tenho permissoes. Esse mesmo procedimento funciona pra OpenSuse e Ubuntu, mas para Debian nao.
[38] Comentário enviado por Buckminster em 28/05/2014 - 20:25h
[36] Comentário enviado por henriqueuclides em 28/05/2014 - 14:51h:
primeiramente obrigado pelo artigo, gostei muito
mas estou com um problema, quero fazer esse cluster semelhante ao seu, e estou com problema pra rodar programas proprietarios, o problema esta na hora de executar algum deles nas maquinas como user, fiz a instalação como su e dei todas as permissoes pro user poder executar o programa, mas mesmo assim diz que nao tenho permissoes. Esse mesmo procedimento funciona pra OpenSuse e Ubuntu, mas para Debian nao.
Obrigado.
Mas não entendi tua dúvida.
Você está com dificuldades de instalar e rodar os programas proprietários?
Quais programas são esses?
Qual procedimento funciona para OpenSuse e Ubuntu e para Debian não ?
[39] Comentário enviado por henriqueuclides em 30/05/2014 - 13:41h
estamos instalando o GAUSSIAN09 e o MOLPRO em maquinas com Debian como super usuario, na instalação damos permissão para o usuario tambem poder executar esses programas, definimos o caminho no .profile do usuario, mas quando entramos como usuario diz que nao temos permissão.
[41] Comentário enviado por Buckminster em 23/06/2014 - 21:52h
[39] Comentário enviado por henriqueuclides em 30/05/2014 - 13:41h:
estamos instalando o GAUSSIAN09 e o MOLPRO em maquinas com Debian como super usuario, na instalação damos permissão para o usuario tambem poder executar esses programas, definimos o caminho no .profile do usuario, mas quando entramos como usuario diz que nao temos permissão.
Provavelmente faltou alguma pasta à qual tu deve dar permissão.
Dê permissão recursivamente.
Tu instalou pelo apt-get ou compilou os programas?
[47] Comentário enviado por Buckminster em 11/09/2014 - 12:37h
[45] Comentário enviado por ewerttonbd2 em 09/09/2014 - 12:07h:
Na parte do pvfs2, esse erro aparece, alguem saber o motivo?
Testando:
# /opt/pvfs2/bin/pvfs2-ping -m /mnt/pvfs2
(3) Initializing each file system found in tab file: /etc/fstab...
PVFS2 servers: tcp://servidor:3334
Storage name: pvfs2-fs
Local mount point: /mnt/pvfs2
[E 12:03:13.439542] Error: BMI_sockio_connect_sock: (servidoor):: Unknown host
[E 12:03:13.439631] Send immediately failed: Unknown host
[E 12:03:13.439754] Warning: msgpair failed to tcp://no01:3334, will retry: Connection refused
[E 12:03:13.439774] Warning: msgpair failed to tcp://no02:3334, will retry: Connection refused
[E 12:03:13.439788] Warning: msgpair failed to tcp://no03:3334, will retry: Connection refused
[E 12:03:13.439802] Warning: msgpair failed to tcp://no04:3334, will retry: Connection refused
[E 12:03:13.439815] Warning: msgpair failed to tcp://servidoor:3334, will retry: Unknown host
/mnt/pvfs2: Ok
Provavelmente tu errou o nome de alguma máquina em algum arquivo (hosts, fstab, etc).
Veja a mensagem: Unknown host << host desconhecido.
Verifique os arquivos. Provavelmente é no servidor (tcp://servidoor:3334, will retry: Unknown host << tem dois 'os' na palavra servidor... é assim mesmo? Se for assim tenha o cuidado para estar igual em todos os arquivos).
[48] Comentário enviado por cicerocarlos em 13/11/2014 - 01:32h
Prezado
Tenho um cluster com suse server para processamento compartilhado, entretanto, para análise que precisa de memória ram não ocorre compartilhamento de mémoria ram, sendo usada somente a memória do nó de execução do programa (velvet). Existe como configurar para compartilhar memória?
Att,
Cícero
[49] Comentário enviado por Buckminster em 13/11/2014 - 17:48h
[48] Comentário enviado por cicerocarlos em 13/11/2014 - 01:32h:
Prezado
Tenho um cluster com suse server para processamento compartilhado, entretanto, para análise que precisa de memória ram não ocorre compartilhamento de mémoria ram, sendo usada somente a memória do nó de execução do programa (velvet). Existe como configurar para compartilhar memória?
Att,
Cícero
Qual é a biblioteca que tu utiliza? (Mpich, Openmpi, etc).
[50] Comentário enviado por cicerocarlos em 28/11/2014 - 01:17h
Estou usando a biblioteca mpich e mudei para o sistema ubuntu. O cluster fuciona muito bem, entretanto, não há compartilhamento de memória. Tenho que mudar a arquitetura do cluster ou posso configurar o mpich para compartilhar memória?
[51] Comentário enviado por buckminster em 28/11/2014 - 08:25h
[50] Comentário enviado por cicerocarlos em 28/11/2014 - 01:17h:
Estou usando a biblioteca mpich e mudei para o sistema ubuntu. O cluster fuciona muito bem, entretanto, não há compartilhamento de memória. Tenho que mudar a arquitetura do cluster ou posso configurar o mpich para compartilhar memória?
Bom, tu configurastes a Mpich com o parâmetro --enable-shared ?
Veja a página Cluster 5 do artigo.
Acredito que no teu caso seja somente executar o ./configure com as opções que tu tinhas colocado anteriormente e acrescentar --enable-shared e depois executar make e make install.
Se não for isso então é algum outro problema.
Talvez alguma configuração no Velvet. Nunca trabalhei com este programa, mas no SIESTA, por exemplo, ele tem um gerenciamento próprio de memória.
Tu instalaste o Gânglia? Com ele tu podes ver se realmente a memória está sendo compartilhada.
De que forma tu detectaste que a memória não está sendo compartilhada... usaste algum programa para isso?
[52] Comentário enviado por cicerocarlos em 28/11/2014 - 09:42h
Eu instalei o mpich usando o apt-get do ubuntu e não criei as configurações do ./configure foram realizada pelo instalador. Eu descobri que não há compartilhamento de memória usando o top e monitorando o uso de memória, entretanto, o melhor parâmetro foi calcular e verificar que o velvet só analisa os reads (leituras de DNA) quando atinge o máximo de memória ram do nó. Após usar toda a memória, o processo paralisa o nó fica extremamente lento. Tem somo configura o --enable-shared? ou teria que construir um cluster na plataforma NUMA (pacote numactl)
[54] Comentário enviado por buckminster em 18/02/2015 - 16:11h
[52] Comentário enviado por cicerocarlos em 28/11/2014 - 09:42h
Eu instalei o mpich usando o apt-get do ubuntu e não criei as configurações do ./configure foram realizada pelo instalador. Eu descobri que não há compartilhamento de memória usando o top e monitorando o uso de memória, entretanto, o melhor parâmetro foi calcular e verificar que o velvet só analisa os reads (leituras de DNA) quando atinge o máximo de memória ram do nó. Após usar toda a memória, o processo paralisa o nó fica extremamente lento. Tem somo configura o --enable-shared? ou teria que construir um cluster na plataforma NUMA (pacote numactl)
Desculpe a demora exagerada em responder.
Acredito que para configurar com o --enable-shraed tu terias que desinstalar através do apt-get e configurar e instalar o Mpich manualmente.
Quanto à plataforma NUMA (non-uniform memory access) nunca trabalhei com ela.
[58] Comentário enviado por nguiovani em 09/10/2016 - 17:28h
Por favor me ajudem !
tentei dois jeitos
antes eu testei as chaves rsa
root@servidor: ssh 192.168.1.101
root@192.168.1.101's passoword:*****
root@no01~#: exit
root@servidor:/usr/src/mpich-3.0.4/examples# mpirun 192.168.1.101 -n 7 /usr/src/mpich-3.0.4/examples/cpi
[proxy:0:0@servidor] HYDU_create_process (./utils/launch/launch.c:75): execvp error on file root@192.168.1.101 (No such file or directory)
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 255
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[59] Comentário enviado por Buckminster em 29/11/2016 - 14:39h
[58] Comentário enviado por nguiovani em 09/10/2016 - 17:28h
Por favor me ajudem !
tentei dois jeitos
antes eu testei as chaves rsa
root@servidor: ssh 192.168.1.101
root@192.168.1.101's passoword:*****
root@no01~#: exit
root@servidor:/usr/src/mpich-3.0.4/examples# mpirun 192.168.1.101 -n 7 /usr/src/mpich-3.0.4/examples/cpi
[proxy:0:0@servidor] HYDU_create_process (./utils/launch/launch.c:75): execvp error on file root@192.168.1.101 (No such file or directory)
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 255
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[60] Comentário enviado por schileider em 02/12/2016 - 23:45h
Olá Buckminster!
Parabéns pelo material, estou fazendo alguns testes, porém surgir esse erro abaixo, o arquivo está certo?
# vim /etc/bash.bashrc
# this file has to be sourced in /etc/profile.
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
fi
Está apresentando o erro abaixo:
-bash: $'\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240mkdir': comando não encontrado
-bash: /dev/cgroup/cpu/user/2395/tasks: Arquivo ou diretório não encontrado
[61] Comentário enviado por Buckminster em 09/03/2024 - 11:40h
[60] Comentário enviado por schileider em 02/12/2016 - 23:45h
Olá Buckminster!
Parabéns pelo material, estou fazendo alguns testes, porém surgir esse erro abaixo, o arquivo está certo?
# vim /etc/bash.bashrc
# this file has to be sourced in /etc/profile.
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
fi
Está apresentando o erro abaixo:
-bash: $'\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240mkdir': comando não encontrado
-bash: /dev/cgroup/cpu/user/2395/tasks: Arquivo ou diretório não encontrado
Provavelmente faltou a etapa anterior:
Criar o arquivo:
# vim /usr/local/sbin/cgroup_clean
Colocar o conteúdo:
#!/bin/sh
if [ "$1" != "/user" -a "$1" != "/user/" ]; then
rmdir /dev/cgroup/cpu$1
fi