mpi4pyのscatterがoverflowする

容量の大きいpickleオブジェクトをscatterしようとしたらoverflowしたのでメモ。

scatterはそれぞれのpickleオブジェクトが2GB以上だとint32の範囲を超えるのでoverflowするらしい。

解決策: send/recvを使う。

もし大きいオブジェクトを扱いたいならpkl5がいいらしいが、今回は調べられていないので参考まで。

参考は以下。

OverflowError: integer 2176051861 does not fit in 'int' · Issue #119 · mpi4py/mpi4py
I'm trying to scatter data across 25 processors using: attributes=comm.scatter(attributes,root=0) But I always run into the following problem: Traceback (most r...

配列のインデックスがintからはみ出てるのかと思ってindexをint64にしたりしてみたが、結局scatter側の問題だった。

コメント

タイトルとURLをコピーしました