[petsc-users] PETSc and AMPI

Barry Smith bsmith at mcs.anl.gov
Tue Feb 3 10:06:24 CST 2015


> On Feb 3, 2015, at 8:04 AM, Eduardo <erocha.ssa at gmail.com> wrote:
> 
> If you can pack and unpack the global data (there are a few ways of doing that in AMPI), it should work, I believe.

   The "global" data contains function pointers which can't be trivially shipped around.

> Further, even without migration, since you over-subscribe and each MPI rank in AMPI is implemented as a thread, you would need to guarantee that each thread in a physical processor has its own copy of the "global" variables.

   The "global" data we are talking about  is essentially read only once it is initialized in PetscInitialize()

  Barry

> You could use TLS, for instance to privatize this global data. There some provision for that in AMPI, however, as far as I can tell it requires static compilation.
> 
> On Tue, Feb 3, 2015 at 10:37 AM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
> > On Feb 2, 2015, at 11:27 PM, Jed Brown <jed at jedbrown.org> wrote:
> >
> > Barry Smith <bsmith at mcs.anl.gov> writes:
> >>   Way more complicated then needed :-)
> >
> > Heh, I was just spelling it out.
> >
> >>> If AMPI creates threads dynamically,
> >>
> >>  How could it possibly create threads dynamically and still be
> >>  running in the MPI 1 model of a consistent number of MPI "processes"
> >>  at all times?
> >
> > I don't know, but it seems plausible that it would over-subscribe
> 
>   It definitely over-subscribes.
> 
> > and
> > then dynamically migrate MPI ranks around.
> 
>    Yes "cheating" with out global data structures won't work if it migrates the MPI ranks around but I can't image how it would do that.
> 
> 
> 



More information about the petsc-users mailing list