Если у вас есть многоядерный процессор, вы можете видеть, что ускорение использует параллельную обработку. Можно установить параллельный пул нескольких рабочих с лицензией 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. Если у вас не будет многоядерного процессора или настроенной сети, вы не будете видеть ускорения. Это тестирование должно просто проверить правильность расчетов.
Не забудьте вызывать свой решатель с помощью аргумента опций, чтобы протестировать или использовать параллельную функциональность.