Índice:

DEMAC, um cluster modular Beowulf impresso em 3D: 23 etapas (com imagens)
DEMAC, um cluster modular Beowulf impresso em 3D: 23 etapas (com imagens)

Vídeo: DEMAC, um cluster modular Beowulf impresso em 3D: 23 etapas (com imagens)

Vídeo: DEMAC, um cluster modular Beowulf impresso em 3D: 23 etapas (com imagens)
Vídeo: Demag KBK Hängekrane | Modular und flexibel 2024, Novembro
Anonim
DEMAC, um cluster modular Beowulf impresso em 3D
DEMAC, um cluster modular Beowulf impresso em 3D

High Performance Computation (HPC) é a capacidade de processar dados e realizar cálculos complexos em altas velocidades, é a aplicação de "Supercomputadores" para problemas computacionais que são muito grandes para computadores padrão ou demorariam muito para serem concluídos. O Top500 é uma lista publicada duas vezes por ano e classifica alguns dos computadores mais rápidos e poderosos do mundo. Países e grandes organizações gastam milhões em recursos para ter esses sistemas funcionando e permitindo que os cientistas aproveitem a tecnologia de ponta e resolvam problemas complexos.

Anos atrás, os computadores costumavam melhorar seu desempenho aumentando a velocidade do processador. Depois que enfrentamos uma desaceleração nesse tipo de abordagem, os desenvolvedores decidiram que, para continuar aumentando o desempenho dos computadores, vários núcleos (ou unidades computacionais) deveriam ser agrupados. A agregação de múltiplos recursos computacionais e os mecanismos para controlar esses recursos é o que chamamos de "paralelismo" em ciência da computação. Ter vários núcleos fazendo várias tarefas parece uma boa abordagem para melhorar o desempenho de um computador … mas, isso abre uma grande questão: como podemos usar esses recursos de forma mais eficiente?

Essas questões têm mantido os cientistas da computação ocupados, há várias maneiras de dizer a um computador como fazer as coisas, há ainda mais maneiras de dizer a vários computadores como fazer as coisas. Este projeto visa desenvolver uma plataforma acessível onde todos podem experimentar uma máquina altamente paralela, testar modelos existentes para aplicar em seus próprios projetos, desenvolver formas novas e criativas de resolver problemas computacionais ou apenas usá-lo como uma forma de ensinar outros sobre computadores. Esperamos que você goste de trabalhar com a DEMAC tanto quanto nós.

DEMAC

O Delaware Modular Assembly Cluster (DEMAC) é uma matriz extensível de sistemas embarcados (computadores do tamanho de um cartão) e um conjunto de quadros impressos em 3D para envolver as placas e hardware adicional que fornece energia, resfriamento e acesso à rede.

Cada dispositivo ou sistema embarcado é um pequeno computador, uma Parallella Board que combina os recursos de um processador ARM dual core, um coprocessador de 16 núcleos chamado Epiphany e um FPGA embutido com a flexibilidade de uma pilha open-source completa. A montagem é uma moldura impressa em 3D feita em casa que permite uma implementação de baixo custo e uma estrutura escalável. Ele é projetado para acomodar 4 unidades de um rack de tamanho padrão (como aqueles que você encontra em salas de servidores de computador).

Este instrutível inclui:

- Uma lista de materiais necessários

- Instruções para imprimir os frames em 3D

- Instruções para montar e conectar as peças

- Um guia para baixar e instalar o software necessário

- Uma descrição de como conectar e interagir com o cluster

- A "Por que estamos fazendo isso?" seção

Quem somos nós?

Somos o CAPSL (Computer Architecture and Parallel Laboratory), da University of Delaware. Acreditamos que o futuro da computação deve ter uma base sólida na teoria do Dataflow (que explicaremos mais tarde neste manual, se você estiver interessado).

Suprimentos

Esta lista descreve os materiais necessários para construir um cluster de 4 placas

