Вызов функций Python из рабочих процессов MATLAB

Я пытаюсь запустить сценарий MATLAB с использованием parfor, который запускает модель simulink параллельно с помощью функции sim, и эта модель simulink содержит функциональный блок MATLAB.

Функция, определенная в этом блоке, вызывает функцию Python, используя «py». механизм.

К сожалению, прогон иногда кажется застрявшим посередине, когда я загрузил большое количество симуляций. Выходные данные отладки перестают отображаться. Подозреваю, что где-то тупик.

Итак, мои вопросы

  • Можем ли мы запустить модель Simulink, которая содержит функции Python параллельно?
  • Каким образом MATLAB вызывает интерпретатор Python? Один для каждого работника MATLAB или один для всего MATLAB?

Я использую MATLAB R2017b на Mac.

Дополнение от 22.03.2018: Я обратился в поддержку, и они ответили, что вызов функции python из функционального блока MATLAB в модели simulink не поддерживается и всякое бывает. Тем не менее меня интересует, как MATLAB взаимодействует с (а) интерпретатором (ами) Python. Существует ли один интерпретатор Python, который взаимодействует со всем MATLAB, или существует несколько экземпляров Python для всех рабочих процессов MATLAB?

Дополнение от 22.04.2018: Обновление MATLAB 2018a похоже решает проблему


person Yoriyuki Yamagata    schedule 19.03.2018    source источник
comment
Действительно хороший вопрос. Что я знаю, так это то, что невероятно сложно (если вообще возможно) иметь несколько подинтерпретаторов Python, работающих параллельно из-за глобальной блокировки интерпретатора (wiki.python.org/moin/GlobalInterpreterLock). В зависимости от количества усилий по портированию кода Python в скрипт Matlab, это может быть самый простой и быстрый способ решить вашу проблему.   -  person sandwood    schedule 19.04.2018
comment
Я предлагаю вам разместить схему, чтобы помочь понять архитектуру вашей проблемы.   -  person sandwood    schedule 19.04.2018