#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. Я хочу автоматически задать имя файла без его жесткого кодирования.