These are chat archives for elemental/chat

1st
Mar 2017
Aidan Dang
@AidanGG
Mar 01 2017 01:10
Hi Jack, I've now been testing Elemental on my local supercomputing cluster, and mid way through a calculation (after many SVDs) I exceed the total number of MPI communicators available (MPI_Comm_split fails). Is it possible that SVD might not be freeing communicators?
Aidan Dang
@AidanGG
Mar 01 2017 05:44
So I don't know if this is as at all correct, but my suspicion is that spectral/Schur/SDC.hpp line 1077-1078 calls for a new Grid, which calls the Grid constructor > Grid::SetUpGrid() > mpi::Split > MPI_Comm_Split, and that when this schur::SplitGrid is called in spectral/BidiagSVD/DivideAndConquer.hpp, these calls to new aren't deleted.
Jack Poulson
@poulson
Mar 01 2017 16:02
that's certainly possible
if so, it should be an easy fix
I should probably be using a smart pointer
and introducing RAII classes around the raw MPI data structures
Jack Poulson
@poulson
Mar 01 2017 16:08
there isn't a good mechanism for deciding ownership of El::Grid instances created in subroutines
in the sparse-direct solvers, this is handled by creating them a priori in a data structure
Jack Poulson
@poulson
Mar 01 2017 16:28
I just rushed out a change set which should ideally fix your problem