- 4 placas Parallella (você pode obtê-las com a DigiKey ou outros fornecedores, você pode encontrar mais informações no site

- 4 cartões micro-SD com pelo menos 16 Gb (aqui está um pacote de 10 muito barato ou algo como esses combos mais flexíveis)

- 4 cabos micro-USB com comprimento mínimo de 30 cm (1 pé) (eu recomendo estes)

- Carregador USB [com pelo menos 4 portas tipo A] (eu recomendo este com 6 portas, ou um com o mesmo formato, já que a caixa de alimentação foi projetada para isso)

- Ventilador de resfriamento [tamanho máximo 100 mm x 100 mm x 15 mm] (eu recomendo este porque é barato e funciona, mas outros com tamanho e configuração de cabo semelhantes funcionam)

- Fonte de alimentação para ventoinha de resfriamento (Se sua configuração for para mais de 8 placas, eu recomendo esta ou algo semelhante [AC 100 V / 240 V a DC 12 V 10 A 120 W] que tem uma bela caixa de metal e também pode ser acoplada para a chave) (Se você for conectar apenas duas ventoinhas ou menos, você pode usar qualquer 12 V com pelo menos 1 A de saída de fonte de alimentação que você possa ter por aí)

- 5 cabos Ethernet (4 podem ser curtos como estes, dependendo da distância do switch às placas, e um deve ser longo o suficiente para conectar o switch ao seu computador ou ao modem para acessar a rede do cluster)

>> Nota importante: É necessário um sistema de resfriamento, caso contrário, as placas podem superaquecer! <<<

Peças impressas em 3D

- 4 bandejas de placa (Frame_01)

- 1 Caixa da Placa (Frame_02)

- 1 compartimento do ventilador (Frame_03_B e Frame_03_T)

- 1 Caixa de energia (Frame_04)

Etapa 1: Sobre DEMAC

Sobre DEMAC
Sobre DEMAC

DEMAC é parte de um quadro maior, uma plataforma flexível e escalável que nos permite desenvolver e testar novos modelos de execução de programação (PXM) para computação paralela. Um PXM é mais do que uma forma de descrever a computação, ele representa o backbone que fornece um acordo entre a forma como um programa é expresso e como ele é traduzido para uma linguagem comum que pode ser executada pela máquina. Descrevemos um conjunto de elementos que permite ao usuário gerar programas e uma forma de organizar a execução do programa. O programa pode ser otimizado para atingir uma arquitetura específica pelo usuário ou uma ferramenta automatizada com base neste histórico comum.

Você pode saber mais sobre este projeto no final deste instrutível, você também pode clicar aqui para obter mais informações sobre o DEMAC ou aqui para obter mais informações sobre CAPSL)

Etapa 2: Impressão 3D DEMAC

Impressão 3D DEMAC!
Impressão 3D DEMAC!
Impressão 3D DEMAC!
Impressão 3D DEMAC!
Impressão 3D DEMAC!
Impressão 3D DEMAC!

Nesta seção, você pode encontrar um guia para imprimir em 3D os quadros que envolvem os outros componentes e fornecem suporte estrutural. Mesmo se você for um mestre de impressão 3D, aqui estão algumas dicas que você pode considerar ao imprimir esses quadros. Todos os quadros podem ser impressos usando um bocal de 0,4 mm com altura de camada de 0,3 ou 0,2 (você também pode usar adaptativo). Imprimi tudo usando PLA, mas realmente não importa se você deseja usar outros materiais (desde que forneçam estabilidade estrutural e possam tolerar temperaturas iguais ou superiores às do PLA).

Arquivos STL:

www.thingiverse.com/thing:4493780

cults3d.com/en/3d-model/various/demac-a-mo…

www.myminifactory.com/object/3d-print-dema…

Bandeja de placa (Frame_01)

Nenhum suporte adicional necessário. Este é bastante simples, basta colocá-lo com a superfície plana voltada para a superfície de impressão.

Revestimento da placa (Frame_02)

Este pode exigir algum suporte nas vigas do meio. Você pode argumentar que uma máquina / fatiadora bem ajustada pode imprimir essas pontes sem suporte adicional. Tente alguns testes de resistência de ponte primeiro se quiser imprimir sem suportes, pois a ideia era que eles não seriam necessários. Por outro lado, as colunas laterais e paredes fornecem suporte suficiente para que sejam impressas sem estruturas de suporte adicionais.

Invólucro do ventilador (Frame_03_B e Frame_03_T)

Nenhum suporte adicional necessário. Basta colocar as duas peças com a superfície plana voltada para a superfície de impressão.

Caixa de energia (Frame_04)

Semelhante ao Frame_02, este pode exigir algum suporte nas vigas do meio. Você também pode tentar imprimir este sem material de suporte adicional (como era planejado). As colunas laterais e paredes fornecem suporte suficiente para que sejam impressas sem estruturas de suporte adicionais.

Caixa de resfriamento de saída (Frame_05_B & Frame_05_T)

Nenhum suporte adicional necessário. Basta colocar as duas peças com a superfície plana voltada para a superfície de impressão.

Etapa 3: Monte o DEMAC

Monte DEMAC!
Monte DEMAC!

Agora que você tem todas as peças necessárias, é hora de começar a montar o cluster.

Lembre-se de remover o material de suporte que você possa ter nas armações.

