Если у вас есть многоядерный процессор, вы можете видеть, что ускорение использует параллельную обработку. Можно установить параллельный пул нескольких рабочих с лицензией Parallel Computing Toolbox™. Для описания программного обеспечения Parallel Computing Toolbox смотрите Начало работы с Parallel Computing Toolbox (Parallel Computing Toolbox).
Предположим, что вы имеете двухъядерный процессор и хотите использовать параллельные вычисления:
Войти
parpool
parpool('local')
В зависимости от ваших настроек MATLAB может запустить параллельный пул автоматически. Чтобы активировать эту опцию, проверяйте Automatically create a parallel pool в Home > Parallel > Parallel Preferences.
Для использования командной строки войти
options = optimoptions('solvername','UseParallel',true);
Для приложения Оптимизации проверяйте Options > Approximated derivatives > Evaluate in parallel.
Когда вы запускаете применимый решатель с options
, применимые решатели автоматически используют параллельные вычисления.
Чтобы остановить вычислительную оптимизацию параллельно, установите UseParallel
к false
, или набор приложение Оптимизации, чтобы не вычислить параллельно. Чтобы остановить весь параллельный расчет, войти
delete(gcp)
Если у вас есть несколько процессоров в сети, используйте функции Parallel Computing Toolbox и программное обеспечение MATLAB Parallel Server™, чтобы установить параллельный расчет. Вот шаги, чтобы взять:
Убедитесь, что ваша система сконфигурирована правильно для параллельных вычислений. Согласуйте со своим системным администратором или обратитесь к документации Parallel Computing Toolbox.
Выполнять основную проверку:
В командной строке войти
parpool(prof)
prof
ваш кластерный профиль.Рабочие должны смочь получить доступ к вашему файлу целевой функции и, если применимо, вашему нелинейному ограничительному файлу функции. Существует два способа гарантировать доступ:
Распределите файлы рабочим, использующим parpool
AttachedFiles
аргумент. Например, если objfun.m
ваш файл целевой функции и constrfun.m
ваш нелинейный ограничительный файл функции, войти
parpool('AttachedFiles',{'objfun.m','constrfun.m'});
Рабочие получают доступ к своим собственным копиям файлов.
Дайте путь к сетевому файлу к своим файлам. Если network_file_path
сетевой путь к вашей цели или ограничительным файлам функции, войти
pctRunOnAll('addpath network_file_path')
Рабочие получают доступ к файлам функции по сети.
Проверяйте, является ли файл на пути каждого рабочего путем ввода
pctRunOnAll('which filename')
filename not found.
Для использования командной строки войти
options = optimoptions('solvername','UseParallel',true);
где 'solvername'
представляет один из нелинейных решателей та оценка параллели поддержки.
Для приложения Оптимизации проверяйте Options > Approximated derivatives > Evaluate in parallel.
После того, как вы устанавливаете свою среду параллельных вычислений, применимые решатели автоматически используют параллельные вычисления каждый раз, когда вы вызываете их с options
.
Чтобы остановить вычислительную оптимизацию параллельно, установите UseParallel
к false
, или набор приложение Оптимизации, чтобы не вычислить параллельно. Чтобы остановить весь параллельный расчет, войти
delete(gcp)
Чтобы протестировать видят, запускается ли проблема правильно параллельно,
Попробуйте свою проблему ни с чем не сравнимый расчет, чтобы гарантировать, что это запускается правильно последовательно. Убедитесь, что это успешно (дает правильные результаты) прежде, чем идти в следующий тест.
Установите UseParallel
к true
, и гарантируйте, что нет никакого параллельного пула с помощью delete(gcp)
. Снимите флажок с Automatically create a parallel pool в Home > Parallel > Parallel Preferences, таким образом, MATLAB не создает параллельный пул. Ваша проблема запускает parfor
последовательно, с итерациями цикла в обратном порядке от for
цикл. Убедитесь, что это успешно (дает правильные результаты) прежде, чем идти в следующий тест.
Установите UseParallel
к true
, и создайте параллельный пул с помощью parpool
. Если у вас не будет многоядерного процессора или настроенной сети, вы не будете видеть ускорения. Это тестирование должно просто проверить правильность расчетов.
Не забудьте вызывать свой решатель с помощью аргумента опций, чтобы протестировать или использовать параллельную функциональность.