Как сделать внешний набор инструментов доступным для задания MATLAB Parallel Computing Toolbox? - PullRequest
2 голосов
/ 13 декабря 2010

Как продолжение этого вопроса и последующего ответа , кто-нибудь знает, как создать задание, используя Parallel Computing Toolbox (используя createJob и createTask)получить доступ к внешним наборам инструментов?Можно ли указать параметр конфигурации при создании функции для указания наборов инструментов, которые должны быть загружены?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2010

Согласно этому разделу документации , один из способов сделать это - указать 'PathDependencies' свойство или 'FileDependencies' свойство объекта задания так, чтобы он указывал на функции, которые необходимо использовать работникам задания.

Вы должны иметь возможность указать путь к KbCheck функции in PsychToolbox вместе с любыми другими функциями или каталогами, необходимыми для правильной работы KbCheck.Это будет выглядеть примерно так:

obj = createJob('PathDependencies',{'path_to_KbCheck',...
                                    'path_to_other_PTB_functions'});
2 голосов
/ 13 декабря 2010

Несколько комментариев, основанных на моей работе по устранению неисправностей, это:

  • Похоже, что существуют несоответствия с тем, насколько хорошо вложенные функции и анонимные функции работают с инструментарием параллельных вычислений. Я не смог заставить их работать, в то время как другие смогли. (См. Также здесь .) Поэтому я бы рекомендовал хранить каждую функцию в своем собственном файле и включать в себя эти файлы, используя PathDependencies или FileDependencies свойства, как описано выше gnovice.

  • Очень сложно устранить неполадки с инструментарием параллельных вычислений, так как все происходит вне вашего поля зрения. Свободно используйте точки останова в своем коде, а команда inspect - ваш друг. Также обратите внимание, что в случае ошибки объекты задачи будут содержать параметр ошибки, который в свою очередь будет содержать строку ErrorMessage и, возможно, объект Error.causes MException. Оба они были чрезвычайно полезны при отладке.

  • При включении Psychtoolbox вам нужно сделать это следующим образом. Сначала создайте файл jobStartup.m со следующими строками:

    PTB_path = '/Users/eliezerk/Documents/MATLAB/Psychtoolbox3/';
    addpath( PTB_path );
    cd( PTB_path );
    SetupPsychtoolbox;
    

    Однако, поскольку инструментарий параллельных вычислений не может обрабатывать графические функции, выполнение SetupPsychtoolbox как есть фактически приведет к сбою потока. Чтобы избежать этого, вам нужно отредактировать функцию PsychtoolboxPostInstallRoutine, которая вызывается в самом конце SetupPsychtoolbox. В частности, вы хотите закомментировать строку AssertOpenGL (строка 496 на момент ответа; это может измениться в будущих выпусках).

...