HTCondor с OpenFOAM

Пытаюсь запустить какие-то расчеты в OpenFOAM от HTCondor. Пока у нас есть только один готовый многоядерный сервер OpenFOAM. OpenFOAM устанавливается из исходного кода (без использования докера) в соответствии с инструкциями на странице: https://openfoam.org/download/4-1-source/

ПРОБЛЕМА: когда я отправляю задание в HTCondor, оно запускается правильно (я вижу, что файлы результатов генерируются), но выходные файлы не копируются обратно на машину, с которой было отправлено (в Windows ).

Это мой рабочий файл:

Universe = vanilla
Executable = openfoamtest.sh

process_name = openfoamtest
input = /dev/null
requirements = ( (OpSys == "LINUX") && (Machine == "master") )

output = $(process_name).job.$(Process).out 
error = $(process_name).job.$(Process).err 
log = $(process_name).job.log

should_transfer_files = YES
when_to_transfer_output = ON_EXIT_OR_EVICT
transfer_executable = true

Queue 1

openfoamtest.sh:

#!/bin/bash
# Import the OpenFOAM environment
source /etc/bashrc
export PATH=$PATH:/usr/lib64/openmpi/bin/
source /opt/OpenFOAM/OpenFOAM-4.1/etc/bashrc

cd /tmp/openfoam/pitzDaily
blockMesh
simpleFoam
zip pitzDaily.zip *

Обратите внимание, что я использую пользователя condorworker для запуска процесса вместо пользователя nobody. Отправка производится с компьютера под управлением Windows. Спасибо.


person fern17    schedule 22.05.2017    source источник


Ответы (1)


Решено. Проблема была в том, что "cd" в моем скрипте. Это переместило текущий рабочий каталог в другую папку, о которой HTCondor не знает. Решение заключалось в том, чтобы добавить в начале:

# This is the folder where Condor starts
CURRENT_FOLDER=$PWD

И в конце:

# Copy back the generated file to Condor's execute folder.
cp pitzDaily.zip $CURRENT_FOLDER
person fern17    schedule 23.05.2017