Etapa 4: coloque o ventilador na caixa

Coloque o ventilador no invólucro
Coloque o ventilador no invólucro
Coloque o ventilador no invólucro
Coloque o ventilador no invólucro

Simplesmente deslize o ventilador dentro do Frame_03_B (com o cabo no canto inferior direito), a parte inferior deve caber dentro das pequenas paredes curvas que prendem o ventilador no lugar.

Coloque o Frame_03_T com as pequenas paredes curvas voltadas para baixo no topo do Frame_03_B (com o ventilador já no lugar). Tenha o cuidado de colocar a tampa mais larga do Frame_03_T voltada para a face mais larga (traseira) do Frame_03_B. As armações devem clicar e as tampas devem mantê-las no lugar.

Etapa 5: Una o invólucro da placa com o invólucro de energia

Junte-se ao invólucro da placa com o invólucro de energia
Junte-se ao invólucro da placa com o invólucro de energia
Junte-se ao invólucro da placa com o invólucro de energia
Junte-se ao invólucro da placa com o invólucro de energia

Coloque Frame_02 em cima de Frame_04, esses dois são projetados para se encaixarem. Há um pequeno entalhe na parte inferior do Frame_02 que se encaixa nos conectores na parte superior do Frame_04. Aplique uma força suave para conectá-los.

Etapa 6: Instale a unidade de resfriamento

Instale a unidade de resfriamento
Instale a unidade de resfriamento

Frame_03 (B&T) são projetados para encaixar junto com Frame_02, coloque o ventilador de frente para as placas (o fluxo de ar deve ir para dentro Frame_02). Existem pequenos entalhes nas colunas do Quadro_02 que devem corresponder às marcas no Quadro_03_B. Aplique uma leve pressão nas faces laterais da estrutura até o clique das armações.

Etapa 7: coloque as placas nas bandejas de papelão

Coloque as placas nas bandejas de tabuleiro
Coloque as placas nas bandejas de tabuleiro

Frame_01 tem 4 pinos que correspondem aos orifícios na placa Parallella. A placa deve caber facilmente na bandeja. Dependendo da calibração da impressora 3D, eles podem ser grandes ou muito pequenos, você pode usar um pouco de cola de silicone líquido para mantê-los no lugar ou pressioná-los um pouco com um alicate para reduzir o diâmetro.

>> Nota importante: Lembre-se de colocar os dissipadores de calor na placa <<<

Etapa 8: deslize as bandejas da placa na caixa da placa

Deslize as bandejas da placa no revestimento da placa
Deslize as bandejas da placa no revestimento da placa

Frame_01 fornece slots que se encaixam nos trilhos Frame_02 para cada nível. Observe que há apenas um lado aberto para receber a bandeja da placa. Há também um pequeno solavanco que ajuda a manter Frame_01 no lugar (honestamente, isso poderia ser melhorado em uma versão futura).

Deslize todas as 4 bandejas de placa com as placas já no lugar, uma para cada nível.

Etapa 9: coloque a fonte de alimentação dentro da caixa de alimentação

Coloque a fonte de alimentação dentro do invólucro de alimentação
Coloque a fonte de alimentação dentro do invólucro de alimentação

Coloque a fonte de alimentação USB dentro do Frame_04 com as portas USB voltadas para fora. Há uma pequena abertura do outro lado para o cabo de alimentação que alimenta o hub.

Etapa 10: conectar o ventilador à fonte de alimentação de resfriamento

O ventilador agora deve ser conectado à fonte de alimentação de 12 V que fornece energia para a unidade de resfriamento.

>> Nota importante: Mantenha o sistema de refrigeração funcionando o tempo todo enquanto você conecta as placas à fonte de alimentação <<<

Etapa 11: configurar o sistema operacional

1. Baixe o sistema operacional recomendado (Parabuntu) aqui

Existem duas revisões dos chips (z7010 [P1600 / P1601] e z7020 [P1602 / A101040] que requerem arquivos diferentes.

Para ambas as revisões, há uma versão headless (sem interface gráfica do usuário) e uma versão que fornece suporte HDMI e uma interface gráfica do usuário)

Se você quiser usar a saída HDMI, lembre-se de obter um cabo mini HDMI.

Você pode interagir com a versão sem cabeça por meio da rede.

Mais informações e explicações detalhadas podem ser encontradas aqui no site oficial.

Aqui estão as etapas para instalar o sistema operacional usando uma distribuição baseada em Linux. Você pode usar comandos no terminal (sem o símbolo $) para as próximas etapas ou verificar outros procedimentos no site.

2. Instale

