Вызов Гуроби в Matlab из файла Bash - PullRequest
0 голосов
/ 14 ноября 2018

Мне бы хотелось, чтобы ваша помощь поняла, почему я получаю следующую ошибку при вызове сценария 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 [...])

В чем может быть ошибка?

...