mapreducer
mapreduce および tall 配列の並列実行環境の定義
構文
説明
mapreducer は、mapreduce または tall 配列の実行環境を定義します。関数 mapreducer は、実行環境を変更して異なるクラスターを使用する場合、または逐次開発と並列開発を切り替える場合に使用します。
既定の実行環境では、ローカルの MATLAB® セッションまたは並列プール (Parallel Computing Toolbox™ がある場合) が使用されます。Parallel Computing Toolbox がインストールされている場合、関数 tall または関数 mapreduce を使用すると、既定の設定を変更していない限り、ワーカーの並列プールが MATLAB により自動的に起動されます。既定の並列プールではローカル ワーカーが使用され、通常はマシンの各コアにつき 1 つのワーカーが使用されます。[parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] オプションをオフにしている場合、並列リソースを使用するには明示的にプールを起動しなければなりません。並列設定の指定を参照してください。
tall 配列を扱うときには、mapreducer を使用して実行環境を設定してから tall 配列を作成します。tall 配列は、作成された時点現在のグローバル実行環境にバインドされます。その後、グローバル実行環境を変更した場合、tall 配列は無効になり、再作成しなければなりません。
メモ
MATLAB では、mapreducer を使用して構成設定を指定する必要はありません。mapreduce アルゴリズムと tall 配列の計算は、自動的にローカルの MATLAB セッションのみで実行されるからです。Parallel Computing Toolbox もインストールされている場合は、並列実行用にこのページにリストされている追加の mapreducer 構成オプションを使用できます。MATLAB Compiler™ がインストールされている場合は、展開先環境で実行するための別の mapreducer 構成オプションを使用できます。
MATLAB のドキュメンテーションの mapreducer、または MATLAB Compiler のドキュメンテーションの mapreducer (MATLAB Compiler) を参照してください。
入力引数をもたない mapreducer は、すべて既定値が指定された mapreducer 実行環境を新規作成し、これを現在の mapreduce または tall 配列の実行環境に設定します。gcmr を使用して、現在の mapreducer の構成を取得できます。
既定の設定 ([parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] がオン) が使用され、並列プールが開かれていない場合、
mapreducerは既定のクラスター プロファイルを使用してプールを開き、このプールに基づいてgcmrを mapreducer に設定してから、この mapreducer を返します。並列プールが開いている場合、
mapreducerは現在のプールに基づいてgcmrを mapreducer に設定し、この mapreducer を返します。[parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] がオフであり、並列プールが開かれていない場合、
mapreducerはローカルの MATLAB セッションに基づいてgcmrを mapreducer に設定し、mapreducerがこの mapreducer を返します。
mapreducer(0) は、並列リソースを使用せずに mapreduce または tall 配列の計算が MATLAB クライアント セッションで実行されるように指定します。
mapreducer( は、poolobj)mapreduce または tall 配列を並列実行するための並列プールを指定します。poolobj は parallel.Pool オブジェクトです。既定のプールは gcp によって返されるか、または開かれる現在のプールです。
mapreducer( は、hadoopCluster)mapreduce または tall 配列を並列実行するための Hadoop® クラスターを指定します。hadoopCluster は parallel.cluster.Hadoop オブジェクトです。
mapreducer( は、前に作成した MapReducer オブジェクト mr)mr の ObjectVisibility プロパティが 'On' であれば、そのオブジェクトを使用して mapreduce または tall 配列のグローバル実行環境を設定します。
は、MapReducer オブジェクトを返して実行環境を指定します。複数の MapReducer オブジェクトを定義でき、いずれかのオブジェクトを入力引数として mr = mapreducer(___)mapreducer または mapreduce に渡すことで、実行環境を切り替えることができます。
は、前の構文のいずれかを使用して MapReducer オブジェクト mr = mapreducer(___,'ObjectVisibility','Off')mr を非表示にします。この構文を使用して、mapreduce のグローバル実行環境に影響を与えることなく、新しい MapReducer オブジェクトを作成します。
例
逐次で開発してからローカル ワーカーまたはクラスターを使用する
逐次で開発してローカル ワーカーまたは指定されたクラスターを使用しない場合は、次のように入力します。
mapreducer(0);
tall 配列の作成後に mapreducer を使用して実行環境を変更した場合、tall 配列は無効になり、再作成しなければなりません。ローカル ワーカーまたは指定されたクラスターを再び使用するには、次のように入力します。
mapreducer(gcp);
[parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] をオフにした場合の mapreducer
[parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] オプションをオフにしている場合、並列リソースを使用するには明示的にプールを起動しなければなりません。詳細については、並列設定の指定を参照してください。
次のコードは、mapreducer を使用して実行環境をローカルの MATLAB セッションに設定し、ローカルの並列プールを指定する方法を示しています。
>> mapreducer(0)
>> parpool('Processes',1);
Starting parallel pool (parpool) using the 'Processes' profile ... Connected to 1 workers.
並列プールを使用して tall 式を評価します。
>> gather(min(tall(rand(1000,1))))
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.99 sec ans = 5.2238e-04
入力引数
出力引数
ヒント
tall 配列を扱うアルゴリズムを開発する利点の 1 つは、コード作成が一度ですむことです。コードをローカルで作成してから、アルゴリズムを書き換えることなく mapreducer を使用してスケール アップし、Parallel Computing Toolbox、MATLAB Parallel Server™ または MATLAB Compiler が提供する機能を利用できます。
拡張機能
バージョン履歴
R2014b で導入