高効率なI/Oと軽量性を両立させるマルチスレッド処理系

Bibliographic Information

Other Title
  • コウコウリツ ナ I/O ト ケイリョウセイ オ リョウリツ サセル マルチスレッド ショリケイ
  • Multithread Framework That Manages both Efficient I/O and Lightweight Thread Management

Search this article

Description

今後のコンピュータは,現行のものと比較してより多くの CPU コアと,より高速なネットワークを備える方向に発展していくことが予想されている.そのため,次世代のコンピュータハードウェアを活用するためには,複数の CPU コア間にスレッドを適切に割り振って並列実行することと,I/O 処理を効率的に行うことの両方に留意してソフトウェアを設計することが要求される.既存のマルチスレッド処理系にはこの 2 つの要求のうち片方を満たしているものは存在しているが,これを両立させた処理系は存在していない.本稿では,次世代コンピュータ上で高性能なアプリケーションを記述する基盤ソフトウェアとして,この 2 つの要求に加え,既存のアプリケーションに対して,再コンパイルや移植の必要なしに適用することができる,という特徴を持つマルチスレッド処理系 MassiveThreads を提案する.MassiveThreads は,上述の要求を部分的に満たしている既存の処理系において用いられている実装手法を積極的に採用することによって,スレッドの管理の軽量化,マルチコア環境におけるスケーラビリティ,I/O 処理の効率化の 3 つの要件を達成する.評価の結果,小さなオーバヘッドで多くのスレッドを管理でき,複数の CPU コア間の負荷分散を良好にとれること,OS 標準のマルチスレッド処理系よりも効率的に I/O の処理ができることを確認した.

It is estimated that next-generation computer hardware has more CPU cores and faster network. Thus in designing software, both handling I/O efficiently and scalable execution of multiple threads are essential to utilize future computer hardware. Some existing multithread frameworks meet a part of the requirements, but none of them meets both. In this paper, we propose MassiveThreads as a middleware for writing high-performance applications in next-generation hardware. MassiveThreads not only meets two requirements described above, but also has an interface to apply it to existing software without recompile or porting to improve the performance. MassiveThreads uses many techniques which existing multithread frameworks use and achieves lightweight thread management, scalability in multicore environment, and efficient I/O handling. Microbenchmarks confirmed that MassiveThreads can manage many threads with little overhead, balance loads well in multicore environment, and handle I/O more efficiently than multithread framework provided by the operating system.

Journal

Keywords

Details 詳細情報について

Report a problem

Back to top