- Insira o cartão micro-SD em seu computador normal - Descompacte a imagem do Ubuntu. Altere [releasename] para o nome da imagem.

$ gunzip -d [releasename].img.gz

3. Verifique o caminho do dispositivo do seu cartão SD

O caminho exato do dispositivo para o cartão SD depende da distribuição do Linux e da configuração do computador. Use o comando abaixo para obter o caminho certo. Se não estiver claro na saída qual caminho é o correto, tente o comando com e sem o cartão SD inserido. No Ubuntu, o caminho retornado pode ser algo como ‘/ dev / mmcblk0p1’.

$ df -h

4. Desmonte o cartão SDVocê precisará desmontar todas as partições nos cartões SD antes de gravar o cartão. O [caminho da partição sd] vem do comando 'df' na etapa 3.

$ umount [caminho da partição SD]

5. Grave a imagem do disco do Ubuntu no cartão micro-SD

Grave a imagem no cartão SD usando o utilitário ‘dd’ mostrado no exemplo de comando abaixo. Tenha cuidado e certifique-se de especificar o caminho corretamente, pois este comando é irreversível e irá sobrescrever qualquer coisa no caminho! Um exemplo de comando no Ubuntu seria: ‘sudo dd bs = 4M if = my_release.img of = / dev / mmcblk0’. Seja paciente, isso pode demorar um pouco (vários minutos), dependendo do computador e do cartão SD em uso.

$ sudo dd bs = 4M if = [releasename].img of = [sd-partition-path]

6. Certifique-se de que todas as gravações no cartão SD foram concluídas

$ sync

7. Insira o cartão SD no slot de cartão SD na placa

Etapa 12: conecte a placa à fonte de alimentação

Use o cabo miniUSB para USB-A para conectar uma das placas ao hub USB. Você pode rotular as portas e cabos ou definir uma ordem para as conexões, caso precise desconectar uma placa posteriormente.

Etapa 13: Configurando o roteador

Configurando o roteador
Configurando o roteador

Se você estiver fazendo a instalação do sistema operacional sem comando enquanto estiver em uma grande rede, precisará usar um roteador e conectá-lo à Internet, às placas Parallella e ao seu computador pessoal.

Se você não conseguir se conectar ao roteador, também poderá conectar a placa diretamente ao computador usando o cabo Ethernet; este procedimento pode ser um pouco mais complicado e não seria abordado neste manual.

Depois que tudo estiver conectado, abra a interface do roteador para descobrir qual endereço IP está sendo fornecido ao seu Parallella por padrão. Procure uma guia que diz Rede. Em seguida, encontre uma seção chamada Lista de clientes DHCP. Lá você deverá ver sua placa Parallella e seu endereço IP.

Com este endereço IP, você pode conectar-se ao Parallella com SSH e configurar um endereço IP estático.

Etapa 14: Conectando ao Parallella Board com SSH

Nota: Para esta seção, [default_IP] é o endereço IP dinâmico que você encontrou na Lista de clientes DHCP.

Verifique a conexão com a placa

$ ping [default_IP]

SSH na placa pela primeira vez (a senha padrão é paralela)

$ ssh parallella @ [default_IP]

Etapa 15: Configurando a rede

- Altere o nome do host: edite / etc / nome do host

Aqui você pode atribuir qualquer nome que desejar, recomendamos o uso de NOPA ##

Onde ## identifica o número da placa (ou seja, 01, 02, …)

- Defina outros endereços IP de placas: edite / etc / hosts

Defina o endereço IP estático: adicione o texto abaixo para /etc/network/interfaces.d/eth0

#A rede primária interfaceauto eth0

iface eth0 inet estático

endereço 192.168.10.101 #IP deve estar dentro do alcance do roteador

máscara de rede 255.255.255.0

gateway 192.168.10.1 # Este deve ser o endereço do roteador

nameserver 8.8.8.8

nameserver 8.8.4.4

Depois de atribuir o IP à placa, você pode reiniciar a conexão com o comando

$ ifdown eth0; ifup eth0

ou reinicie a placa

Etapa 16: Configurando o Keygen e o acesso sem senha nas placas

Configure um par de chaves públicas privadas em cada nó (incluindo o nó principal). Faça uma pasta temporária, gere uma nova chave e torne-a uma chave autorizada e adicione todos os NOPAs aos hosts conhecidos, conforme mostrado abaixo.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

#Pressione Enter duas vezes para definir e confirmar uma senha vazia

cp id_rsa.pub authorized_keys

para i em `seq 0 24`; do j = $ (echo $ i | awk '{printf "% 02d / n", $ 0}');

