故障排除和调试

附加文件大小限制

作业的所有附加文件的总大小限制为4 GB。

文件访问和权限

确保对工人窗户操作系统可以访问文件

默认情况下,在Windows工人®操作系统安装作为服务运行的LocalSystem,所以它不能够访问映射的网络驱动器。

通常,网络被配置为不允许服务作为LocalSystem访问UNC或映射网络共享。在这种情况下,你必须运行具有权限的其他用户下的MJS服务登录的服务。请参见设置用户(MATLAB并行服务器)中的MATLAB®并行服务器™系统管理员指南。

任务功能不可用

如果工人找不到工作的功能,它会返回错误信息

使用==>函数eval未定义命令/函数'function_name'时出错。

运行该任务的工人没有访问该函数的权限function_name。一种解决方案是确保函数文件的位置,function_name.m,包括在作业的AdditionalPaths财产。另一个解决方案是通过添加将函数文件传输到workerfunction_name.mAttachedFiles作业的属性。

加载和保存错误

如果工作人员无法保存或加载文件,您可能会看到错误消息

???错误使用==>保存无法写入文件myfile。垫:拒绝访问。???使用==>加载时出错,无法读取文件myfile。mat:没有这样的文件或目录。

在确定这个错误的原因时,考虑以下问题:

  • 工人的当前文件夹是什么?

  • 工人可以找到该文件或文件夹?

  • 什么用户工人运行的?

  • 难道工人有权读取或写入文件有问题?

任务或作业留在排队状态

作业或任务可能陷入排队状态。要调查这个问题的原因,请查看调度程序的日志:

  • 平台LSF®调度程序可能会发送带有错误信息的电子邮件。

  • 微软®的Windows HPC服务器(包括CCS),LSF®PBS Pro®, TORQUE将输出消息保存在调试日志中。看到getDebugLog参考页。

  • 如果使用的是通用的调度,确保提交功能将错误信息重定向到一个日志文件。

问题的可能原因是:

  • 未能启动因许可错误的MATLAB工人,可执行文件是不是工人机器上的默认路径上,或者不安装在调度希望它是位置。

  • MATLAB无法读/写调度器的作业存储位置中的作业输入/输出文件。存储位置可能不能被所有工作节点访问,或者MATLAB运行的用户没有权限读/写作业文件。

  • 如果使用的是通用的调度:

    • 环境变量PARALLEL_SERVER_DECODE_FUNCTIONMATLAB的工人开始之前没有定义。

    • decode函数不在工人的路径上。

没有结果或作业失败

任务错误

如果您的工作没有返回结果(即,fetchOutputs(工作)返回一个空单元格数组),作业可能失败,其中的一些任务有它们的值错误属性集。

您可以使用下面的代码来识别错误信息的任务:

errmsgs = (yourjob。任务,{' ErrorMessage '});= ~cellfun(@isempty, errmsgs);celldisp (errmsgs(非空的);

此代码显示任务的非空的错误消息,在作业对象中找到你的工作

调试日志

如果您使用的是支持第三方调度,您可以使万博1manbetx用getDebugLog函数读取从调度器的调试日志某项工作或任务。

例如,在LSF调度程序上找到失败的作业,并读取它的调试日志:

C = parcluster( 'my_lsf_profile')failedjob = findJob(C, '州', '失败');消息= getDebugLog(C,failedjob(1))

客户端之间的连接问题,并MATLAB作业调度器

为了测试客户端机器和计算集群机器之间的连接性,可以使用Admin Center。有关Admin Center的更多信息,包括如何启动它和如何测试连接性,请参见启动管理中心(MATLAB并行服务器)和测试连接(MATLAB并行服务器)。

用于诊断客户端和MATLAB作业调度程序之间的连接问题的其他方法的详细说明可以在一些被发现错误报告上市MathWorks的网站。

以下部分可以帮助您识别一些连接问题的一般性质。

客户端无法查看MATLAB作业调度器

如果无法定位或连接到MATLAB作业调度器,则使用parcluster,最可能导致失败的原因是:

  • MATLAB作业调度器目前没有运行。

  • 防火墙不允许从客户机到MATLAB作业调度器的通信。

  • 客户端和MATLAB作业调度程序没有运行该软件的版本相同。

  • 客户端和MATLAB作业调度解决不了对方的短主机名。

  • MATLAB作业调度器使用非默认值BASE_PORT属性中定义的mjs_def文件,宿主在群集配置文件属性不指定此端口。

MATLAB作业调度程序无法看到客户端

如果一条警告消息说,MATLAB作业调度器无法打开一个TCP连接到客户端计算机,因为这是最可能的原因是

  • 防火墙不允许从MATLAB作业调度器到客户机的通信。

  • MATLAB作业调度器无法解析客户端计算机的短主机名。使用pctconfig更改MATLAB作业调度器用于与客户机联系的主机名。

SFTP错误:收到消息太长

具有非共享文件系统的通用调度器示例代码将联系一个sftp服务器来处理与集群文件系统之间的文件传输。这种sftp的使用受制于所有正常的sftp漏洞。可能出现的一个问题会导致类似如下的错误消息:

使用==> RemoteClusterAccess> RemoteClusterAccess.waitForChoreToFinishOrError在780发生在com.mathworks.toolbox.distcomp.clusteraccess.UploadFilesChore以下错误错误:由造成无法用于作业3派Job3.common.mat:一是你的shell的init文件包含被写入标准输出,与SFTP干扰的命令。访问帮助com.mathworks.toolbox.distcomp.remote.spi.plugin.SftpExtraBytesFromShellException:一个shell的初始化文件包含了被写入标准输出,与SFTP干扰的命令。查找和条件测试包的命令,例如,如果然后如果(“$ TERM” =“哑”!)然后/你的命令/结束结束($ TERM = 0?!):4:收到的消息是太长:1718579037

诉说症状是那句“接收信息太长:“然后是很多人。

SFTP服务器启动一个外壳,通常是bash或tcsh,需要传输文件之前正确设置你的标准的读写权限。服务器初始化的标准方式外壳,呼吁像的.bashrc和.cshrc文件。如果启动时你的shell发出的文本到标准输出发生此问题。该文本被调回内运行MATLAB SFTP客户端,并且被解释为SFTP服务器的响应消息的大小。

要解决此错误,请找到发出文本的shell启动文件代码,并将其删除或将其括起来如果报表,看看是否SFTP服务器启动外壳:

if ($ ?then if ("$TERM" != "dumb") then /your command/ endif endif

您可以在MATLAB重试之前测试此之外MATLAB与标准UNIX或Windows SFTP命令行客户端。如果该问题不固定的,错误信息仍然存在:

sftp你的提交机连接到你的提交机…收到消息太长1718579042

如果问题是固定的,你应该看到:

sftp你的提交机连接到你的提交机…