我正在400
大学的 HPC 中运行一个数组作业(Matlab R2018b 任务)。将qsub
.sh 文件放入终端后,400
由它们启动的任务将立即被终止。
在每个任务的.o文件中没有报告错误,但仅报告以下警告
Warning: Name is nonexistent or not a directory:
/share/apps/.../NAG/mbl6a24dnl/mex.a64
如果了解可能有用:我在 Matlab .m 文件中调用 MOSEK 求解器。特别是,在我的 Matlab .m 文件的开头,我有
addpath /share/apps/mosek-9.2/9.2/toolbox/r2015aom
另外,这是我的 .sh 文件
#$ -S /bin/bash
#$ -l h_vmem=7G
#$ -l tmem=7G
#$ -l h_rt=480:0:0
#$ -cwd
#$ -j y
#Run 400 tasks
#$ -t 1-400
#$ -N count2
date
hostname
#Output the Task ID
echo "Task ID is $SGE_TASK_ID"
/share/apps/matlabR2018b -nodisplay -nodesktop -nojvm -nosplash -r "main; ID = $SGE_TASK_ID; f; exit"
如果我已联系管理员询问此问题(尚未回复),我能立即做些什么来修复它并运行我的代码吗?
答案1
我根本不了解 MatLab:我只是指出警告消息评论了一个非常具体的文件名。
当我用 google 搜索 mexa64 时,它总是显示为文件扩展名 .mexa64,而不是 mex.a64。因此文件名中的某个地方可能存在一些歧义。
“www.nag.co.uk/doc/inun/mb24/l6idml/in.html”上有一个 NAG 安装程序注释,其中包括路径名:/opt/NAG/mbl6i24dml/mex.a64/a00aa.mexa64;这可以解释一些事情,因为两种变体都在那里。
我还想知道为什么这是一个警告,但进程却被杀死了。看来.mexa64是一个代码库,如果MatLab找不到它,它会尝试从源代码编译它。因此,也许在发出警告后,它会尝试构建库,并在其他地方记录失败(或无法报告)。也可能源不可用或未正确找到。
我希望你们的大学管理员比我知道得更多。无论如何,您似乎都没有权限在服务器上纠正此问题。