Как сделать так, чтобы моя интерактивная работа и моя работа по представлению в кондоре совпадали на 100 %?

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

getenv = True

как предлагается здесь Как у меня condor автоматически импортирует мою среду conda при запуске моих заданий на python? (забавно, я спрашивал что-то подобное раньше!).

Проблема, с которой я сталкиваюсь, заключается в том, что мой скрипт pytorch работает в интерактивном режиме, но не работает при отправке задания. Для меня задания выглядят одинаково (одна и та же версия pytorch, одна и та же среда, одна и та же версия cuda), но я не могу заставить их работать обе. Работает только интерактивная работа.

Есть что-то кроме

getenv = True

что я могу сделать, чтобы они работали одинаково?


Кстати, я даже не могу запустить module load, чтобы убедиться, что правильные версии cuda загружены в сценарий отправки, кажется, фоновый сценарий действительно начинается с нуля и не позволяет мне ничего делать даже с этим флагом. Но с интерактивом все в порядке.


Я также заметил, что мои PATH не совпадают при входе в систему, интерактивном задании и задании отправки. Видеть:


# export PATH=/home/miranda9/miniconda3/envs/automl-meta-learning/bin:/home/miranda9/miniconda3/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin
# export PATH=/usr/local/cuda/bin:/home/miranda9/miniconda3/envs/automl-meta-learning/bin:/home/miranda9/miniconda3/condabin:/usr/local/cuda/bin:/usr/local/bin:/usr/bin:/home/miranda9/my_bins:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin
export PATH=/usr/local/cuda/bin:/home/miranda9/miniconda3/envs/metalearning/bin:/home/miranda9/miniconda3/condabin:/usr/local/cuda/bin:/usr/local/bin:/usr/bin:/home/miranda9/my_bins:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin

кросс-пост:


В случае, если это была проблема с pytorch, я нашел эти ссылки (но, поскольку он работает в интерактивном сеансе, я сомневаюсь, что это проблема с pytorch):


Это мой текущий сценарий представления job.sub:

####################
#
# 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
# 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
# chmod a+x /home/miranda9/automl-meta-learning/test_condor.py
# chmod a+x /home/miranda9/ML4Coq/main.sh
# chmod a+x /home/miranda9/ML4Coq/ml4coq-proj/PosEval/download_data.py
# chmod a+x /home/miranda9/ML4Coq/ml4coq-proj/pos_eval/create_pos_eval_dataset.sh
# chmod a+x /home/miranda9/ML4Coq/ml4coq-proj/embeddings_zoo/tree_nns/main_brando.py
# chmod a+x /home/miranda9/ML4Coq/main.sh
# condor_submit -i
# condor_submit job.sub
#
####################

# 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
# SUBMIT_FILE = 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
# SUBMIT_FILE = is_rapid_learning_real.py

# Executable = /home/miranda9/automl-meta-learning/test_condor.py

# Executable = /home/miranda9/ML4Coq/ml4coq-proj/embeddings_zoo/tree_nns/main_brando.py
# SUBMIT_FILE = main_brando.py

# Executable = /home/miranda9/ML4Coq/ml4coq-proj/PosEval/download_data.py
# SUBMIT_FILE = ml4coq-proj/PosEval/download_data.py

# Executable = /home/miranda9/ML4Coq/ml4coq-proj/pos_eval/create_pos_eval_dataset.sh
# SUBMIT_FILE = create_pos_eval_dataset.sh

Executable = /home/miranda9/ML4Coq/main.sh
SUBMIT_FILE = main.sh

# Output Files
Log          = $(SUBMIT_FILE).log$(CLUSTER)
Output       = $(SUBMIT_FILE).o$(CLUSTER)
Error        = $(SUBMIT_FILE).o$(CLUSTER)

getenv = True
# cuda_version = 10.2
# cuda_version = 11.0

# Use this to make sure 1 gpu is available. The key words are case insensitive.
# REquest_gpus = 1
REquest_gpus = 2
requirements = (CUDADeviceName != "Tesla K40m")
requirements = (CUDADeviceName != "GeForce GTX TITAN X")
# requirements = (CUDADeviceName == "Quadro RTX 6000")
# 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 == "GeForce GTX TITAN X")

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

# 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

и скрипт main.sh:

#!/bin/bash

echo JOB STARTED

# export PATH=/home/miranda9/miniconda3/envs/automl-meta-learning/bin:/home/miranda9/miniconda3/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin
# export PATH=/usr/local/cuda/bin:/home/miranda9/miniconda3/envs/automl-meta-learning/bin:/home/miranda9/miniconda3/condabin:/usr/local/cuda/bin:/usr/local/bin:/usr/bin:/home/miranda9/my_bins:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin
export PATH=/usr/local/cuda/bin:/home/miranda9/miniconda3/envs/metalearning/bin:/home/miranda9/miniconda3/condabin:/usr/local/cuda/bin:/usr/local/bin:/usr/bin:/home/miranda9/my_bins:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/miranda9/my_bins:/home/miranda9/bin
# module load cuda-toolkit/10.2
# module load cuda-toolkit/11.1

# echo $PATH
# nvidia-smi
# conda list
which python

# - run script
python ~/ML4Coq/ml4coq-proj/embeddings_zoo/tree_nns/main_brando.py
# python ~/ML4Coq/ml4coq-proj/embeddings_zoo/tree_nns/main_brando.py --debug --num_epochs 5 --batch_size 2 --term_encoder_embedding_dim 8

echo JOB ENDED

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