スマートコンパイラ

スマートコンパイラとは

スマートコンパイラは、スクリプトの内容を解析し、パラレルストリーミング処理(Parallel Stream Processing、以下:PSP)が使用可能な箇所を自動で検出して適用する機構です。
PSPを適用することにより、スクリプトのパフォーマンスを最大限に発揮することができます。
PSPの詳細については、「パラレルストリーミング処理」の項を参照してください。

使用方法

デフォルトでは、スマートコンパイラの機能は有効になっています。
有効/無効の切り替えは、デザイナのメニュー[ツール]-[オプション]から行います。
メニューの詳細については「ツールメニュー」を参照してください。
  1. データフローの作成
    スマートコンパイラの機能を有効にした場合、スクリプト上でデータフローが作成された際に、PSPとして実行できるかどうかを判断し、実行可能であれば自動でPSPを適用します。
    PSPを適用したデータフローを「PSPデータフロー」と呼びます。

  2. スクリプトの実行
    スクリプトを実行します。PSPデータフローの箇所が、PSPとして実行されます。
    PSPの処理状況はXMLログに出力されます。

    以下のようなスクリプトを実行した場合のXMLログの出力例を示します。

    出力例

    スクリプトの実行を開始します。
    
    ****** csv_read処理開始 ******
    [csv_read(スクリプト@35b45d3f)]PSP処理を開始しました。
    
    ****** csv_write処理開始 ******
    [100]行のデータを抽出しました。
    [100]行のデータを挿入しました。
    [csv_read(スクリプト@35b45d3f)]PSP処理を終了しました。
    
    スクリプトの実行を終了しました。
    PSPとして実行した場合でも、デザイナの実行履歴に表示されているアイコンを選択することで、実行ログの絞り込みが可能です。
    これにより、並行で実行されたMapperやコンポーネントアイコンなどの処理内容を一つずつ確認することができます。
    詳細については、「実行ログの絞り込み」を参照してください。

PSPデータフローの確認方法

スクリプトのデータフローがPSPデータフローかどうかを確認するには、デザイナのメニュー[表示]-[PSPデータフローの表示]を選択します。
メニューの詳細については「表示メニュー」を参照してください。

表示を有効にすると、PSPデータフローを黄色い太線で表示します。



また、コンポーネントを選択した際、PSPで処理される読み取りから書き込みまでの一連の処理単位を点滅して表示します。

一括変更

マイプロジェクト、デザイナなどからデータフローをPSPデータフローに一括変更することができます。
過去に作成したプロジェクトにPSPを適用させたい場合に実行してください。
マイプロジェクトのメニュー詳細については「PSPデータフローの操作」を参照してください。
デザイナのメニュー詳細については「プロジェクトエクスプローラ」を参照してください。
同一のコンポーネントから複数のデータフローが引かれている場合、PSPデータフローへの変更は行われません。

手動設定

データフローの右クリックメニューから、PSPデータフローを手動で設定することができます。

同一のコンポーネントから複数のデータフローを引いているが、条件分岐などを使用してデータの再利用を行わない場合などに対応できます。

仕様制限