[Openmp-commits] [PATCH] Allow machine hierarchy expansion

Hal Finkel hfinkel at anl.gov
Mon Jun 1 06:00:43 PDT 2015

----- Original Message -----
> From: "Terry L Wilmarth" <terry.l.wilmarth at intel.com>
> To: reviews+D9900+public+a0ab28293505a533 at reviews.llvm.org, "Jonathan L Peyton" <jonathan.l.peyton at intel.com>
> Cc: openmp-commits at dcs-maillist2.engr.illinois.edu
> Sent: Thursday, May 28, 2015 11:07:21 AM
> Subject: Re: [Openmp-commits] [PATCH] Allow machine hierarchy expansion
> It does represent the machine hierarchy, when there is no
> oversubscription, but it is actually used as a way to map existing
> threads to the machine hierarchy for the purpose of performing a
> barrier. Adding a level when oversubscribed simply adds more tree
> structure for all the additional threads to communicate along.  One
> additional level duplicates the existing hierarchy as a second child
> of a new root, doubling the number of threads that the barrier can
> handle.

Okay; please add a comment explaining this; the current definition of maxLevels says:

    /** Typical levels are threads/core, cores/package or socket, packages/node, nodes/machine,
        etc.  We don't want to get specific with nomenclature */
    static const kmp_uint32 maxLevels=7;

and this gives no indication at all of how this might need to be set to handle oversubscription. There are a few comments like this:

        // Fill in hierarchy in the case of oversubscription
        for (kmp_uint32 i=depth; i<maxLevels; ++i)
            skipPerLevel[i] = 2*skipPerLevel[i-1];

but that does not really explain what is going on.


> -----Original Message-----
> From: hfinkel at anl.gov [mailto:hfinkel at anl.gov]
> Sent: Wednesday, May 27, 2015 1:16 PM
> To: Peyton, Jonathan L; hfinkel at anl.gov
> Cc: Wilmarth, Terry L; llvm-commits at cs.uiuc.edu;
> openmp-commits at dcs-maillist2.engr.illinois.edu
> Subject: Re: [PATCH] Allow machine hierarchy expansion
> In http://reviews.llvm.org/D9900#178569, @tlwilmar wrote:
> > Oversubscription.  There's nothing to prevent the user from
> > requesting an arbitrarily large number of threads.
> But I thought that the machine hierarchy information represented the
> physical properties of the machine (cpus, cores, sockets, etc.). How
> does oversubscription factor into this? And how does that affect the
> number of levels?
>   rL LLVM
> http://reviews.llvm.org/D9900
>   http://reviews.llvm.org/settings/panel/emailpreferences/
> _______________________________________________
> 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

More information about the Openmp-commits mailing list