Parallel processing 如何使外部工具箱可用于MATLAB并行计算工具箱作业?

Parallel processing 如何使外部工具箱可用于MATLAB并行计算工具箱作业?,parallel-processing,external,matlab,Parallel Processing,External,Matlab,作为问题和后续问题的继续,是否有人知道如何使用createJob和createTask access外部工具箱使用并行计算工具箱创建作业?在创建函数以指定应加载的工具箱时,是否可以指定配置参数?根据,可以这样做的一种方法是指定作业对象的或,以便它指向需要作业的工作人员能够使用的函数 您应该能够指向in,以及KbCheck正常工作所需的任何其他函数或目录。它看起来像这样: obj = createJob('PathDependencies',{'path_to_KbCheck',...

作为问题和后续问题的继续,是否有人知道如何使用createJob和createTask access外部工具箱使用并行计算工具箱创建作业?在创建函数以指定应加载的工具箱时,是否可以指定配置参数?

根据,可以这样做的一种方法是指定作业对象的或,以便它指向需要作业的工作人员能够使用的函数

您应该能够指向in,以及KbCheck正常工作所需的任何其他函数或目录。它看起来像这样:

obj = createJob('PathDependencies',{'path_to_KbCheck',...
                                    'path_to_other_PTB_functions'});

根据我的工作,以下是几点意见:

嵌套函数和匿名函数在并行计算工具包中的工作方式似乎不一致。我无法让他们工作,而我却能够。另见。因此,我建议将每个函数存储在它自己的文件中,并包括使用or属性的那些文件,如上面gnovice所述

对并行计算工具包进行故障排除非常困难,因为所有事情都发生在您的视图之外。在代码中大量使用断点,inspect命令就是您的朋友。还请注意,如果出现错误,任务对象将包含一个错误参数,该参数将包含ErrorMessage字符串,可能还包含error.causes MException对象。这两种方法在调试中都非常有用

当包含Psychtoolbox时,您需要按照以下步骤执行。首先,创建一个包含以下行的文件:

PTB_path = '/Users/eliezerk/Documents/MATLAB/Psychtoolbox3/';
addpath( PTB_path );
cd( PTB_path );
SetupPsychtoolbox;
然而,由于并行计算工具包无法处理任何图形功能,按原样运行SetupPsychtoolbox实际上会导致线程崩溃。为了避免这种情况,您需要编辑PsychtoolboxPostInstallRoutine函数,该函数在SetupPsychtoolbox的末尾调用。具体地说,您希望注释掉截至本回答时的AssertOpenGL第496行;这在将来的版本中可能会更改


请注意,这种形式的createJob使用默认的并行配置-如果您有调度程序对象,也可以使用sched.createJob。。。非常感谢你指出这些。我真的很想知道为什么他们在手册中使用第三方调度程序的部分隐藏了所有这些信息。无论如何,我真的感谢你的帮助!我想知道使用嵌套/匿名函数的不一致性是否与使用的MATLAB版本或并行计算工具箱有关。我在为每个MATLAB版本7.8.0.347和PCT版本4.1使用R2009a时都没有问题。@gnovice-我正在运行MATLAB 7.8.0.347 R2009a和PCT 4.1,所以我想没有问题。我对原因很好奇,但我认为我没有足够的信息来提交一份有用的bug报告。