Main Content

canUseParallelPool

並列関数が並列プールを使用できることを検証

    説明

    tf = canUseParallelPool() は、並列関数が並列プールを作成して使用できるかどうかを示す logical 値を返します。

    Parallel Computing Toolbox™ がインストールされて使用が許可され、既定のプールが設定およびサポートされ、並列プールの自動作成が有効な場合、logical 1 (true) を返します。それ以外の場合、この関数は logical 0 (false) を返します。この関数では並列プールは作成されません。

    parfor (Parallel Computing Toolbox) および parfeval (Parallel Computing Toolbox) などの並列関数が並列プールを使用できるかどうかを確認するには、canUseParallelPool を使用します。これにより、並列プールが存在しない場合に並列プールを必要とするコードの実行を回避できます。

    この関数で 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 で導入

    参考

    | (Parallel Computing Toolbox)

    トピック