Domanda

Ho accesso a un cluster 128-core su cui desidero eseguire un processo parallelised. Il cluster utilizza Sun GridEngine e il mio programma è scritto da eseguire utilizzando parallela Python, NumPy, SciPy su Python 2.5.8. Eseguire il lavoro su un singolo nodo (4-core) produce un ~ 3.5x miglioramento su un singolo nucleo. Vorrei ora prendere questo al livello successivo e dividere il lavoro tra ~ 4 nodi. Il mio qsub sguardi di script qualcosa di simile:

#!/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

Qualcuno ha qualche idea di come fare questo?

È stato utile?

Soluzione

Si, è necessario includere l'opzione -np 16 Grid Engine sia nello script come questo:

# Use 16 processors
#$ -np 16

o sulla riga di comando quando si invia lo script. Oppure, per le disposizioni più permanente, utilizzare un file .sge_request.

Su tutti gli impianti di GE che abbia mai usato questo vi darà 16 processori (o core di processori in questi giorni) nel minor numero di nodi come necessario, quindi, se i nodi sono 4 core si otterrà 4 nodi, se hanno 8 2 e così via. Per posizionare il lavoro su, dicono 2 core su 8 nodi (che si potrebbe desiderare di fare se avete bisogno di un sacco di memoria per ogni processo) è un po 'più complicato e si deve consultare il team di supporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top