Как помочь кондору найти файл, который он должен выполнить в задании?

Я пытаюсь выполнить задание, но кондор не может найти мой файл.

Я убедился, что:

  1. файл есть, выполнив ls и cat по его абсолютному пути
  2. запустить его из интерактивного сеанса кондора
  3. дайте ему правильные разрешения, чтобы он запускал его.

Я сделал это, но я получаю эту ошибку:

(automl-meta-learning) miranda9~/automl-meta-learning/automl-proj/experiments/meta_learning $ cat condor_job_log_69.out 
000 (069.000.000) 10/21 11:06:06 Job submitted from host: <130.126.112.32:9618?addrs=130.126.112.32-9618+[--1]-9618&noUDP&sock=3715279_f2e6_4>
...
001 (069.000.000) 10/21 11:06:07 Job executing on host: <172.22.224.111:9618?addrs=172.22.224.111-9618+[--1]-9618&noUDP&sock=807_1d04_3>
...
007 (069.000.000) 10/21 11:06:07 Shadow exception!
        Error from [email protected]: Failed to execute '/home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py': (errno=2: 'No such file or directory')
        0  -  Run Bytes Sent By Job
        0  -  Run Bytes Received By Job
...
012 (069.000.000) 10/21 11:06:07 Job was held.
        Error from [email protected]: Failed to execute '/home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py': (errno=2: 'No such file or directory')
        Code 6 Subcode 2
...
(automl)

но файл явно есть:

(automl-meta-learning) miranda9~/automl-meta-learning/automl-proj/experiments/meta_learning $ ls -lah /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py
-rwxrwxr-x. 1 miranda9 miranda9 22K Oct 20 14:54 /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py

Я не понимаю, почему Кондор не может его найти. Любые идеи? Я не системный администратор, поэтому даже не знаю, как начать отлаживать это.

Кстати, мой сценарий отправки:

####################
#
# Experiments script
# Simple HTCondor submit description file
#
# reference: https://gitlab.engr.illinois.edu/Vision/vision-gpu-servers/-/wikis/HTCondor-user-guide#submit-jobs
#
# 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
#
# condor_submit -i
# condor_submit job.sub
#
####################

# Executable   = meta_learning_experiments_submission.py
# Executable = automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py
# Executable = ~/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py
Executable = /home/miranda9/automl-meta-learning/automl-proj/experiments/meta_learning/meta_learning_experiments_submission.py

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

# Use this to make sure 1 gpu is available. The key words are case insensitive.
REquest_gpus = 1
# requirements = ((CUDADeviceName = "Tesla K40m")) && (TARGET.Arch == "X86_64") && (TARGET.OpSys == "LINUX") && (TARGET.Disk >= RequestDisk) && (TARGET.Memory >= RequestMemory) && (TARGET.Cpus >= RequestCpus) && (TARGET.gpus >= Requestgpus) && ((TARGET.FileSystemDomain == MY.FileSystemDomain) || (TARGET.HasFileTransfer))
# requirements = (CUDADeviceName == "Tesla K40m")
# requirements = (CUDADeviceName == "Quadro RTX 6000")
requirements = (CUDADeviceName != "Tesla K40m")

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

# E-mail option
Notify_user = [email protected]
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

person Charlie Parker    schedule 21.10.2020    source источник


Ответы (2)


Похоже, ваш исполняемый файл - это скрипт Python. Linux не сообщит о таком файле или каталоге, если сам скрипт существует, но интерпретатор, указанный в #! не существует в системе. Может быть, это то, что здесь происходит? Как выглядит первая строка этого скрипта?

person Greg    schedule 22.10.2020
comment
да, это была проблема, с которой я имел обыкновение спорить с другим менеджером HPC вверху с неправильным файлом для python. Теперь у меня есть это, и это работает: #!/home/miranda9/.conda/bin/python3.7 - person Charlie Parker; 22.10.2020

Проблема заключалась в том, что в верхней части моего скрипта отправки python у меня были аргументы для других кластеров, не связанных с кондором, поэтому там был неправильный путь к исполняемому файлу python. Я исправил это, удалив это и добавив эту строку в мой скрипт отправки Python:

#!/home/miranda9/miniconda3/envs/automl-meta-learning/bin/python

на самом деле, чтобы найти путь python для вашего текущего env:

which python
person Charlie Parker    schedule 22.10.2020