从bash文件在Matlab中调用Gurobi

时间:2018-11-14 20:54:17

标签: bash matlab gurobi

我希望您能帮助理解为什么在我的大学HPC的bash文件中使用Gurobi调用Matlab脚本时出现以下错误。我想我搞砸了路径或许可证。

1)版本1

我有一个名为A的文件夹,其中包含文件

f.mmain.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。当我在笔记本电脑上以交互方式在Matlab中运行main.m时,它可以完美运行。

这是我的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.mmain.m

bash文件与版本1中的文件相同。

将cd放入文件夹后运行此命令时,我会得到错误

 Error using gurobi
Gurobi error 10009: HostID mismatch (licensed to [...], hostid is [...])

可能是什么错误?

0 个答案:

没有答案