Table des matières:

DEMAC, un cluster Beowulf modulaire imprimé en 3D : 23 étapes (avec photos)
DEMAC, un cluster Beowulf modulaire imprimé en 3D : 23 étapes (avec photos)

Vidéo: DEMAC, un cluster Beowulf modulaire imprimé en 3D : 23 étapes (avec photos)

Vidéo: DEMAC, un cluster Beowulf modulaire imprimé en 3D : 23 étapes (avec photos)
Vidéo: Tom Demac - Serenade 2024, Novembre
Anonim
DEMAC, un cluster Beowulf modulaire imprimé en 3D
DEMAC, un cluster Beowulf modulaire imprimé en 3D

Le calcul haute performance (HPC) est la capacité de traiter des données et d'effectuer des calculs complexes à grande vitesse, c'est l'application de « superordinateurs » à des problèmes de calcul qui sont soit trop volumineux pour les ordinateurs standard, soit trop longs à réaliser. Le Top500 est une liste publiée deux fois par an et qui classe certains des ordinateurs les plus rapides et les plus puissants au monde. Les pays et les grandes organisations dépensent des millions de ressources pour que ces systèmes soient opérationnels et que les scientifiques puissent tirer parti des technologies de pointe et résoudre des problèmes complexes.

Il y a des années, les ordinateurs avaient l'habitude d'améliorer leurs performances en augmentant la vitesse du processeur. Après avoir fait face à un ralentissement de ce type d'approche, les développeurs ont décidé que pour continuer à augmenter les performances des ordinateurs, plusieurs cœurs (ou unités de calcul) devaient être regroupés. L'agrégation de multiples ressources de calcul et les mécanismes de contrôle de ces ressources est ce que nous appelons le « parallélisme » en informatique. Avoir plusieurs cœurs effectuant plusieurs tâches semble être une bonne approche pour améliorer les performances d'un ordinateur… mais cela ouvre une grande question: comment utiliser ces ressources plus efficacement ?

Ces questions ont occupé les informaticiens, il existe plusieurs façons de dire à un ordinateur comment faire les choses, il y a encore plus de façons de dire à plusieurs ordinateurs comment faire des choses. Ce projet vise à développer une plate-forme abordable où tout le monde peut expérimenter avec une machine hautement parallèle, tester des modèles existants à appliquer dans vos propres projets, développer de nouvelles façons créatives de résoudre des problèmes de calcul ou simplement l'utiliser comme moyen d'enseigner aux autres les ordinateurs. Nous espérons que vous prendrez autant de plaisir à travailler avec DEMAC que nous.

DEMAC

