本当は怖いHPC

HPC屋の趣味&実益ブログ

Time to remove the openib btl ?

Open MPI devel メーリングリストで、「openibコンポーネントを削除する時が来たのでは?」という議論が始まっています。

Open MPIでInfinibandを使う場合、ながらく openibib という BTL コンポーネントが使われてきました。 BTL というのは、Byte Transfer Layer というOpen MPIのコンポーネント階層です。例えば、環境テスト等の目的でInfinibandの使用を強制したい場合、次のように mpiexec を起動すれば可能です(IBが使えなければ、TCPにフォールバックすることなくエラーとなる)。

$ mpiexec --mca btl openib ${PROGRAM}

mcaは、Module Component Architectureの略で、Open MPIのモジュールシステムの名前)

しかし、この ib コンポーネントは古くてバグが多いのが問題点でした。InfinibandのAPIであるibverbsは、仕様が曖昧で使いづらいところも多く、次世代のAPIへの以降が望まれている状態です。

現在、高性能インターコネクトの標準APIとして、(このブログでつらつらと書いているように)UCXが期待されています。Infinibandハードウェアの主要ベンダーであるMellanoxも、ibverbsではなくUCXをサポートするというのが方針のようです。

すぐに移行するには、まだiWARPなどのハードのサポートが十分ではないという意見もあるようですが、これは完全に時間の問題だと思われます。

【広告】