Main Content

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 配列を並列実行するための並列プールを指定します。poolobjparallel.Pool オブジェクトです。既定のプールは gcp によって返されるか、または開かれる現在のプールです。

mapreducer(hadoopCluster) は、mapreduce または tall 配列を並列実行するための Hadoop® クラスターを指定します。hadoopClusterparallel.cluster.Hadoop オブジェクトです。

mapreducer(mr) は、前に作成した MapReducer オブジェクト mrObjectVisibility プロパティが 'On' であれば、そのオブジェクトを使用して mapreduce または tall 配列のグローバル実行環境を設定します。

mr = mapreducer(___) は、MapReducer オブジェクトを返して実行環境を指定します。複数の MapReducer オブジェクトを定義でき、いずれかのオブジェクトを入力引数として mapreducer または mapreduce に渡すことで、実行環境を切り替えることができます。

mr = mapreducer(___,'ObjectVisibility','Off') は、前の構文のいずれかを使用して MapReducer オブジェクト 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

入力引数

すべて折りたたむ

並列実行に使用するプール。parallel.Pool オブジェクトとして指定します。

例: poolobj = gcp

並列実行に使用する Hadoop クラスター。parallel.cluster.Hadoop オブジェクトとして指定します。

例: hadoopCluster = parallel.cluster.Hadoop

出力引数

すべて折りたたむ

mapreduce および tall 配列の実行環境。MapReducer オブジェクトとして返されます。

mrObjectVisibility プロパティが 'On' に設定されている場合、mr はすべての mapreduce アルゴリズムおよび tall 配列の計算に用いる既定の実行環境を定義します。ObjectVisibility プロパティが 'Off' の場合は、mr を入力引数として mapreduce に渡すことで、その特定の呼び出しの実行環境を明示的に指示することができます。

複数の MapReducer オブジェクトを定義でき、いずれかのオブジェクトを入力引数として mapreducer または mapreduce に渡すことで、実行環境を切り替えることができます。

ヒント

tall 配列を扱うアルゴリズムを開発する利点の 1 つは、コード作成が一度ですむことです。コードをローカルで作成してから、アルゴリズムを書き換えることなく mapreducer を使用してスケール アップし、Parallel Computing Toolbox、MATLAB Parallel Server™ または MATLAB Compiler が提供する機能を利用できます。

拡張機能

バージョン履歴

R2014b で導入