スマートコンパイラ
スマートコンパイラとは
スマートコンパイラは、スクリプトの内容を解析し、パラレルストリーミング処理(Parallel Stream Processing、以降はPSPと記載)が使用可能な箇所を自動で検出して適用する機構です。
PSPを適用することにより、スクリプトのパフォーマンスを最大限に発揮できます。
PSPの詳細については、「パラレルストリーミング処理」の項を参照してください。
使用方法
デフォルトでは、スマートコンパイラの機能は有効になっています。
有効/無効の切り替えは、デザイナーのツールメニューのオプション-編集で行います。
-
データフローの作成
スマートコンパイラの機能が有効の場合、スクリプト上でデータフローが作成された際に、PSPとして実行できるかどうかを判断し、実行可能であれば自動でPSPを適用します。
PSPを適用したデータフローを「PSPデータフロー」と呼びます。
-
スクリプトの実行
スクリプトを実行します。PSPデータフローの箇所が、PSPとして実行されます。
PSPの処理状況はXMLログに出力されます。
以下のようなスクリプトを実行した場合のXMLログの出力例を示します。
出力例
スクリプトの実行を開始します。
****** csv_read処理開始 ******
[csv_read(スクリプト@35b45d3f)]PSP処理を開始しました。
****** csv_write処理開始 ******
[100]行のデータを抽出しました。
[100]行のデータを挿入しました。
[csv_read(スクリプト@35b45d3f)]PSP処理を終了しました。
スクリプトの実行を終了しました。
PSPとして実行した場合でも、デザイナーの実行履歴に表示されているアイコンを選択することで、実行ログの絞り込みが可能です。
これにより、並行で実行されたMapperやコンポーネントアイコンなどの処理内容を1つずつ確認できます。
詳細については、「実行ログの絞り込み」を参照してください。
PSPデータフローの確認方法
スクリプトのデータフローがPSPデータフローかどうかを確認するには、デザイナーの表示メニューのPSPデータフローの表示を選択します。
メニューの詳細については「[表示]メニュー 」を参照してください。
表示を有効にすると、PSPデータフローを黄色い太線で表示します。

また、コンポーネントを選択した際、PSPで処理される読み取りから書き込みまでの一連の処理を点滅して表示します。
一括変更
データフローをPSPデータフローに一括変更するには、デザイナーのプロジェクトエクスプローラでプロジェクトやスクリプトを右クリックして表示されるメニューのPSPデータフローの操作-一括で有効にするを選択します。
過去に作成したプロジェクトにPSPを適用させたい場合に実行してください。
同一のコンポーネントから複数のデータフローが引かれている場合、PSPデータフローへの変更は行われません。
デザイナーのメニュー詳細については「プロジェクトエクスプローラ 」を参照してください。
手動設定
PSPデータフローを手動で設定するには、データフローの右クリックメニューでPSPデータフローを有効化/無効化を選択します。
同一のコンポーネントから複数のデータフローを引いているが、条件分岐などの設定を使用してデータの再利用を行わない場合などに対応できます。

仕様制限
-
同一のコンポーネントから複数のデータフローを引いた場合、PSPデータフローは一時的に無効になります。
この動作はPSPの仕様制限によるものですが、条件分岐を使用する場合など、状況に応じて手動設定できます。
-
同一のコンポーネントから複数のデータフローを引いた場合、PSP非対応コンポーネントが含まれていると手動設定はできません。