typhoons

Décupler la puissance d un PC : le clustering

Messages recommandés

patry, il faut faire la différence entre le parallélisme et la concurrence. Je répondais à la demande de typhoons relative à CS6. Il ne faut pas dire on ne peut rien faire mais dire ce que l'on peut faire (par exemple COM et OLE automatisation sous Windows). Les fonctions de Word ou d'Excel ne sont pas conçues pour être distribuées cependant elles sont exposées à un "Worker x" qui peut lui leur donner cette possibilité (certes ça fait usine à gaz mais c'est possible avec Akka2 par exemple).

Voir par exemple :
http://concur.rspace.googlecode.com/hg/talk/concur.html#goodbye

Partager ce message


Lien à poster
Partager sur d’autres sites
Akka est une librairie (ou un microkernel) qui fourni des services d’exécution et de contrôle des workers distants. Mais dans le début de la phrase on a tout dit, c'est une librairie que le développeur (de l'application) va intégrer pour ne pas avoir à gérer ledit contrôle.

En aucun cas on va pouvoir rendre "clusterisable" (pour éviter effectivement les autres termes) une application qui ne l'est pas. Sauf à ce que le traitement (cas d'un makefile cité plus haut) soit effectivement facilement décomposable (traitement de N fichiers). Dans le cas qui nous intéresse (traitement d'images) avec des outils existants, ce sera dur !

D'où mon exemple d'Avistack (non "multithread ready") et Registax 6/Autostakkert (parfaitements "multithread ready"). Etant entendu que le premier (qui n'a pas intégré le traitement par threads) n'est pas franchement prêt à faire du clustering !


Marc

Partager ce message


Lien à poster
Partager sur d’autres sites
Re,
j'ai un peu lu la doc....c'est pas trivial quand même

De plus, moi ce n'est pas Photoshop qui me branche mais plutôt toutes les fonctions de prétaitement sur x images (soustraction de Darks, offset, division flat, etc.) et les fonctions de traitement (DDP, Drizzle, etc..) qui consomment beaucoup et durent.

Donc il faudrait en plus se tartiner le développement de ces routines, il n'y a pas d'API tout fait, disponible que je sache

Sur de l'existant, Prism 7, déjà multitâches et bien architecturé, c'est déjà 1 million de lignes en Delphi...faudrait investiger avec Cyril

A+


Partager ce message


Lien à poster
Partager sur d’autres sites
1) Manipulation // des données = librairie Scala 'Parallel Collections'
2) Modèle type Erlang pour gérer la concurence = librairie d'acteurs Scala ou librairie d'acteurs Akka (au choix)

Voir aussi dans le lien suivant (en français) comment Scala :
- fait la séparation entre le parallélisme de données et le parallélisme de tâches
- gère simplement la programmation distribuée
http://www.scala-lang.org/docu/files/ScalaByExample-fr_FR.pdf

Partager ce message


Lien à poster
Partager sur d’autres sites
Pour ceux qui utilisent déjà Python, il existe une approche équivalente aux 'Parallel Collections' de Scala : CnC-Python (utilisable avec SciPy et NumPy) :
http://wiki.rice.edu/confluence/download/attachments/5210519/cnc_encyc_TR.pdf?version=1&modificationDate=1322637549211

Remarque : CnC-Scala existe aussi.

Scala c'est pas trivial mais Python ça reste très accessible.

Partager ce message


Lien à poster
Partager sur d’autres sites
Bonjour,

Pour information, voici les 3 centres nationaux maîtrisant l'art du clustering: http://www-ccrt.cea.fr/ http://www.cines.fr/ http://www.idris.fr/

Pour ce qui est de réaliser la même chose à plus petite échelle chez soit, à mon avis il est plus rentable de changer de PC en prenant un PC de dernière génération plutôt que de coupler des PC ensembles. D'un parce que votre consommation électrique va exploser, le bruit également. De deux parce que le réseau que vous allez mettre entre vos PC sera un goulot d'étranglement des performances si important que vous y perdrez tout les avantages de ce type de solution. Pour information les supercalculateurs actuels utilisent des réseaux QDR ou mieux, soit 40Gb/s quand votre carte réseau ne délivre qu'au mieux 1Gb/s. De trois, quand à la partie logiciel, comme cela à déjà été dit, il vous faudra des logiciels développés spécifiquement avec des librairies MPI pour passer les informations d'un PC à l'autre.

Par contre si l'on recherche pas spécialement les performances, se monter un cluster de PC peut être intéressant. Au même titre que se fabriquer son télescope... Mais ça prend du temps et il y a beaucoup de connaissances à acquérir.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant