2012-06-22 2 views
1

Я написал многопоточный Java-код, который при запуске создает 8 потоков, и вычисление продолжается в этих потоках. Я хотел бы отправить эту работу в кластер SGE, но я не уверен, какую параллельную среду (pe) выбрать? или я должен создать его? Я новичок в SGE. Простым способом было бы запустить его в серийном режиме, но это неэффективно.SGE: Параллельная среда для многопоточного кода Java

Что касается создания pe, где его нужно создать? Должен ли SAM deamon также иметь этот pe? Когда я представил работу с каким-то случайным именем pe, я получил

job rejected: the requested parallel environment "openmpi" does not exist 
+3

Параллельные среды, которые предлагает установка Grid Engine (очень), являются специфическими для установки. Вы должны спросить у своих системных администраторов этот вопрос. –

+0

@HighPerformanceMark Я спрошу администратора, но все-таки какой pe, лучше всего подходит для многопоточного java-кода? Хотя я, возможно, не смогу получить его в качестве конкретной установки. – damned

+1

Вам нужен PE с 'alloc_rule'' $ pe_slots' и 'job_is_first_task'' TRUE'. Однако это не вопрос программирования. –

ответ

2

Резьбовых приложений должны получить все свои слоты на одном узле. Вот почему вам нужна параллельная среда с allocation_rule, установленная в $pe_slots. Параллельные среды настраиваются администратором SGE с помощью qconf -ap PE_name. В качестве пользователя вы можете получить список доступных PE с помощью qconf -spl и можете запросить конфигурацию конкретного PE с помощью qconf -sp PE_name. Вы можете пройти все ТЭЛА и видеть их правила распределения с помощью следующего (ba)sh сценария:

for pe_name in `qconf -spl`; do 
    echo $pe_name 
    qconf -sp $pe_name | grep allocation_rule 
done 

Но вы уже должны говорить с вашим SGE администратора вместо того, чтобы пытаться оправдать ваши вне темы вопрос здесь.