Parallel processing Can';在unix集群上找不到函数:matlab并行:未定义函数
我试图在大型集群上运行并行作业;所有代码和函数在我的计算机(Mac OS 10.7和Matlab v7.13.0.564(R2011b))上都可以正常工作,但集群(unix redhat 5.5-kernel=2.6.18-238.12.1.el5 Matlab v7.13.0.564(R2011b)上有些东西不工作 以下是一系列命令,它们在我的机器上正常工作,在集群上失败。函数Parallel processing Can';在unix集群上找不到函数:matlab并行:未定义函数,parallel-processing,cluster-computing,undefined,matlab,Parallel Processing,Cluster Computing,Undefined,Matlab,我试图在大型集群上运行并行作业;所有代码和函数在我的计算机(Mac OS 10.7和Matlab v7.13.0.564(R2011b))上都可以正常工作,但集群(unix redhat 5.5-kernel=2.6.18-238.12.1.el5 Matlab v7.13.0.564(R2011b)上有些东西不工作 以下是一系列命令,它们在我的机器上正常工作,在集群上失败。函数add2nums位于子目录/lib,下面也有相关说明 function out = add2nums(num1, nu
add2nums
位于子目录/lib
,下面也有相关说明
function out = add2nums(num1, num2)
out = num1+num2;
end
发生了什么,我该如何解决
>> addpath('./lib')
>> which add2nums
/My_Matlab_Path/lib/add2nums.m (matlab sees the function on my machine and on unix cluster)
>> sched = findResource('scheduler','type','local');
>> job = createParallelJob(sched,'configuration','local');
>> task = createTask(job,@add2nums,1,{[1 2],[3 4]},'CaptureCommandWindowOutput',true);
>> addpath('./lib')
>> submit(job)
>> waitForState(job)
>> task
task =
Task ID 1 from Job ID 19 Information
====================================
State : finished
Function : @add2nums
StartTime : Tue Aug 07 10:27:44 MDT 2012
Running Duration : 0 days 0h 0m 1s
- Task Result Properties
ErrorIdentifier : MATLAB:UndefinedFunction
ErrorMessage : Undefined function 'add2nums' for input arguments of type 'double'.
在阅读时,似乎需要设置文件和路径依赖项
请参阅并行作业对象的和属性。阅读,似乎需要设置文件和路径依赖项
请参阅并行作业对象的和属性。找到了一个解决方案;在这种情况下,它可能特定于我正在处理的unix系统体系结构。我从一个文件系统提交作业,它们在单独的(临时)文件系统中运行目录-在一个单独的文件系统上。我认为这些实际上是不同建筑中的不同硬件,但我不能肯定 解决方案是添加以下行: p='PATH_TO_LOCAL_DIRECTORY_OF_FUNCTIONS' set(作业,'FileDependencies',{p})
我以前尝试过设置FileDependencies属性,但我以前使用的路径是matlab工作人员无法使用的路径。我的解决方案是将我的整个子函数目录复制到远程(临时)unix作业正在运行的目录;只要“FileDependencies”属性指向该目录,该远程目录就对matlab工作人员来说是本地的并且是可见的。找到了一个解决方案;在这种情况下,它可能特定于我正在处理的unix系统体系结构。我从一个文件系统提交作业,它们在单独的文件系统中运行(临时)目录-在一个单独的文件系统上。我认为这些实际上是不同建筑中的不同硬件,但我不是肯定的 解决方案是添加以下行: p='PATH_TO_LOCAL_DIRECTORY_OF_FUNCTIONS' set(作业,'FileDependencies',{p}) 我以前尝试过设置FileDependencies属性,但我以前使用的路径是matlab工作人员无法使用的路径。我的解决方案是将我的整个子函数目录复制到远程(临时)unix作业正在运行的目录;只要“FileDependencies”属性指向该远程目录,则该远程目录对matlab工作人员来说是本地的,并且是可见的