exponenta event banner

canUseParallelPool

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

    Синтаксис

    Описание

    пример

    tf = canUseParallelPool() возвращает логическое значение, указывающее, могут ли параллельные функции создавать и использовать параллельный пул.

    Функция возвращает логическое значение 1 (true) Если Toolbox™ Parallel Computing установлен и лицензирован для использования, настраивается и поддерживается параллельный пул по умолчанию и включается автоматическое создание параллельных пулов. В противном случае функция возвращает логическое значение 0 (false). Эта функция не создает параллельный пул.

    Использовать canUseParallelPool для проверки наличия параллельных функций, таких как parfor(Панель инструментов параллельных вычислений) и parfeval (Панель параллельных вычислений) может использовать параллельный пул. Это позволяет избежать выполнения кода, для которого требуется параллельный пул, если он недоступен.

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

    Примеры

    свернуть все

    Перед выполнением кода, выполняющегося параллельно, убедитесь, что можно использовать параллельный пул. Если пул недоступен, запустите код в серийном формате.

    N=100;
    
    if canUseParallelPool
        f(1:N) = parallel.FevalFuture;
        for i = 1:N
            f(i) = parfeval(@rank,1,magic(i));
        end
        results = fetchOutputs(f);
    else
        results = zeros(1,N);
        for i = 1:N
            results(i) = rank(magic(i));
        end
    end

    Если canUseParallelPool возвращает значение true, затем parfeval создает параллельный пул, а код запускается параллельно. В противном случае код запускается в обычном режиме for-луп.

    См. также

    | (Панель инструментов параллельных вычислений)

    Темы

    Представлен в R2020b