8
votes

Possible d'utiliser Opencl sur plusieurs ordinateurs?

Autant que je sache, la réponse est non. Opencl est conçu pour le système multi-noyaux.

Mais, existe-t-il un moyen d'utiliser OPENCL sur plusieurs ordinateurs (chaque ordinateur est un système multi-noyaux)? Sinon, sont des outils supplémentaires, des cadres ... requis?

J'ai lu des articles sur l'informatique distribuée, l'informatique de cluster, l'informatique de la grille ... mais je ne trouve pas de réponse satisfaite

Toutes les idées seront appréciées

Merci:)


6 commentaires

Opencl n'est pas conçu pour aucun système en particulier, la puissance d'OPENCL consiste à abstraire la couche matérielle sous-jacente, également OPENCL exécute sur chaque interface OPENCL capable, ce qui signifie que le multi-noyau n'est pas une exigence. Google.com/#q=OpencL+Distribution


Merci pour votre commentaire. Je pose cette question parce que je veux connaître une manière sauf que nous rompons manuellement le problème en sous-émérules et les calculer dans différents ordinateurs. J'oublie ce détail dans la question :)


Tout comme un ajout, car la question a déjà été répondue. La plupart des gens lorsqu'ils font opencl sur plusieurs ordinateurs utiliseront MPI + Opencl ensemble, mais cela utilise plus que l'opencl.


Oh, toutes idées bienvenues :) Pouvez-vous être plus précis? @ Klee1


@ Tiana987642 Les gens vont simplement utiliser MPI pour communiquer manuellement entre les périphériques, puis effectuer un calcul sur chaque périphérique à l'aide de OPENCL. Vous devriez écrire tout l'équilibrage de la charge et ce qui n'est pas par vous-même, il serait donc très difficile. Ceci est le plus souvent fait dans la supercalaison / universitaire quand ils expérimentent de toute façon ces choses.


@ Klee1, j'ai eu l'idée, merci :)


5 Réponses :


8
votes

Il existe deux cadres à cet effet: virtualcl et Clara . Les deux paquets vous permettent de travailler de manière transparente avec des machines distantes en tant qu'appareils locaux. Malheureusement, VirtualCl n'est disponible que sous forme de binaires pré-compilés sans sources et Clara n'est plus développé activement.


2 commentaires

Parfait. Merci d'être au fait, si vous savez, y a-t-il des cadres similaires pour Cuda?


Eh bien, je sens que j'ai trouvé la réponse. développeur.nvidia.com/cluster-management



4
votes

Snucll utilise MPI et Opencl pour utiliser de manière transparente le cluster via l'API Opencl. Il ajoute également quelques extensions OPENCLL pour traiter efficacement les objets de mémoire.

Il est open source. Voir http://aces.snu.ac.kr/center_for_manycore_programming/snucl.htmlleight/snucl.htmlleight/a > et http://tbex.twbbs.org/~tbex/pad/suncl.pdf < / a>


0 commentaires

1
votes

J'ai utilisé VirtualCl pour former un cluster GPU avec 3 GPU AMD en tant que noeud de calcul et mon bureau Ubuntu Intel exécutant en tant que nœud de courtier. J'ai pu démarrer à la fois le courtier et calculer les nœuds de calcul.


0 commentaires

1
votes

En plus des différentes options déjà mentionnées par d'autres affiches, voici deux projets open source plus ouverts que vous pourriez intéresser:

  • octand (en phase bêta): offre une application de serveur et une implémentation de la CID que les clients Peut utiliser pour profiter des périphériques locaux et distants prenant en charge Opencl de manière transparente. La licence est GPLV3.

  • CoLrthth SDK par Brown Deer Technology (actuellement la version 1.6): Ce SDK qui Offre une implémentation Open Source (GPLV3) OPENCL pour X86_64, ARM, EPIPHANY et INTEL MIC incluent une implémentation "Compute Compute Computer Process Call". Cela consiste en une implémentation d'OPENCL côté client qui prend en charge RPC ( libclrpc ) et une application de serveur ( clrpcd ). Le site Web ne mentionne pas grand chose à ce sujet, mais le Documentation contient une section à propos de cette implémentation de CLRPC.


0 commentaires

3
votes

Il y a une autre solution non mentionnée ci-dessus: dopencl .

"DOPENCL (Distributed opencl) est une nouvelle approche uniforme de la programmation des systèmes hétérogènes distribués avec des accélérateurs. Il intègre de manière transparente les nœuds d'un système distribué en une seule plate-forme opencl. Ainsi, DOPENCL permet à l'utilisateur d'exécuter des applications opencl existantes non modifiées. Dans un environnement distribué hétérogène. En outre, il étend le modèle de programmation OpenCL pour traiter des nœuds individuels du système distribué. "


0 commentaires