[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