Parallel processing Can';在unix集群上找不到函数:matlab并行:未定义函数

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

我试图在大型集群上运行并行作业;所有代码和函数在我的计算机(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, 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工作人员来说是本地的,并且是可见的