Параллельная обработка Matlab: порождение параллельных дочерних процессов? - PullRequest
1 голос
/ 19 апреля 2020

В Matlab у меня есть глобальная процедура оптимизации (имитация отжига, для любопытных), и я хочу использовать промежуточные результаты для следующего:

  • Для каждой итерации (температуры) в имитируемом отжиге, У меня есть оценка глобального минимума функции до полного завершения алгоритма, используйте здесь функции set () и get () для этого значения.
  • Затем я хочу использовать эту оценку, чтобы породить другой экземпляр и снова выполнить оптимизацию параллельно. Оптимизация будущей функции зависит от текущего значения сверху.
  • В общей сложности Spawn X 'дочерние' экземпляры параллельно, используя все текущие оценки 'родительских' глобальных минимумов, которые были созданы до текущего 'child'
  • Когда оцененный глобальный минимум (ы) обновляется по мере выполнения процедуры, передайте соответствующие значения соответствующим «потомкам» и продолжите дочерние процедуры, даже если начальные условия технически изменились
  • После Завершив процедуру оптимизации верхнего уровня, начните завершать все дочерние элементы после завершения их текущей итерации
  • Вернуть все оценки. Это эффективно обеспечит оптимальный результат в настоящее время, и несколько неоптимальных оценок в будущем все будут взаимозависимы от дочернего процесса, созданного до него.

Я знаю, что вышеизложенное очень на высшем уровне, поэтому мои конкретные c вопросы таковы:

  • В Matlab есть простой способ порождать параллельные дочерние процессы, когда у меня есть оценка глобального минимума? parfeval, afterEach выглядит многообещающе, но документация довольно скудная позже. Возможно ли это?
  • В основном я ищу создание дерева дочерних процессов, выполняющихся параллельно, которые порождают в определенных c условиях. В идеале входные данные для этих дочерних элементов должны быть динамическими c, поскольку они зависят от процессов, выполняемых в ветвях выше. Есть ли легкодоступные примеры в Matlab или другом языке чего-то подобного?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...