Question

J'ai accès à un cluster de 128 noyau sur lequel je voudrais exécuter un travail parallélisé. Le cluster utilise Sun gridengine et mon programme est écrit pour exécuter en utilisant Python parallèle, numpy, scipy sur Python 2.5.8. L'exécution de la tâche sur un seul noeud (4 noyaux), on obtient une amélioration par rapport à ~ 3,5x un seul noyau. Je voudrais maintenant prendre cela au niveau suivant et de diviser le travail entre ~ 4 nœuds. Mon script qsub ressemble à quelque chose comme ceci:

#!/bin/bash
# The name of the job, can be whatever makes sense to you
#$ -N jobname

# The job should be placed into the queue 'all.q'.
#$ -q all.q

# Redirect output stream to this file.
#$ -o jobname_output.dat

# Redirect error stream to this file.

#$ -e jobname_error.dat

# The batchsystem should use the current directory as working directory.
# Both files will be placed in the current
# directory. The batchsystem assumes to find the executable in this directory.
#$ -cwd

# request Bourne shell as shell for job.
#$ -S /bin/sh

# print date and time
date

# spython is the server's version of Python 2.5. Using python instead of spython causes the program to run in python 2.3
spython programname.py

# print date and time again
date

Est-ce que quelqu'un a une idée de la façon de le faire?

Était-ce utile?

La solution

Oui, vous devez inclure l'option Grid Engine -np 16 soit dans votre script comme ceci:

# Use 16 processors
#$ -np 16

ou sur la ligne de commande lorsque vous soumettez le script. Ou, pour des arrangements plus permanents, utilisez un fichier .sge_request.

Sur toutes les installations GE que j'ai jamais utilisé cela vous donnera 16 processeurs (ou cœurs de processeur ces jours-ci) en tant que peu de nœuds, au besoin, donc si vos nœuds ont 4 cœurs vous obtiendrez 4 noeuds, si elles ont 8 2 et ainsi de suite. Pour placer le travail, disons 2 cœurs sur 8 noeuds (que vous pouvez faire si vous avez besoin d'une grande quantité de mémoire pour chaque processus) est un peu plus compliqué et vous devriez consulter votre équipe de soutien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top