Introduction: Dragonboard Cluster
- 2 ou mais Dragonboards
2 ou mais cartoes SD
Um roteador
Step 1: Instalacao Do MPICH
Antes da instalação do MPICH, você ira precisar do Fortran:
sudo apt install gfortran
MPICH precisa de três diferentes pastas:
- A primeira para fazer download e extrair o código fonte
- A segunda para compilar o código
- A terceira servira para o caminho da instalação.
Sendo assim, podemos crias as pastas assim:
- sudo mkdir /opt/mpi
- sudo mkdir /opt/mpi-dl
- sudo mkdir /opt/mpi-build
Acesse a pasta de download:
- cd /opt/mpi-dl
Faca o download do MPICH diretamente do site oficial do MPICH, por exemplo:
Mude para algum link com versão mais recente caso exista.
Extraia os arquivos necessários:
- tar zxvf mpich-3.3.tar.gz
Acesse a pasta de compilação:
- cd /opt/mpi-build
Rode o processo de configuração:
- sudo /opt/mpi-dl/mpich-3.3/configure --prefix=/opt/mpi
Isso pode demorar alguns minutos, entao seja paciente...
Use o make para compilar:
- sudo make
Isso pode demorar um pouco... Então, pode ir jogar uma partida de Fortnite, depois volte e veja se tudo ocorreu ok.
Finalmente, você pode instalar com:
- sudo make install
Quando finalizado, cheque se tudo esta correto com esse comando:
- /opt/mpi/bin/mpiexec -n 1 date
Step 2: Instalacao Do MPI4PY
Instale algumas dependências com:
sudo apt install python-pip python-dev libopenmpi-dev
Instale o MPI4PY com o pip:
sudo pip install mpi4py
Crie um arquivo teste em python, por exemplo:
- cd /home/linaro
- nano test.py
E digite uma linha de código para testar:
- print("Quero passar em SD")
Teste se o seu codigo esta rodando:
- python test.py
Agora, teste o codigo com o MPI:
/opt/mpi/bin/mpiexec -n 4 python test.py
Isso serve apenas para testar o sistema, e deve imprimir a frase "Quero passar em SD" 4 vezes
Step 3: Duplique Esse Cartao SD
- Remova o cartão SD da Dragonboard e coloque em um computador Windows.
- Duplique esse cartão como uma imagem, para isso você pode utilizar o https://sourceforge.net/projects/win32diskimager/
- Remova o cartão do PC e insira um vazio, grave nele a imagem salva no ultimo item. Faca isso para todos os cartões SD que você ira utilizar.
Pronto, passo feito! Vamos para o proximo.
Step 4: Inicie E Conecte Todas As Dragonboards
- Coloque os cartoes SD em cada Dragonboard e as ligue, lembre de conectar cada uma na mesma rede
- Entre na Dragonboard principal (o nó mestre) por SSH
- Descubra os ips das outras dragonboards com o comando:
- nmap -sP 192.168.1.* | grep master
Agora voce deve ter todos os ips dos outros nos listados, iremos salvar eles em um arquivo:
- cd /home/linaro
- nano nodesips
Escreva agora os ips listados acima, no meu caso, são:
192.168.1.15
192.168.1.16
192.168.1.17
192.168.1.18
A partir do nó mestre, acesse cada uma das Dragonboards e mude o hostname delas:
- ssh linaro@192.168.1.18
Mude para o ip de cada dragonboard, responda yes para cada uma e insira a senha do SSH - Entre nas opcoes de rede e mude o hostname para, por exemplo No1, No2, etc...
- Saia do ssh com: exit
No nó mestre, crie uma chave SSH:
ssh-keygen -t rsa
Para cada nó, copie essa chave com:
scp /home/linaro/.ssh/id_rsa.pub pi@192.168.1.18:/home/pi/master.pub
Lembre de mudar o ip para cada nó!
Acesse cada nó e salve essa chave como uma chave autorizada:
- ssh linaro@192.168.1.18
- cat master.pub >> .ssh/authorized_keys exit
Pronto! Seu cluster está pronto e configurado.
Step 5: Teste Seu Cluster
Execute o comando:
/opt/mpi/bin/mpiexec -f nodesips -n 2 hostname
Mude 2 para o numero de nós que você possui.
Para testar o código python que criamos mais cedo, podemos executar:
/opt/mpi/bin/mpiexec -f nodesips -n 2 python test.py
Novamente, troque 2 pelo numero de nós que você possui!
Pronto, tudo certo!