Мне бы хотелось, чтобы ваша помощь поняла, почему я получаю следующую ошибку при вызове сценария Matlab с использованием Gurobi из файла bash в HPC моего университета. Я предполагаю, что я путаюсь с путями или лицензиями.
1) Версия 1
У меня есть папка с именем A
, содержащая файлы
f.m
, main.m
плюс все файлы Gurobi
gurobi.mexmaci64
gurobi_iis.m
gurobi_iis.mexmaci64
gurobi.read.m
gurobi_read.mexmaci64
gurobi_setup.m
gurobi_write.m
gurobi_write.mexmaci64
Цепочка: main.m
вызывает f.m
, которая использует Gurobi для запуска LP. Когда я интерактивно запускаю main.m
в Matlab на моем ноутбуке, он работает отлично
Это мой bash файл
#$ -S /bin/bash
#$ -l h_vmem=8G
#$ -l tmem=8G
#$ -l h_rt=480:0:0
#$ -cwd
#$ -j y
#Run 1 tasks where each task has a different $SGE_TASK_ID ranging from 1 to 1
#$ -t 1-1
#$ -N out6M
date
hostname
#Output the Task ID
echo "Task ID is $SGE_TASK_ID"
export GRB_LICENSE_FILE="/share/apps/[...].lic"
export PATH=/share/apps/[...]/matlab:/share/apps/matlabR2017b/bin:$PATH
matlab -nodisplay -nodesktop -nojvm -nosplash -r "main; ID = $SGE_TASK_ID; f; exit"
Когда я запускаю это после того, как cd в моей папке, я получаю как ошибку
Attempt to execute SCRIPT gurobi as a function: [...]
2) Версия 2
Я тогда подумал, что, возможно, HPC не нравится, что у меня есть следующие файлы
gurobi.mexmaci64
gurobi_iis.m
gurobi_iis.mexmaci64
gurobi.read.m
gurobi_read.mexmaci64
gurobi_setup.m
gurobi_write.m
gurobi_write.mexmaci64
в моей папке (может быть, они уже экспортированы из пути, который я указал в файле bash к моей папке?). Поэтому я удалил их.
Папка A
теперь содержит только файлы
f.m
, main.m
Файл bash такой же, как в версии 1.
Когда я запускаю это после того, как в мою папку попал cd, я получаю сообщение об ошибке
Error using gurobi
Gurobi error 10009: HostID mismatch (licensed to [...], hostid is [...])
В чем может быть ошибка?