Сопоставить текущий файл и расширение с файлами вывода и ошибок condor? (чтобы у PBS и Slurm были одинаковые выходные файлы)

#hpc #slurm #pbs #condor

#hpc #slurm #pbs #condor

Вопрос:

Как мне заставить condor называть мои файлы следующим образом:

meta_learning_experiments_submission.py.e451863 meta_learning_experiments_submission.py.o444375

 $(FILENAME).e$(CLUSTER)
$(FILENAME).e$(CLUSTER)
 

Я попробовал, но, похоже, это не сработало.

например, чтобы он соответствовал поведению PBS по умолчанию, когда я это делаю qsub ?


Я также хотел бы знать, как заставить slurm также соответствовать ему, это было бы идеально (чтобы все три кластера работали).

Я попытался:

 #SBATCH --error="(filename).%j.%N.err"
 

но это не сработало


Щедрость

Я хочу автоматически задать имя файла без его жесткого кодирования.


Похожие:


Для контекста вот мой текущий файл отправки:

 ####################
#
# Experiments script
# Simple HTCondor submit description file
#
#
# chmod a x test_condor.py
# chmod a x experiments_meta_model_optimization.py
# chmod a x meta_learning_experiments_submission.py
# chmod a x download_miniImagenet.py
# chmod a x ~/meta-learning-lstm-pytorch/main.py
# chmod a x /home/miranda9/automl-meta-learning/automl-proj/meta_learning/datasets/rand_fc_nn_vec_mu_ls_gen.py
# chmod a x /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/supervised_experiments_submission.py
# chmod a x /home/miranda9/automl-meta-learning/results_plots/is_rapid_learning_real.py
# condor_submit -i
# condor_submit job.sub
#
####################

Path = /home/miranda9/automl-meta-learning/
Path = /home/miranda9/ML4Coq/

# Executable = /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/supervised_experiments_submission.py
# Executable = /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py
# Executable = /home/miranda9/meta-learning-lstm-pytorch/main.py
# Executable = /home/miranda9/automl-meta-learning/automl-proj/meta_learning/datasets/rand_fc_nn_vec_mu_ls_gen.py
# Executable = /home/miranda9/automl-meta-learning/results_plots/is_rapid_learning_real.py

## Output Files
Log          = experiment_output_job.$(CLUSTER).log.out
Output       = experiment_output_job.$(CLUSTER).out.out
Error        = experiment_output_job.$(CLUSTER).err.out

Output = %(FILENAME).o$(CLUSTER)

# Use this to make sure 1 gpu is available. The key words are case insensitive.
# REquest_gpus = 1
# requirements = (CUDADeviceName != "Tesla K40m")
# requirements = (CUDADeviceName == "Quadro RTX 6000")

# requirements = ((CUDADeviceName = "Tesla K40m")) amp;amp; (TARGET.Arch == "X86_64") amp;amp; (TARGET.OpSys == "LINUX") amp;amp; (TARGET.Disk >= RequestDisk) amp;amp; (TARGET.Memory >= RequestMemory) amp;amp; (TARGET.Cpus >= RequestCpus) amp;amp; (TARGET.gpus >= Requestgpus) amp;amp; ((TARGET.FileSystemDomain == MY.FileSystemDomain) || (TARGET.HasFileTransfer))
# requirements = (CUDADeviceName == "Tesla K40m")
# requirements = (CUDADeviceName == "GeForce GTX TITAN X")

# Note: to use multiple CPUs instead of the default (one CPU), use request_cpus as well
# Request_cpus = 4
Request_cpus = 16

# E-mail option
Notify_user = me@gmail.com
Notification = always

Environment = MY_CONDOR_JOB_ID= $(CLUSTER)

# "Queue" means add the setup until this line to the queue (needs to be at the end of script).
Queue
 

В качестве альтернативы, если я могу использовать свой исполняемый скрипт в качестве сценария отправки с параметрами вверху, это тоже сработает

Обычно я использую, чтобы мой сценарий отправки совпадал с моим исполняемым сценарием, например, см. Мой Пример qsub:

 #!/homes/miranda9/.conda/envs/automl-meta-learning/bin/python
#PBS -V
#PBS -M mee@gmail.com
#PBS -m abe
#PBS -lselect=1:ncpus=112

import sys
import os

for p in sys.path:
    print(p)

print(os.environ)
 

Комментарии:

1. Вы хотите, чтобы FILENAME было именем отправляемого здесь файла?

2. @JohnKnoeller да, я хочу, чтобы переменная FILENAME содержала строку текущего имени файла и ничего больше.

3. $(SUBMIT_FILE) содержит имя файла отправки, пока condor_submit обрабатывает его. Помогает ли это?

4. @JohnKnoeller, к сожалению, это не помогает. Он использует имя job.sub вместо моего исполняемого файла, например Executable = /home/miranda9/automl-meta-learning/test_condor.py . Что я хочу, так это извлечь строку test_condor.py из моего исполняемого пути.

5. @JohnKnoeller в качестве альтернативы, если вы знаете, как отправить мой скрипт python / bash напрямую, а не через этот скрипт отправки, это тоже сработало бы, а затем я добавляю параметры вверху (я делаю это так, как slurm или qsub, позвольте мне вставить пример моего файла отправки для qsub, чтобы показать, что я, см. раздел правки к вопросу).

Ответ №1:

HTCondor не устанавливает ИМЯ файла по умолчанию, но вы можете установить его самостоятельно, например

 FILENAME = meta_learning_experiments_submission.py
output = $(FILENAME).o.$(CLUSTER)
error  = $(FILENAME).e.$(CLUSTER)
 

Комментарии:

1. но как мне добавить это ко всему пути? обычно у меня есть полный абсолютный путь…

2. На каком языке эти файлы condor?

3. Я хочу автоматически задать имя файла без его жесткого кодирования.