canUseParallelPool

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

    Синтаксис

    Описание

    пример

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

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

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

    Даже если эта функция возвращает 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