2010年度は、2009年度に開発したシステム自動最適化アルゴリズムの実機評価を目指した。本アルゴリズムはProducer-Consumer型のモジュール群で構築されたアプリケーションにおいて、メニーコアCPUを最大限に利用できるよう各モジュールに割り当てる計算機やスレッド数を自動で決定し、アプリケーションの性能を最適化することが目標である。研究には我々が開発している分散処理フレームワークであるQueueLinkerを用いた。 2010年度は、まず、自動最適化アルゴリズムの評価用アプリケーションとしてWebクローラを開発し、QueueLinkerのプロトタイプにより動作を確認した。本クローラを構成するモジュールは全てProducer-Consumer型であり、QueueLinkerにより分散実行できる。実験に先立ち、本クローラがWebサーバにかける負荷を軽減するために、同一Webサーバに対するアクセス時間間隔の最小値を厳密に保証するクローリングスケジューラを開発した。本スケジューラは、時間計算量が0(1)であり、空間計算量の上限がクローリング対象のURL数に依存しない。本アルゴリズムはDEIM 2011において発表した。 そして、開発したWebクローラをアプリケーションに用い、QueueLinkerの自動プロファイリング機能を開発した。本プロファイリング機能は、モジュールが使用するCPU時間や、ネットワーク通信量をプロファイリングできる。その後、昨年度開発したシステム自動最適化アルゴリズムを実際のプロファイリングデータを利用して動作するよう設計を修正した。本アルゴリズムは、各モジュールが使用するリソース量に基づいて、アプリケーションの性能が最大になるように、モジュールに割り当てる計算機やスレッド数を自動で決定するものである。
|