マルチスレッド最適化処理
マルチスレッド最適化処理を有効にすると、Contact Optimization のパフォーマンスを改善できます。つまり、Contact Optimization セッションの実行時間が短くなります。
マルチスレッド最適化処理を有効にするには、EnableMultithreading 構成プロパティーに true を設定します。
マルチスレッド最適化処理を有効にすると、Contact Optimization のパフォーマンスが大幅に改善される可能性があります。パフォーマンスが改善される割合は、以下を含む多数の要因に依存します。
- 使用する最適化ルールのタイプ
- それらのルールとデータの対話
- データベースの入出力速度
- ハードウェアの種類および構成
チャンクの構築時間を考慮し、ボリュームが大きい場合にはマルチスレッド化の使用は避けてください。構築にかかるチャンク時間がチャンク処理時間より長い場合は、チャンク処理の段階のマルチスレッド化は効果的ではない場合があります。パフォーマンスに影響を与える要素には、RAM サイズ、CustomerSampleSize、 コンタクト (CH/DCH) 履歴テーブル・サイズ、ルールの数などがあります。
達成可能な最大の並列処理の度合いは、処理の並列ではない部分に左右され、Contact Optimization セッション Contact Optimization ごとに異なります。
一般に以下のガイドラインを使用してください。
マルチスレッド最適化処理の有効化で改善できるのは、最適化ステージのパフォーマンスのみです。
最適化セッションの実行のかなりの部分には、以下のステップが含まれています。
- 推奨コンタクト・テーブル (PCT) からのデータの読み取り。
- 最適化ルールの表示。
- データベースのデータの準備および取得。
- チャンクのランダム化および作成。
- 最適化済みコンタクト・テーブル (OCT) への書き込み。
マルチスレッド最適化処理はこれらの処理には影響せず、これらの処理は逐次的に実行されます。PCT 読み取りおよび OCT 書き込みのパフォーマンスを改善するには、データベース・ロード・ユーティリティーの使用およびデータベース構成の最適化を検討してください。
顧客間ルールを Contact Optimization セッションで使用しない場合、マルチスレッド最適化処理による改善は限られたものとなります。
Contact Optimization は、顧客間ルールを実装するアルゴリズムを処理するときに、マルチスレッド最適化処理を最も使用します。
一般に、パフォーマンスを最大にするためには、使用可能なスレッドの最大数が、達成可能な最大の並列処理の度合い以上である必要があります。ただし、他のハードウェア制限により、マルチスレッドによるパフォーマンス効果が抑制される場合もあります。例えば、使用中のスレッド数をサポートするために使用できる RAM が不十分である場合、最適化セッションは実行できない場合があります。ハードウェアに複数プロセッサーではなく複数コアが搭載されていて、複数ハードウェア・スレッドが同じキャッシュを使用する場合、そのキャッシュの入出力によって パフォーマンスが制限される可能性があります。
顧客間ルールを処理するスレッド数は、MaxCustomerSampleProcessingThreads 構成プロパティーで定義します。使用可能な RAM およびハードウェアのパフォーマンス特性に基づくこの設定の最適な値を見つけるには、システムの調整が必要になる場合があります。
- CustomerSampleSize が小さい場合は、スレッドあたりの RAM 使用量が減るため、より多くのスレッドを並列実行できる可能性があります。ただし、この値を減らすと、1 つのチャンクの処理に必要な時間も減ります。このような構成では、チャンクの処理と前処理の間の配分量も減るため、すぐに後者がボトルネックとなります。
顧客間ルールを処理するスレッド数を最適化した場合、顧客サンプルからデータを読み取るときに使用するスレッド数、あるいは、最適化済みコンタクトをステージング・テーブルに書き込むときに使用するスレッド数を増やすと、パフォーマンスがさらに向上する可能性があります。
顧客サンプルからデータを読み取るスレッド数は、ProcessingThreadQueueSize 構成プロパティーで定義します。ステージング・テーブルにデータを書き込むスレッド数は、PostProcessingThreadQueueSize 構成プロパティーで定義します。
特定の Contact Optimization 実装環境におけるマルチスレッド最適化処理のチューニングの詳細については、IBM 営業担当員にお問い合わせください。