Re: About OpenMP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The relationship between CPU numbers and CPU topolgy can vary.

On Linux, the "lstopo" program provides information about the
relationship between sockets, cores, and threads.

In my experience, one thing to be aware of is which CPU numbers are HT
pairs on Intel CPUs.  For some workloads, leaving one out of each HT
pair idle can give better performance.  A similar story may be true for
the paired cores on AMD Bulldozer and later CPUs.

As an example of variation---and I'm not sure if it's variation by CPU
or by Linux version---I have easy access to an i7-4930K running
3.2.0-4-amd64 and an i5-3320M running 3.16.0-4-amd64.  On the first
machine, CPU numbers 0 and 6 are HT pairs, 1 and 7, and so on.  On the
second machine, CPU numbers 0 and 1 are HT pairs, and 2 and 3 are HT
pairs.

Here's how that looks in lstopo (look at the P#):

    # i7-4930k
    Machine (16GB) + Socket L#0 + L3 L#0 (12MB)
      L2 L#0 (256KB) + L1 L#0 (32KB) + Core L#0
        PU L#0 (P#0)
        PU L#1 (P#6)
      L2 L#1 (256KB) + L1 L#1 (32KB) + Core L#1
        PU L#2 (P#1)
        PU L#3 (P#7)
      # (others snipped)

    # i5-3320m
    Machine (7704MB) + Socket L#0 + L3 L#0 (3072KB)
      L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
        PU L#0 (P#0)
        PU L#1 (P#1)
      L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
        PU L#2 (P#2)
        PU L#3 (P#3)

I assume, but don't know for sure, that the GOMP environment variable will be
using the P#-numbering of lstopo.

Jeff




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux