[Openmp-commits] Switch to TLS for POWER

Churbanov, Andrey Andrey.Churbanov at intel.com
Fri Jul 3 02:52:36 PDT 2015


Oops, I meant the threadprivate-patch2 with introduction of
KMP_THREADPRIVATE_TLS macro, not the june3-threadprivate-patch.

- Andrey

> -----Original Message-----
> From: openmp-commits-bounces at cs.uiuc.edu [mailto:openmp-commits-
> bounces at cs.uiuc.edu] On Behalf Of Churbanov, Andrey
> Sent: Friday, July 03, 2015 11:23 AM
> To: Hal Finkel; Alexandre Eichenberger
> Cc: openmp-commits at dcs-maillist2.engr.illinois.edu
> Subject: Re: [Openmp-commits] Switch to TLS for POWER
> 
> The library part of changes LGTM
> (I mean threadprivate-path2).
> 
> Sorry for the late response, we still have some issues in the library related to the
> C++ thread_local, to be investigated further.
> 
> - Andrey
> 
> > -----Original Message-----
> > From: openmp-commits-bounces at cs.uiuc.edu [mailto:openmp-commits-
> > bounces at cs.uiuc.edu] On Behalf Of Hal Finkel
> > Sent: Friday, July 03, 2015 1:53 AM
> > To: Alexandre Eichenberger
> > Cc: openmp-commits at dcs-maillist2.engr.illinois.edu
> > Subject: Re: [Openmp-commits] Switch to TLS for POWER
> >
> > Alexandre,
> >
> > This needs to be committed at the same time as the Clang patch to keep
> > everything working, correct?
> >
> >  -Hal
> >
> > ----- Original Message -----
> > > From: "Alexandre Eichenberger" <alexe at us.ibm.com>
> > > To: openmp-commits at dcs-maillist2.engr.illinois.edu
> > > Sent: Thursday, June 4, 2015 7:40:46 AM
> > > Subject: [Openmp-commits] Switch to TLS for POWER
> > >
> > >
> > > I would like to request switching the threadprivate scheme to TLS
> > > (Thread Level Storage) for POWER before we get legacy code out there.
> > > Individual
> > > measurements has shown TLS to have about 10x lower overhead (number
> > > may change depending to the TLS scheme). TLS is also used by other
> > > compilers (e.g. XL) and thus provide better interoperability.
> > >
> > > Approach is relatively simple: compiler still generate a call to
> > > register the constructors and the destructors, but the functions
> > > calling the constructor/destructors have been changed a bit so that
> > > the compiler call the constructor on the TLS version of the object
> > > (not the global one, as it currently is in KMP). Then, prior to
> > > starting a parallel function, the workers check if there are no new
> > > constructors/destructors that have been registered; if there are,
> > > they will call the constructors prior to starting the parallel region.
> > > Destructors are called when killing a worker thread.
> > >
> > > KMP code change have been done (exclusively under #def for power
> > > architecture), LLVM changes have been done, code has been tested.
> > > Commit
> > > will need to be coordinated with the LLVM changes, which must go at
> > > the same time.
> > >
> > > If there is interest, and no code legacy issue, this patch could
> > > also be applied for other architectures that have TLS support.
> > >
> > > Alexandre
> > >
> > > (See attached file: june3-threadprivate-patch)
> > > _______________________________________________
> > > Openmp-commits mailing list
> > > Openmp-commits at dcs-maillist2.engr.illinois.edu
> > > http://lists.cs.uiuc.edu/mailman/listinfo/openmp-commits
> > >
> >
> > --
> > Hal Finkel
> > Assistant Computational Scientist
> > Leadership Computing Facility
> > Argonne National Laboratory


--------------------------------------------------------------------
Closed Joint Stock Company Intel A/O
Registered legal address: Krylatsky Hills Business Park, 
17 Krylatskaya Str., Bldg 4, Moscow 121614, 
Russian Federation

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.





More information about the Openmp-commits mailing list