Tpetra::MultiVector: REPLACE / INSERT CombineMode need not use atomic updates
Created by: mhoemmen
@trilinos/tpetra @crtrott @vbrunini @jjellio
See discussion here: https://github.com/trilinos/Trilinos/issues/962#issuecomment-464524708
@vbrunini , @crtrott , and I found out Friday that MultiVector Import goes faster on multiple GPUs when we remove use of atomic updates (Kokkos::atomic_assign
) with the REPLACE CombineMode. (INSERT and REPLACE do the same thing with MultiVector.) MultiVector uses atomics to implement "sparse all-reduce," but using them with the REPLACE CombineMode isn't a well-defined reduction, even ignoring rounding error. Thus, it makes sense to get rid of them, for MultiVector's REPLACE implementation at least.
Related Issues
- Related to #962