3

並列化されたジョブを実行したい 128 コアのクラスターにアクセスできます。クラスターは Sun GridEngine を使用し、私のプログラムは Python 2.5.8 で Parallel Python、numpy、scipy を使用して実行するように作成されています。単一ノード (4 コア) でジョブを実行すると、単一コアよりも最大 3.5 倍の改善が得られます。これを次のレベルに進めて、ジョブを最大 4 つのノードに分割したいと考えています。私のqsubスクリプトは次のようになります。

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

誰もこれを行う方法について何か考えがありますか?

4

1 に答える 1

2

-np 16はい、次のようにスクリプトにGrid Engine オプションを含める必要があります。

# Use 16 processors
#$ -np 16

または、スクリプトを送信するときにコマンドラインで。または、より恒久的な取り決めを行うには、.sge_requestファイルを使用します。

私がこれまでに使用したすべての GE インストールでは、必要な数のノードで 16 個のプロセッサ (または最近のプロセッサ コア) が提供されます。すぐ。ジョブを配置するには、たとえば 8 ノードに 2 コア (プロセスごとに大量のメモリが必要な場合) は少し複雑であり、サポート チームに相談する必要があります。

于 2010-10-07T10:36:08.950 に答える