Паралелі обчислення в matlab, engraver - s weblog

Parallel Computing Toolbox дозволяє запускати кілька завдань одночасно. Для перевірки можливості паралельних обчислень в файловому меню запускаємо Parallel → Manage Configurations ...

Паралелі обчислення в matlab, engraver - s weblog

Вибираємо пункт local і запускаємо Start Validation.

Щоб порахувати щось, створюємо об'єкт завдання

Тут функція findResource () повертає ідентифікатор доступних ресурсів. Далі наповнюємо змістом завдання. Припустимо, потрібно взяти два інтеграла від m-функцій myfun1 і myfun2 в межах і відповідно. Це робиться в такий спосіб:

retCount означає кількість повертаються параметрів (один в нашому випадку), а як cell-об'єкт задаємо список параметрів викликається функції quad. Завдань може бути більше, ніж доступних процесорів. Запускаємо завдання на рахунок командою

При цьому термінал Матлаб залишається вільним і в ньому можна робити щось інше. Зупинити виконання завдання можна функцією

Почекати завершення паралельної завдання можна функцією

Вихід з неї відбувається коли стан завдання змінюється (running / finished, наприклад). Перевіряємо поточний стан обчислень всіх підзадач в job:

Корисними можуть виявитися функції pause, resume та wait. Останньою можна вказувати якого саме стану завдання чекати. Забрати результати обчислень можна так:

data буде cell-об'єктом, де M - кількість запущених в завданні задач, а N - максимальна кількість вихідних аргументів по всіх завдань.