我希望您能帮助理解为什么在我的大学HPC的bash文件中使用Gurobi调用Matlab脚本时出现以下错误。我想我搞砸了路径或许可证。
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。当我在笔记本电脑上以交互方式在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.m
,main.m
bash文件与版本1中的文件相同。
将cd放入文件夹后运行此命令时,我会得到错误
Error using gurobi
Gurobi error 10009: HostID mismatch (licensed to [...], hostid is [...])
可能是什么错误?