Le Delaware Modular Assembly Cluster (DEMAC) est un ensemble extensible de systèmes embarqués (ordinateurs de la taille d'une carte) et un ensemble de cadres imprimés en 3D pour envelopper les cartes et le matériel supplémentaire qui fournit l'alimentation, le refroidissement et l'accès au réseau.

Chaque appareil ou système embarqué est un petit ordinateur, une carte Parallella qui combine les ressources d'un processeur ARM double cœur, un coprocesseur à 16 cœurs appelé Epiphany et un FPGA embarqué avec la flexibilité d'une pile open source complète. Le support est un cadre imprimé en 3D fait maison qui permet une mise en œuvre à faible coût et une structure évolutive. Il est conçu pour s'adapter à 4 unités d'un rack de taille standard (comme ceux que vous trouvez dans les salles de serveurs informatiques).

Cette instructable comprend:

- Une liste du matériel nécessaire

- Instructions pour imprimer les cadres en 3D

- Instructions pour assembler et connecter les pièces

- Un guide pour télécharger et installer le logiciel requis

- Une description de la façon de se connecter et d'interagir avec le cluster

- Un "Pourquoi faisons-nous cela?" section

Qui sommes nous?

Nous sommes CAPSL (Computer Architecture and Parallel Laboratory), de l'Université du Delaware. Nous pensons que l'avenir du calcul devrait avoir une base solide dans la théorie Dataflow (que nous expliquerons plus tard dans cette instructable si vous êtes intéressé).

Fournitures

Cette liste décrit les matériaux requis pour construire un cluster de 4 cartes

- 4 cartes Parallella (vous pouvez les obtenir auprès de DigiKey ou d'autres fournisseurs, vous pouvez trouver plus d'informations sur leur site Web

- 4 cartes micro-SD avec au moins 16 Go (voici un pack de 10 très bon marché ou quelque chose comme ces combos plus flexibles)

- 4 câbles micro-USB longueur min 30 cm (1 ft) (je recommande ceux-ci)

- Chargeur USB [avec au moins 4 ports de type A] (je recommande celui-ci avec 6 ports, ou un avec le même facteur de forme, puisque le boîtier d'alimentation est conçu pour cela)

- Ventilateur de refroidissement [taille max 100 mm x 100 mm x 15 mm] (je recommande celui-ci car il est bon marché et fonctionne, mais d'autres avec une taille et une configuration de câble similaires fonctionnent)

- Alimentation pour ventilateur de refroidissement (Si votre configuration est pour plus de 8 cartes, je recommande celle-ci ou quelque chose de similaire [AC 100 V/ 240 V à DC 12 V 10 A 120 W] qui a un joli boîtier en métal et peut également être attaché à l'interrupteur) (Si vous ne branchez que deux ventilateurs ou moins, vous pouvez utiliser n'importe quel 12 V avec au moins 1 A d'alimentation de sortie que vous avez peut-être qui traîne)

- 5 câbles Ethernet (4 peuvent être courts comme ceux-ci, en fonction de la distance entre le commutateur et les cartes, et un doit être suffisamment long pour connecter le commutateur à votre ordinateur ou au modem pour accéder au réseau du cluster)

>> Remarque importante: Un système de refroidissement est nécessaire, sinon les planches peuvent surchauffer ! <<<

Pièces imprimées en 3D

- 4 plateaux de planche (Frame_01)

- 1 boîtier de carte (Frame_02)

- 1 boîtier de ventilateur (Frame_03_B & Frame_03_T)

- 1 boîtier d'alimentation (Frame_04)

Étape 1: À propos de DEMAC

À propos de DEMAC
À propos de DEMAC

DEMAC fait partie d'un ensemble plus vaste, une plate-forme flexible et évolutive qui nous permet de développer et de tester de nouveaux modèles d'exécution de programmation (PXM) pour le calcul parallèle. Un PXM est plus qu'un moyen de décrire le calcul, il représente l'épine dorsale qui fournit un accord entre la façon dont un programme est exprimé et la façon dont il est traduit dans un langage commun qui peut être exécuté par la machine. Nous décrivons un ensemble d'éléments qui permet à l'utilisateur de générer des programmes et un moyen d'organiser l'exécution du programme. Le programme peut être optimisé pour cibler une architecture spécifique par l'utilisateur ou un outil automatisé basé sur ce fond commun.

Vous pouvez en savoir plus sur ce projet à la fin de cette instructable, vous pouvez également cliquer ici pour obtenir plus d'informations sur DEMAC ou ici pour obtenir plus d'informations sur CAPSL)

Étape 2: Imprimez DEMAC en 3D

Impression 3D DEMAC !
Impression 3D DEMAC !
Impression 3D DEMAC !
Impression 3D DEMAC !
Impression 3D DEMAC !
Impression 3D DEMAC !

Dans cette section, vous trouverez un guide pour imprimer en 3D les cadres qui enveloppent les autres composants et fournissent un support structurel. Même si vous êtes un maître de l'impression 3D, voici quelques conseils que vous pouvez prendre en compte lors de l'impression de ces cadres. Tous les cadres peuvent être imprimés à l'aide d'une buse de 0,4 mm avec une hauteur de couche de 0,3 ou 0,2 (vous pouvez également utiliser un adaptatif). J'ai tout imprimé avec du PLA, mais peu importe si vous souhaitez utiliser d'autres matériaux (tant qu'ils offrent une stabilité structurelle et peuvent tolérer des températures plus élevées ou égales que le PLA).

Fichiers STL:

www.thingverse.com/thing:4493780

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

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

Plateau de planche (Frame_01)

Aucun support supplémentaire requis. Celui-ci est assez simple, placez-le simplement avec la surface plane face à la surface d'impression.

Boîtier de carte (Frame_02)

Celui-ci peut nécessiter un certain support dans les poutres du milieu. Vous pouvez affirmer qu'une machine / trancheuse bien réglée peut imprimer ces ponts sans support supplémentaire. Veuillez d'abord essayer quelques tests de contrainte de pont si vous souhaitez imprimer sans supports, car l'idée était que cela n'en aurait pas besoin. D'autre part, les colonnes latérales et les parois offrent un support suffisant pour que celles-ci soient imprimées sans structures de support supplémentaires.

Boîtier de ventilateur (Frame_03_B & Frame_03_T)

Aucun support supplémentaire requis. Placez simplement les deux parties avec la surface plane face à la surface d'impression.

Boîtier d'alimentation (Frame_04)

Semblable à Frame_02, celui-ci peut nécessiter un certain support dans les poutres du milieu. Vous pouvez également essayer d'imprimer celui-ci sans support supplémentaire (comme prévu). Les colonnes latérales et les parois offrent un support suffisant pour que celles-ci soient imprimées sans structures de support supplémentaires.

Boîtier de refroidissement de sortie (Frame_05_B & Frame_05_T)

Aucun support supplémentaire requis. Placez simplement les deux parties avec la surface plane face à la surface d'impression.

Étape 3: Assemblez DEMAC

Assemblez DEMAC !
Assemblez DEMAC !

Maintenant que vous avez toutes les pièces nécessaires, il est temps de commencer à assembler le cluster.

N'oubliez pas de retirer le matériel de support que vous pourriez avoir sur les cadres.

Étape 4: placez le ventilateur sur le boîtier

Placez le ventilateur sur le boîtier
Placez le ventilateur sur le boîtier
Placez le ventilateur sur le boîtier
Placez le ventilateur sur le boîtier

Faites simplement glisser le ventilateur à l'intérieur du Frame_03_B (avec le câble dans le coin inférieur droit), la partie inférieure doit s'adapter à l'intérieur des petites parois incurvées qui maintiennent le ventilateur en place.

Placez Frame_03_T avec les petits murs incurvés vers le bas sur Frame_03_B (avec le ventilateur déjà en place). Veillez à placer le couvercle le plus large du Frame_03_T face à la face la plus large (arrière) du Frame_03_B. Les cadres doivent cliquer et les couvercles doivent les maintenir en place.

Étape 5: Joindre le boîtier de la carte avec le boîtier d'alimentation

Rejoignez le boîtier de carte avec le boîtier de puissance
Rejoignez le boîtier de carte avec le boîtier de puissance
Rejoignez le boîtier de carte avec le boîtier de puissance
Rejoignez le boîtier de carte avec le boîtier de puissance

Placez Frame_02 au-dessus de Frame_04, ces deux sont conçus pour s'emboîter. Il y a une petite bosse sur la partie inférieure de Frame_02 qui s'adapte aux connecteurs sur le dessus de Frame_04. Appliquez une force douce pour les connecter.

Étape 6: Installer l'unité de refroidissement

Installer l'unité de refroidissement
Installer l'unité de refroidissement

Frame_03 (B&T) sont conçus pour s'emboîter avec Frame_02, placez le ventilateur face aux planches (le flux d'air doit aller vers l'intérieur Frame_02). Il y a de petites bosses sur les colonnes de Frame_02 qui devraient correspondre aux marques de Frame_03_B. Appliquer une légère pression sur les faces latérales de la structure jusqu'à ce que les cadres s'enclenchent.

Étape 7: placez les planches sur les plateaux de planches

Placer les planches sur les plateaux de planches
Placer les planches sur les plateaux de planches

Frame_01 a 4 broches qui correspondent aux trous de la carte Parallella. La planche doit s'insérer facilement dans le plateau. Selon le calibrage de votre imprimante 3D, ils peuvent être trop gros ou trop petits, vous pouvez utiliser un peu de colle silicone liquide pour les maintenir en place ou les presser un peu avec une pince pour réduire le diamètre.

>> Remarque importante: n'oubliez pas de placer les dissipateurs thermiques sur la carte <<<

Étape 8: Faites glisser les plateaux de la carte dans le boîtier de la carte

Faites glisser les plateaux du tableau dans le boîtier du tableau
Faites glisser les plateaux du tableau dans le boîtier du tableau

Frame_01 fournit des emplacements qui s'insèrent dans les rails Frame_02 pour chaque niveau. Notez qu'il n'y a qu'un seul côté ouvert pour recevoir le plateau de la carte. Il y a aussi une petite bosse qui aide à garder Frame_01 en place (honnêtement, ceux-ci pourraient être améliorés dans une future version).

Faites glisser les 4 plateaux de planches avec les planches déjà en place, 1 par niveau.

Étape 9: placez le bloc d'alimentation à l'intérieur du boîtier d'alimentation

Placez l'alimentation à l'intérieur du boîtier d'alimentation
Placez l'alimentation à l'intérieur du boîtier d'alimentation

Placez l'alimentation USB à l'intérieur du Frame_04 avec les ports USB orientés vers l'extérieur. Il y a une petite ouverture de l'autre côté pour le câble d'alimentation qui alimente le hub.

Étape 10: connectez le ventilateur à l'alimentation de refroidissement

Le ventilateur doit maintenant être connecté à l'alimentation 12 V qui fournit de l'énergie à l'unité de refroidissement.

>> Remarque importante: laissez le système de refroidissement fonctionner en permanence pendant que les cartes sont connectées à l'alimentation électrique <<<

Étape 11: Configurer le système d'exploitation

1. Téléchargez le système d'exploitation recommandé (Parabuntu) ici

Il existe deux révisions des puces (z7010 [P1600/P1601] et z7020 [P1602/A101040] qui nécessitent des fichiers différents.

Pour les deux révisions, il existe une version sans tête (pas d'interface utilisateur graphique) et une version qui fournit un support HDMI et une interface utilisateur graphique)

Si vous souhaitez utiliser la sortie HDMI, pensez à vous procurer un câble mini-HDMI.

Vous pouvez vous connecter à la version sans tête via le réseau.

Plus d'informations et des explications détaillées peuvent être trouvées ici sur le site officiel.

Voici les étapes pour installer le système d'exploitation à l'aide d'une distribution basée sur Linux. Vous pouvez utiliser des commandes dans le terminal (sans le symbole $) pour les étapes suivantes ou vérifier d'autres procédures sur le site Web.

2. Installer

- Insérez la carte micro-SD dans votre ordinateur habituel - Décompressez l'image Ubuntu. Changez [releasename] pour le nom de l'image.

$ gunzip -d [nom de la version].img.gz

3. Vérifiez le chemin de périphérique de votre carte SD

Le chemin exact du périphérique vers votre carte SD dépend de votre distribution Linux et de la configuration de votre ordinateur. Utilisez la commande ci-dessous pour obtenir le bon chemin. S'il n'est pas clair à partir de la sortie quel chemin est le bon, essayez la commande avec et sans la carte SD insérée. Dans Ubuntu, le chemin renvoyé peut être quelque chose comme « /dev/mmcblk0p1 ».

$ df -h

4. Démontez la carte SD Vous devrez démonter toutes les partitions sur les cartes SD avant de graver la carte. Le [sd-partition-path] provient de la commande 'df' de l'étape 3.

$ umount [sd-partition-path]

5. Gravez l'image disque Ubuntu sur la carte micro-SD

Gravez l'image sur la carte SD à l'aide de l'utilitaire « dd » illustré dans l'exemple de commande ci-dessous. Soyez prudent et assurez-vous de spécifier correctement le chemin car cette commande est irréversible et écrasera tout ce qui se trouve dans le chemin ! Un exemple de commande dans Ubuntu serait: « sudo dd bs=4M if=my_release.img of=/dev/mmcblk0 ». Soyez patient, cela peut prendre un certain temps (plusieurs minutes) selon l'ordinateur et la carte SD utilisés.

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

6. Assurez-vous que toutes les écritures sur la carte SD sont terminées

$ synchronisation

7. Insérez la carte SD dans la fente pour carte SD de la carte

Étape 12: Connectez la carte à l'alimentation

Utilisez le câble miniUSB vers USB-A pour connecter l'une des cartes au concentrateur USB. Vous pouvez étiqueter les ports et les câbles ou définir un ordre pour les connexions au cas où vous auriez besoin de déconnecter une carte plus tard.

Étape 13: Configuration du routeur

Configuration du routeur
Configuration du routeur

Si vous effectuez l'installation du système d'exploitation sans tête alors que vous êtes sur un grand réseau, vous devrez utiliser un routeur et le connecter à Internet, aux cartes Parallella et à votre ordinateur personnel.

Si vous ne parvenez pas à vous connecter au routeur, vous pouvez également connecter la carte directement à votre ordinateur à l'aide du câble Ethernet, cette procédure peut être un peu plus délicate et ne serait pas couverte dans ce instructable.

Une fois que tout est connecté, ouvrez l'interface de votre routeur pour savoir quelle adresse IP est donnée à votre Parallella par défaut. Recherchez un onglet indiquant Réseau. Recherchez ensuite une section intitulée Liste des clients DHCP. Là, vous devriez voir votre carte Parallella et son adresse IP.

Avec cette adresse IP, vous pouvez vous connecter en SSH à Parallella et configurer une adresse IP statique.

Étape 14: Connexion à Parallella Board avec SSH

Remarque: pour cette section, [default_IP] est l'adresse IP dynamique que vous avez trouvée dans la liste des clients DHCP.

Vérifier la connexion à la carte

$ ping [default_IP]

SSH dans la carte pour la première fois (le mot de passe par défaut est parallella)

$ ssh parallella@[default_IP]

Étape 15: Configuration du réseau

- Changer de nom d'hôte: éditer /etc/hostname

Ici, vous pouvez attribuer n'importe quel nom, nous vous recommandons d'utiliser NOPA##

Où ## identifie le numéro de carte (c'est-à-dire 01, 02, …)

- Définir d'autres adresses IP de cartes: éditer /etc/hosts

Définir l'adresse IP statique: ajoutez le texte ci-dessous pour /etc/network/interfaces.d/eth0

#L'interface réseau principaleauto eth0

iface eth0 inet statique

l'adresse 192.168.10.101 #IP doit être à portée du routeur

masque de réseau 255.255.255.0

passerelle 192.168.10.1 #Ceci devrait être l'adresse du routeur

serveur de noms 8.8.8.8

serveur de noms 8.8.4.4

Une fois que vous avez attribué l'IP à la carte, vous pouvez redémarrer la connexion avec la commande

$ ifdown eth0; ifup eth0

ou redémarrer la carte

Étape 16: Configuration de l'accès Keygen et sans mot de passe sur les cartes

Configurez une paire de clés publiques privées sur chaque nœud (y compris le nœud principal). Créez un dossier temporaire, générez une nouvelle clé et faites-en une clé autorisée, puis ajoutez tous les NOPA aux hôtes connus, comme indiqué ci-dessous.

mkdir tmp_sshcd tmp_ssh ssh-keygen -f./id_rsa

#Appuyez deux fois sur Entrée pour définir et confirmer un mot de passe vide

cp id_rsa.pub clés_autorisées

pour i dans "seq 0 24"; do j=$(echo $i | awk '{printf "%02d\n", $0}');

ssh-keyscan NOPA$J >>known_hosts; terminé

Étape 17: Installation de Sshfs

- L'utilisation de sshfs permet de partager des fichiers entre les cartes du cluster. Exécutez la commande suivante:

$ sudo apt-get install -y sshfs

- Vérification / Création d'un groupe de fusibles

Vérifiez si le groupe de fusibles existe:

$ cat /etc/groupe | grep 'fusible'

Si le groupe existe, exécutez la commande suivante

$ bash sudo usermod -a -G fuse parallella

- Si le groupe n'existe pas, créez-le et ajoutez-y l'utilisateur

$ sudo groupadd fusible

$ sudo usermod -a -G fuse parallella

- Décommentez la ligne user_allow_other dans le fichier fuse.config

$ sudo vim /etc/fuse.conf

Étape 18: Configurer le dossier NFS

- Modifier le fichier /etc/fstab

$ sudo vim /etc/fstab

- Remplacez le contenu par le texte ci-dessous

# [système de fichiers] [point de montage] [type] [options]

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

Étape 19: connectez la carte au commutateur

Placez le commutateur sous le cluster ou quelque part à proximité, utilisez des câbles Ethernet pour connecter la carte que vous avez déjà configurée au commutateur. Vous pouvez également connecter le commutateur et votre ordinateur au routeur pour accéder au cluster.

Vous devriez pouvoir envoyer un ping et un ssh à la carte qui est maintenant connectée au commutateur avec une adresse IP statique.

Vous pouvez également ajouter l'adresse IP et le nom d'hôte à votre fichier /etc/hosts. Vous pourrez utiliser le nom d'hôte pour vous connecter au lieu de saisir l'intégralité de l'adresse IP.

Étape 20: Répétez les étapes 11 à 19 pour chaque planche

Suivez la procédure pour configurer le système d'exploitation et le réseau pour chaque carte.

>> Remarque importante: utilisez des hostames et des adresses IP différents pour chaque carte ! Ils doivent être uniques à travers le réseau ! <<<

Étape 21: connectez les périphériques

Connectez les périphériques !
Connectez les périphériques !

Assurez-vous que le ventilateur fonctionne:

Assurez-vous que le ventilateur est alimenté et que le flux d'air entre dans le boîtier de la carte. La connexion doit être stable et indépendante des autres éléments. N'oubliez pas que les planches peuvent surchauffer si elles ne sont pas correctement refroidies.

Assurez-vous que les cartes sont connectées au commutateur:

À ce stade, vous devriez avoir configuré chaque carte indépendamment. Les cartes doivent également être connectées au commutateur. Le manuel du commutateur doit fournir des informations qui peuvent être utilisées pour vérifier que le processus de démarrage est terminé correctement, il peut y avoir des LED qui indiquent l'état.

Connectez les cartes à l'alimentation:

Utilisez le câble micro-USB vers USB-A pour connecter chacune des cartes au concentrateur USB. Vous pouvez étiqueter les ports ou définir un ordre au cas où vous auriez besoin de déconnecter une seule carte.

Étape 22: Appliquez le pouvoir

1. Le ventilateur devrait fonctionner.

2. Les cartes doivent être connectées au commutateur Ethernet.

3. Vérifiez que les cartes sont connectées au concentrateur USB.

4. Alimentez le concentrateur USB.

5. Activez DEMAC !

6. Profite !

Étape 23: Ressources logicielles

MPI (interface de passage de messages)

MPI est un protocole de communication pour la programmation d'ordinateurs parallèles. Les communications point à point et collectives sont prises en charge.

www.open-mpi.org/

OpenMP (Open Multi-Traitement)

L'interface de programmation d'applications (API) OpenMP (Open Multi-Processing) prend en charge la programmation de multitraitement à mémoire partagée multiplateforme en C, C++ et Fortran, sur de nombreuses plateformes. Il se compose d'un ensemble de directives de compilateur, de routines de bibliothèque et de variables d'environnement qui influencent le comportement à l'exécution.

www.openmp.org/

Logiciel Parallella

Les développeurs fournissent une pile logicielle open source, y compris un SDK pour s'interfacer avec l'accélérateur.

www.parallella.org/software/

Vous pouvez également trouver des manuels et des informations plus détaillées.

Ils ont également des dépôts GitHub:

github.com/parallella

N'hésitez pas à télécharger et à exécuter certains des exemples, l'un de mes préférés est le jeu de la vie basé sur le célèbre jeu de la vie de Conway.

Avis de non-responsabilité: les définitions peuvent être copiées de wikipedia

Conseillé: