MPI C++言語バインディングの柔軟性と(ほぼ)ゼロオーバーヘッドの実現
C++とMPIは高性能コンピューティングの基盤を成すが、MPIはC言語とFortranのバインディングしか提供していない。本研究では、C++の言語機能を活かした新しいMPIバインディングを提案し、低レベルのMPI呼び出しから便利なSTLスタイルのバインディングまでをカバーする。ほとんどのパラメータを小さな部分集合から推論することで、高速なプロトタイピングと実行時動作の微調整を可能にする。柔軟な型システムと追加の安全性保証により、プログラミングエラーを防ぐ。C++のテンプレートメタプログラミング機能を活用することで、必要なコードパスのみがコンパイル時に生成されるため、(ほぼ)ゼロオーバーヘッドを実現する。