研究初年度にあたる2009年度は、「システム性能向上に活用できる情報の選定」および「システム自動最適化アルゴリズムの開発とLinuxへの実装」を進めた。 まず、「システム性能向上に活用できる情報」として、アプリケーションのシステムリソース使用量を選択した。メニーコアCPU環境では複数のアプリケーションがマルチスレッドで動作するため、どのアプリケーションに何スレッド割り当てるかで全体のシステム性能が大きく変化する。最適なスレッド割り当てを求めるには、アプリケーションが使用するCPU時間やメモリ量といった使用リソース量が有益な情報である。この場合、スレッド割り当ての最適化は、使用可能リソース量制約に基づいたアプリケーションのスループット最大化問題に帰着できる。そこで、「システム自動最適化アルゴリズム」として最適化数学を利用したアルゴリズムを構築し、Linuxへの実装を進めた。 アルゴリズムをアイドルCPUパワー、すなわち冬眠コアを利用して動作させ、アプリケーションの実行性能を高めることで、本研究の目標である冬眠コアのゼロ化を目指した。 開発したアルゴリズムの実環境での評価は2010年度に実施するが、評価用のインフラ環境として、並列・分散処理フレームワークQueueLinkerの開発を進めた。QueueLinkerはマルチスレッドプログラミングにおけるProducer-Consumerモデルをプログラミングモデルとしており、プログラマが作成したアプリケーションモジュールに必要なスレッドを自動で割り当て、並列・分散処理を実現する。プロトタイプを実装し3.68TBのWebクローラーログを用いてLinux上で評価を行ったところ、著名な分散処理フレームワークであるApache Hadoopに対して3.6倍の高速化を確認できた。
|