ジャバアラート、発動!
Twitterで自転車置き場が燃えてる関連で気になってOpen MPIのMPI_Reduce実装を調べた。
https://github.com/open-mpi/ompi/blob/main/ompi/mpi/c/reduce.c#L139
"規格ではリダクションをする際の要素数countは1以上である必要があるのに、少なくともIntel MPI Benchmarks(※業界標準のベンチマークの一つ)は要素数0でも呼んでくる"という愚痴が書いてあり、なにもせずMPI_SUCCESSを返すよという実装になっていた。
まあそれはそういうものかーでいいとして、自分的に問題なのが、規格書を見るとcountの定義はnon-negative integerとなっており、関数定義上は0が認められるように見え、1以上というのを導く文章がすぐには見つけられなかったこと。いやまあ全文熟読してもいいけど疲れるので誰か知ってたら当該箇所を教えてほしい。