Используя параллельные вычисления в Optimization Toolbox

Используя параллельные вычисления с многоядерными процессорами

Если у вас есть многоядерный процессор, вы можете видеть, что ускорение использует параллельную обработку. Можно установить параллельный пул нескольких рабочих с лицензией Parallel Computing Toolbox™. Для описания программного обеспечения Parallel Computing Toolbox смотрите Начало работы с Parallel Computing Toolbox (Parallel Computing Toolbox).

Предположим, что вы имеете двухъядерный процессор и хотите использовать параллельные вычисления:

  • Войти

    parpool
    в командной строке. MATLAB® запускает пул рабочих, использующих многоядерный процессор. Если вы ранее установили кластерный профиль не по умолчанию, можно осуществить многожильное (локальное) вычисление:

    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™, чтобы установить параллельный расчет. Вот шаги, чтобы взять:

  1. Убедитесь, что ваша система сконфигурирована правильно для параллельных вычислений. Согласуйте со своим системным администратором или обратитесь к документации Parallel Computing Toolbox.

    Выполнять основную проверку:

    1. В командной строке войти

      parpool(prof)
      где prof ваш кластерный профиль.

    2. Рабочие должны смочь получить доступ к вашему файлу целевой функции и, если применимо, вашему нелинейному ограничительному файлу функции. Существует два способа гарантировать доступ:

      1. Распределите файлы рабочим, использующим parpool AttachedFiles аргумент. Например, если objfun.m ваш файл целевой функции и constrfun.m ваш нелинейный ограничительный файл функции, войти

        parpool('AttachedFiles',{'objfun.m','constrfun.m'});

        Рабочие получают доступ к своим собственным копиям файлов.

      2. Дайте путь к сетевому файлу к своим файлам. Если network_file_path сетевой путь к вашей цели или ограничительным файлам функции, войти

        pctRunOnAll('addpath network_file_path')

        Рабочие получают доступ к файлам функции по сети.

    3. Проверяйте, является ли файл на пути каждого рабочего путем ввода

      pctRunOnAll('which filename')
      Если у какого-либо рабочего нет пути к файлу, сообщает это
      filename not found.

    • Для использования командной строки войти

      options = optimoptions('solvername','UseParallel',true);

      где 'solvername' представляет один из нелинейных решателей та оценка параллели поддержки.

    • Для приложения Оптимизации проверяйте Options > Approximated derivatives > Evaluate in parallel.

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

Чтобы остановить вычислительную оптимизацию параллельно, установите UseParallel к false, или набор приложение Оптимизации, чтобы не вычислить параллельно. Чтобы остановить весь параллельный расчет, войти

delete(gcp)

Тестирование параллельных расчетов

Чтобы протестировать видят, запускается ли проблема правильно параллельно,

  1. Попробуйте свою проблему ни с чем не сравнимый расчет, чтобы гарантировать, что это запускается правильно последовательно. Убедитесь, что это успешно (дает правильные результаты) прежде, чем идти в следующий тест.

  2. Установите UseParallel к true, и гарантируйте, что нет никакого параллельного пула с помощью delete(gcp). Снимите флажок с Automatically create a parallel pool в Home > Parallel > Parallel Preferences, таким образом, MATLAB не создает параллельный пул. Ваша проблема запускает parfor последовательно, с итерациями цикла в обратном порядке от for цикл. Убедитесь, что это успешно (дает правильные результаты) прежде, чем идти в следующий тест.

  3. Установите UseParallel к true, и создайте параллельный пул с помощью parpool. Если у вас не будет многоядерного процессора или настроенной сети, вы не будете видеть ускорения. Это тестирование должно просто проверить правильность расчетов.

Не забудьте вызывать свой решатель с помощью аргумента опций, чтобы протестировать или использовать параллельную функциональность.

Похожие темы