Un super ordinateur construit à partir de nombreux RPis est-il vraiment pratique ou simplement une nouveauté?

13

Cette question est inspirée de cet article .

Actuellement, je passe beaucoup de temps en R pour analyser les données. Certains des scripts que j'exécute dans R pourraient bénéficier du calcul parallèle afin de gagner du temps. Disons que je pourrais construire un "vrai" ordinateur barebones pour environ 300 $ et pour ce même 300 $, je pourrais obtenir 6 Pis (y compris le câble d'alimentation et la carte SD). En supposant que j'avais une tâche bien adaptée à la parallélisation, serais-je meilleur avec le Pis ou le "vrai" ordinateur?

La réponse changerait-elle si j'accélérais le "vrai" matériel informatique à quelque chose qui pourrait coûter 1000 $, comment cela se passerait-il contre 20 Pis?

Dean MacGregor
la source
Le Pi est un ordinateur lent avec peu de RAM mais un bon Gpu. Si vos tâches en bénéficient, cela peut avoir du sens.
Thorbjørn Ravn Andersen
Le GPU n'est utile que si vous voulez faire quelque chose pour lequel il existe déjà du code, ou si vous pouvez négocier l'accès à la documentation de programmation propriétaire du GPU.
Chris Stratton

Réponses:

10

Si vous voulez analyser cela, vous devez aller au-delà de dire 20 rpis contre 1000 $ et décider par vous-même ce que vous pouvez réellement obtenir et utiliser pour 1000 $. Notez que ce n'est pas le canal d'achat.

Disons que vous pouvez obtenir une carte mère, une alimentation, un RAM de 8 Go, un processeur i7 3,4 GHz à 6 cœurs et un vieux disque dur (toujours plus rapide qu'une carte SD!) Pour ~ 1000 $. Le nombre total de cycles par seconde serait de 6 * 3,4e9 = 20,4e9, contre 20 * 0,7e9 = 14e9 pour le supercalculateur pi.

Considérez maintenant le fait qu'un processeur multicœur est un processeur multicœur, tandis que le pis entre les E / S (si cela devient un facteur significatif) va être plus lent de plusieurs ordres de grandeur.

Bien que je n'aime pas (ou ne connaisse pas) les supercalculateurs pi, je suppose qu'ils sont destinés à l'expérimentation et à des fins pédagogiques. C'est certainement un cluster bon marché, mais si votre objectif est de calculer les chiffres rapidement (plutôt que d'expérimenter et d'éduquer), il n'y a aucun moyen qu'un cluster pi soit plus rentable ou économe en énergie qu'un PC normal.

Boucles d'or
la source
Merci, "Le nombre total de cycles par seconde serait de 6 * 3,4e9 = 20,4e9, contre 20 * 0,7e9 = 14e9 pour le supercalculateur pi." est essentiellement ce que je recherchais, mais je ne savais pas quoi chercher.
Dean MacGregor
Un Pi utilise seulement 5 watts. Cela signifie que 20 pis n'utilisent que 100 watts, ce qui est moins que le PC que vous décrivez, c'est donc plus économique et plus économe en énergie (mais avec moins de CPU :))
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen d'après mon expérience, 8 Core i7 + SSD + 16 Go de RAM utilisent environ 50-70Wt en fonction de la charge du processeur dans une installation sans tête (sans moniteur).
lenik
Lorsque vous utilisez les RPi2, la quantité de cycles augmente jusqu'à 20 * 4 * 0,9e9 = 72e9, avec un overclocking, vous pouvez même atteindre 20 * 4 * 1,1e9 = 88e9 cycles par seconde. Maintenant, avec cette augmentation de la puissance de calcul du pi, pensez-vous que cela vaudrait la peine de construire un RPi-Cluster?
Sirac
1
@goldilocks 1) Ma connaissance des super-ordinateurs n'est pas bonne pour discuter de la vitesse Mbps. 2) Dans l'ensemble, un processeur Intel pourrait être plus rapide qu'un ensemble d'ARMv7 pour le même prix. Je dois rechercher des statistiques pour avoir une meilleure vue à ce sujet. 3) Il faut des heures pour compiler un noyau sur un RPi2, je l'ai essayé et j'espère ne plus le refaire à l'avenir. Pour résumer, un RPi n'est peut-être pas le choix parfait pour un supercalculateur, même pas le RPi2. Mais cela fait certainement un bon projet, car le RPi est très bon marché et vous pouvez facilement combiner plusieurs d'entre eux. Je pense à une simulation de réseau, car vous pouvez ...
Sirac
2

Cela a une réponse quelque peu complexe - une question clé à laquelle vous devez répondre est "quel type de travail demandez-vous à la machine?"

Les jeux d'instructions sur différentes machines (ARM vs Intel vs quiconque) ainsi que la qualité des compilateurs font une grande différence dans les performances réelles. Si le travail que vous demandez de faire a une accélération matérielle sur une machine mais pas sur une autre, ce facteur à lui seul fera plus de différence qu'un changement significatif de la fréquence d'horloge.

En termes plus généraux, je pense que le meilleur rapport qualité-prix en termes de prix / performances proviendra d'un processeur général multicœur modérément cadencé d'AMD ou d'Intel. Si vous êtes dans un environnement contrôlé où les températures ambiantes sont basses, vous pouvez probablement overclocker un peu ces puces pour obtenir plus de performances.

Le rasPi n'est certainement PAS conçu pour ce genre de choses, ce qui ne devrait pas lui enlever sa grande valeur pour apprendre comment les choses fonctionnent, et même pour construire un système vraiment "distribué" à un prix très abordable. Mais si vous avez besoin de sérieuses données et / ou de chiffres, le rasPi n'est probablement pas le bon choix.

ljwobker
la source
1

Laissant de côté le processeur sous-alimenté sur le pi, je ne vois pas comment vous allez obtenir des données vers les CPU assez rapidement sur des dizaines de pis pour voir des gains de performances qui en valent la peine. La vitesse du bus est tout aussi importante dans la superinformatique en cluster que la vitesse du processeur, et le pi est très insuffisant ici.

La mise en réseau et l'accès au disque partageront le même bus USB2 de 60 Mo. La carte SD a, au mieux, des performances dans la plage de vitesse de 20 Mo.

Le matériel informatique bas de gamme avec SATA à 150 Mo et Ethernet sur un bus PCI de 2 Go offre des ordres de grandeur plus de bande passante.

sal
la source
3
Cela dépend entièrement de l'application - certaines applications ont des ratios "travail" / "communication" très élevés et d'autres nécessitent beaucoup plus de communication par volume de travail effectué.
Chris Stratton
0

Si vous voulez apprendre le supercalcul entre les nœuds. .. Je mettrais en place le pi. Si vous voulez quelque chose de peu coûteux mais puissant - achetez un serveur / station de travail multi-cœur Intel basé sur le xénon et mettez une ou plusieurs carte (s) Tesla ou carte (s) GPU Cuda ou carte (s) Intel Phi.

Jay Wolfe
la source