From: "Eric Salo" Date: Sun, 2 Aug 1998 06:09:15 -0500 In-Reply-To: Raja Daoud "Re: MPI_ALLOC_MEM & no mem" (Aug 1, 5:33pm) References: <199808012224.PAA07169@XXXXXXXXXXXXXX> X-Mailer: Z-Mail (3.2.3 08feb96 MediaMail) To: mpi-comments@XXXXXXXXXXXXX,mpi-core@XXXXXXXXXXX Subject: Re: MPI_ALLOC_MEM & no mem Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-mpi-core@XXXXXXXXXXX Precedence: bulk X-UIDL: 9a98104ef896572b890650cfe8395ee6 > Some approaches: > > 1- No change to MPI, implementors provide an option to set the amount of > "special memory" needed. > > 2- Add a try_alloc routine. > > 3- Add a routine that allocates up to the given size and returns the > actual size (avoid loop of try_alloc; lose flexibility in deciding > the desired sizes). > > 4- Reconsider a tiny set of continuable errors. 5- Document that a value of NULL returned from MPI_Alloc_mem() is in fact *not* an "error", it is rather the way in which MPI successfully tells the application that their request for memory was not granted. This seems like the simplest and most straightforward way around the problem, but I can't seem to locate Dick's post so perhaps there's a good reason why this would be a Bad Idea...? 6- Define a second error handler for each communicator to handle "non-fatal" errors. The set of conditions which satisfy the "non-fatal" condition is implementation dependent (in fine MPI tradition) but perhaps a subset of required cases could be defined by the MPI Forum (also in fine MPI tradition). The "non-fatal" handler would track all changes to the "fatal" handler in order to preserve compatibility with existing code, but we would define two new routines to set/get it explicitly: MPI_Comm_set_nonfatal_errhandler() MPI_Comm_get_nonfatal_errhandler() -- Eric Salo Silicon Graphics salo@XXXXXXX