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 で導入