ssh-keyscan NOPA $ J >> known_hosts; feito

Etapa 17: Instalando o Sshfs

- O uso de sshfs permite compartilhar arquivos entre as placas do cluster. Execute o seguinte comando:

$ sudo apt-get install -y sshfs

- Verificando / Criando Grupo de Fusíveis

Verifique se o grupo de fusíveis existe:

$ cat / etc / group | grep 'fuse'

Se o grupo existir, execute o seguinte comando

$ bash sudo usermod -a -G fusível paralela

- Se o grupo não existir, crie-o e adicione o usuário a ele

$ sudo groupadd fusível

$ sudo usermod -a -G fusível paralela

- Remova o comentário da linha user_allow_other no arquivo fuse.config

$ sudo vim /etc/fuse.conf

Etapa 18: Configurar a pasta NFS

- Modifique o arquivo / etc / fstab

$ sudo vim / etc / fstab

- Substitua o conteúdo pelo texto mostrado abaixo

# [sistema de arquivos] [ponto de montagem] [tipo] [opções]

sshfs # parallella @ NOPA01: / home / parallella / DEMAC_nfs / home / parallella / DEMAC_nfs fuse comment = sshfs, noauto, users, exec, rw, uid = 1000, gid = 1000, allow_other, reconect, transform_symlinks, BatchMode = yes, nonempty, _netdev, identityfile = / home / parallella /.ssh / id_rsa, default_permissions 0 0

Etapa 19: Conecte a placa ao switch

Coloque o switch abaixo do cluster ou em algum lugar próximo, use cabos Ethernet para conectar a placa que você já configurou ao switch. Você também pode conectar o switch e seu computador ao roteador para obter acesso ao cluster.

Você deve conseguir fazer ping e ssh na placa que agora está conectada ao switch com um IP estático.

Você também pode adicionar o IP e o nome do host ao arquivo / etc / hosts. Você poderá usar o nome do host para se conectar em vez de digitar todo o endereço IP.

Etapa 20: Repita as etapas 11 a 19 para cada placa

Siga o procedimento para configurar o SO e a rede para cada placa.

>> Nota importante: Use nomes de host e IP diferentes para cada placa! Eles devem ser exclusivos na rede! <<<

Etapa 21: Conecte os periféricos

Conecte periféricos!
Conecte periféricos!

Verifique se o ventilador está funcionando:

Certifique-se de que o ventilador está recebendo energia e o fluxo de ar está entrando na caixa da placa. A conexão deve ser estável e independente de outros elementos. Lembre-se de que as placas podem superaquecer se não forem resfriadas corretamente.

Certifique-se de que as placas estão conectadas ao switch:

Neste ponto, você deve ter configurado cada placa de forma independente. As placas também devem ser conectadas ao switch. O manual do switch deve fornecer informações que podem ser usadas para verificar se o processo de inicialização foi concluído corretamente, pode haver alguns LEDs que indicam o status.

Conecte as placas à fonte de alimentação:

Use o cabo micro-USB para USB-A para conectar cada uma das placas ao hub USB. Você pode rotular as portas ou definir um pedido, caso precise desconectar uma única placa.

Etapa 22: aplique energia

1. O ventilador deve estar funcionando.

2. As placas devem ser conectadas ao switch Ethernet.

3. Verifique se as placas estão conectadas ao hub USB.

4. Forneça energia ao hub USB.

5. Ative o DEMAC!

6. Lucro!

Etapa 23: Recursos de software

MPI (Message Passing Interface)

MPI é um protocolo de comunicação para programação de computadores paralelos. Tanto a comunicação ponto a ponto quanto a coletiva são suportadas.

www.open-mpi.org/

OpenMP (Open Multi-Processing)

A interface de programação de aplicativos (API) OpenMP (Open Multi-Processing) oferece suporte à programação de multiprocessamento de memória compartilhada em várias plataformas em C, C ++ e Fortran. Ele consiste em um conjunto de diretivas de compilador, rotinas de biblioteca e variáveis de ambiente que influenciam o comportamento em tempo de execução.

www.openmp.org/

Parallella Software

Os desenvolvedores fornecem uma pilha de software de código aberto, incluindo um SDK para fazer a interface com o acelerador.

www.parallella.org/software/

Você também pode encontrar manuais e informações mais detalhadas.

Eles também têm repositórios GitHub:

github.com/parallella

Fique à vontade para baixar e executar alguns dos exemplos, um dos meus favoritos é o jogo da vida baseado no famoso Jogo da Vida de Conway.

Isenção de responsabilidade: as definições podem ser copiadas da wikipedia

Recomendado: