Запуск задания на нескольких узлах кластера GridEngine - PullRequest
3 голосов
/ 06 октября 2010

У меня есть доступ к 128-ядерному кластеру, на котором я хотел бы запустить параллельное задание.Кластер использует Sun GridEngine, и моя программа написана для запуска с использованием Parallel Python, numpy, scipy на Python 2.5.8.Выполнение задания на одном узле (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

Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 07 октября 2010

Да, вам нужно включить опцию Grid Engine -np 16 в ваш скрипт, например:

# Use 16 processors
#$ -np 16

или в командной строке при отправке скрипта. Или, для более постоянных договоренностей, используйте файл .sge_request.

На всех установках GE, которые я когда-либо использовал, это даст вам 16 процессоров (или процессорных ядер сегодня) на стольких узлах, сколько необходимо, поэтому, если у ваших узлов есть 4 ядра, вы получите 4 узла, если они имеют 8 2 и так далее. Чтобы разместить работу, скажем, 2 ядра на 8 узлах (что может потребоваться, если вам требуется много памяти для каждого процесса), это немного сложнее, и вам следует проконсультироваться со своей службой поддержки.

...