主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

並列プールでの高配列の使用

并行计算工具箱™がある場合は,ローカルのMATLAB®セッションまたはローカルの並列プールで高配列を使用できます。MATLAB并行服务器™がインストールされている場合は,クラスター上でも高配列の計算を実行できます。この例では,マシン上のローカルクラスターでワーカーを使用します。コードをローカルで作成してからスケールアップすることで,アルゴリズムを書き換えることなく并行计算工具箱およびMATLAB并行服务器が提供する機能を利用できます。高配列およびデータストアを使用するビッグデータのワークフローも参照してください。

データストアを作成し,高テーブルに変換します。

ds =数据存储(“airlinesmall.csv”);varnames = {“ArrDelay”“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”

并行计算工具箱がインストールされている場合,関数を使用すると,既定の並列プールの基本設定をオフにしていない限り,ワーカーの並列プールがMATLABにより自動的に起動されます。既定のクラスターは,マシン上のローカルワーカーを使用します。

メモ

並列プールの自動的な起動をオフにするには,並列基本設定を変更します。[parforなどの並列キーワードが実行された場合に並列プールを自動的に作成する(まだ存在していない場合))オプションをオフにした場合,関数で並列処理にプールを使用するには明示的にプールを起動しなければなりません。並列基本設定の指定を参照してください。

并行计算工具箱がある場合は,MATLABの高表の例と同じコードを実行して,ローカルマシンのワーカー上でそのコードを自動的に並列実行できます。

データストアから高テーブルttを作成します。

tt =高(ds)
使用“本地”配置文件启动并行池(parpool)…与4名工人相连。tt = M×2 tall table ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1::::

この表示は,行数が未知であることを示しています。は計算が完了するまではプレースホルダーです。

高テーブルから到着遅延ArrDelayを抽出します。このアクションで,以降の計算に使用する新たな高配列変数が作成されます。

一个= tt.ArrDelay;

高配列に対して一連の操作を指定できます。この操作は,收集を呼び出すまで実行されません。こうすることで,長時間かかる可能性のある複数のコマンドをバッチ処理できるようになります。たとえば,到着遅延の平均と標準偏差を計算します。これらの値を使用して,平均値から1標準偏差内にある遅延の上下のしきい値を作成します。

m =意味着(,“omitnan”);s =性病(,“omitnan”);One_sigma_bounds = [m-s m m+s];

收集を使用してone_sigma_boundsを計算し,その解をメモリに格納します。

sig1 =收集(one_sigma_bounds)
使用并行池'local'计算高表达式:- Pass 1 of 1:在4.5秒内完成计算在6.3秒内完成sig1 = -23.4572 7.1201 37.6975

複数の事項を一度に評価する場合は,複数の入力と出力を收集に指定できます。これにより,それぞれの高配列で收集を個別に呼び出すよりも高速になります。例として、到着遅延の最小値と最大値を計算します。

[max_delay, min_delay] = gather(max(a),min(a))
Max_delay = 1014 min_delay = -64

逐次で開発してローカルワーカーまたは指定されたクラスターを使用しない場合は,次のコマンドを入力します。

mapreduce (0);
高配列の作成後にmapreduceを使用して実行環境を変更した場合,高配列は無効になり,再作成しなければなりません。ローカルワーカーまたは指定されたクラスターを再び使用するには,次のコマンドを入力します。
mapreduce (gcp);

メモ

高配列を扱うアルゴリズムを開発する利点の1つは,コード作成が一度ですむことです。コードをローカルで作成した後,アルゴリズムを書き換えずにmapreduceを使用してクラスターにスケールアップできます。例は,火花対応Hadoopクラスターでの高配列の使用を参照してください。

参考

|||||

関連する例

詳細