J'ai une fonction (modèle de réseau de neurones) qui produit des chiffres. Je souhaite tester plusieurs paramètres, méthodes et différentes entrées (ce qui signifie des centaines de courses de la fonction) de Python à l'aide de PBS sur un cluster standard avec un couple avec couple.
Note: J'ai essayé Parallarspython, Ipython et telle et n'a jamais été complètement satisfait, car Je veux quelque chose de plus simple. Le cluster est dans une configuration donnée que je ne peux pas changer et qu'une telle solution intégrant Python + QSub bénéficiera certainement à la communauté. P>
Pour simplifier les choses, j'ai une fonction simple telle que: p> < Pré> xxx pré>
où Ma question est la suivante: Y a-t-il un moyen correct de transformer quelque chose comme une analyse de paramètres tels que P> dans "quelque chose" Lancer un script PBS pour chaque appel à la fonction code> code> p> Je pensais à une fonction qui inclurait le modèle PBS et l'appelait de Le script Python, mais ne pouvait pas encore comprendre (décorateur?). P> p> entrée code> est un objet représentant l'entrée,
entrée.name.name. / code> est une chaîne et
do_lots_number_crunching code> peut dernières heures. P>
4 Réponses :
pbs_python [1] pourrait fonctionner pour cela. Si expérimentation_model.py 'a' comme argument, vous pouvez faire [1]: https://oss.trac.surfsara.nl/pbs_python/wiki/torqueUsage pbs_python p> p>
Vous pouvez le faire facilement en utilisant Jug (que j'ai développé pour un similaire Configuration).
Vous écrivez dans le fichier (par exemple, et c'est ça! P> MAINTENANT Vous pouvez maintenant lancer "JUG Emplois" sur votre file d'attente: (C'est en fait plus compliqué que cela, mais vous obtenez le point). P> Il utilise le système de fichiers pour le verrouillage (si vous êtes sur un système NFS) ou un serveur REDIS si vous préférez. Il peut également gérer les dépendances entre tâches. P> Ce n'est pas exactement ce que vous avez demandé, mais je pense que c'est un architecture plus propre pour la séparer du système de file d'attente de travail. P> P> modèle.py code>): p>
JUG Exécuter Model.py CODE> et cela parallément automatiquement. Ce qui se passe, c'est que chaque travail va dans une boucle, faire quelque chose comme: p>
On dirait que je suis un peu tardif à la fête, mais j'ai également eu la même question de savoir comment cartographier des problèmes parallèles embarrassants sur un cluster en Python il y a quelques années et écrit ma propre solution. Je l'ai récemment téléchargé à Github ici: https://github.com/pediii/pbs_util
à Écrivez votre programme avec pbs_util, je créerais d'abord un pbs_util.ini dans le répertoire de travail contenant p> puis un script python comme celui-ci p> et cela le ferait. P> p>
Je viens de commencer à travailler avec des clusters et des applications EP. Mon objectif (je suis avec la bibliothèque) est d'apprendre assez pour aider d'autres chercheurs sur Campus Access HPC avec des applications EP ... surtout des chercheurs en dehors de la tige. Je suis toujours très nouveau, mais je pensais que cela pourrait aider cette question à indiquer l'utilisation de GNU parallèle A> Dans un script PBS pour lancer des scripts de base python avec des arguments variables. Dans le fichier .pbs, il y a deux lignes pour signaler: En tant que nouveau sur la supercalcul de EP, même si je ne comprends pas encore toutes les autres options de "parallèle", cette La commande m'a permis de lancer des scripts Python parallèlement à différents paramètres. Cela fonctionnerait bien si vous pouvez générer une série de fichiers de paramètres à l'avance qui parallementeront votre problème. Par exemple, exécuter des simulations sur un espace de paramètre. Ou traiter de nombreux fichiers avec le même code. P> p>