Commit Graph
59 Commits
Author SHA1 Message Date
Jonathan Peyton d62fdbdc17 Fix honoring of OMP_THREAD_LIMIT in the teams construct
Fix for crash in the teams construct in case user sets OMP_THREAD_LIMIT to a
number less than the number of processors. Now the number of threads will be
silently reduced if the user didn't specify teams parameters or with a
warning if the user specified teams parameters conflicting with
OMP_THREAD_LIMIT.

Differential Revision: http://reviews.llvm.org/D14732


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@254322 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 20:14:05 +00:00
Jonathan Peyton 59fd2d5636 Add missing KMP_NESTED_HOT_TEAMS guards
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@253264 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 22:48:41 +00:00
Jonathan Peyton de99836584 Remove outdated comment
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@252953 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-12 21:34:29 +00:00
Jonathan Peyton dfa0ba085a Remove incorrect debug assert.
in __kmp_free_team(), the team's number of processors can be == 1.


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@252086 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-04 22:31:57 +00:00
Jonathan Peyton 2332aabedb Remove some empty lines.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@252084 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-04 22:06:07 +00:00
Jonathan Peyton b9e8048db1 Refactor of task_team code.
This is a refactoring of the task_team code that more elegantly handles the two
task_team case. Two task_teams per team are kept in use for the lifetime of the
team. Thus no reference counting is needed.

Differential Revision: http://reviews.llvm.org/D13993


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@252082 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-04 21:37:48 +00:00
Jonathan Peyton dfa603c6ec Removed zeroing th.th_task_state for master thread at start of nested parallel.
The th.th_task_state for the master thread at the start of a nested parallel
should not be zeroed in __kmp_allocate_team() because it is later put in the
stack of states in __kmp_fork_call() for further re-use after exiting the
nested region. It is zeroed after being put in the stack.

Differential Revision: http://reviews.llvm.org/D13702


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@250847 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 19:21:04 +00:00
Jonathan Peyton 62e3cf352c Clean-up cancellation state flag between parallel regions
Without this fix, cancellation requests in one parallel region cause
cancellation of the second region even though the second one was
not intended to be cancelled.


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@250727 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-19 19:33:38 +00:00
Jonathan Peyton d76e1838f1 Formatting/Whitespace/Comment changes associated with wait/release improvements.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@249725 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 19:44:16 +00:00
Jonathan Peyton 90185a5f18 Debug trace and assert statement changes for wait/release improvements.
These changes improve/update the trace messages and debug asserts related to
the previous wait/release checkin.


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@249717 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 18:49:40 +00:00
Jonathan Peyton fd69bc2810 OpenMP Wait/release improvements.
These changes improve the wait/release mechanism for threads spinning in 
barriers that are handling tasks while spinnin by providing feedback to the 
barriers about any task stealing that occurs.

Differential Revision: http://reviews.llvm.org/D13353


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@249711 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08 18:23:38 +00:00
Joerg Sonnenberger 70eac4ffbd Add basic NetBSD support.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@248204 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-21 20:02:45 +00:00
Jonathan Peyton f56794a06c [OMPT] Simplify control variable logic for OMPT
Prior to this change, OMPT had a status flag ompt_status, which could take
several values. This was due to an earlier OMPT design that had several levels
of enablement (ready, disabled, tracking state, tracking callbacks). The
current OMPT design has OMPT support either on or off.
This revision replaces ompt_status with a boolean flag ompt_enabled, which 
simplifies the runtime logic for OMPT.

Patch by John Mellor-Crummey

Differential Revision: http://reviews.llvm.org/D12999


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@248189 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-21 18:11:22 +00:00
Jonathan Peyton 05e6b65636 [OMPT] Overhaul OMPT initialization interface
The OMPT specification has changed. This revision brings the LLVM OpenMP
implementation up to date.

Technical overview of changes:
Previously, a public weak symbol ompt_initialize was called after the OpenMP
runtime is initialized. The new interface calls a global weak symbol ompt_tool
prior to initialization. If a tool is present, ompt_tool returns a pointer to
a function that matches the signature for ompt_initialize. After OpenMP is 
initialized the function pointer is called to initialize a tool.
Knowing that OMPT will be enabled before initialization allows OMPT support to
be initialized as part of initialization instead of back patching
initialization of OMPT support after the fact.
Post OpenMP initialization support has been generalized moves from
ompt-specific.c into ompt-general.c, since the OMPT initialization logic is no
longer implementation specific.

Patch by John Mellor-Crummey

Differential Revision: http://reviews.llvm.org/D12998


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@248187 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-21 18:01:02 +00:00
Jonathan Peyton 9a904471e9 Fix the OpenMP 3.0 build
This change adds guards to the code in places where they are missing to enable
the OpenMP 3.0 build.

Patch by Diego Caballero and Johnny Peyton

Mailing List: http://lists.llvm.org/pipermail/openmp-dev/2015-September/000935.html


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@248178 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-21 17:24:46 +00:00
Jonathan Peyton 34260e3af7 [OMPT] Fix assertion that arises when waiting for proxy tasks on runtime shutdown
This only triggered when built in debug mode with OMPT enabled:
__kmp_wait_template expected the state of the current thread to be either
ompt_state_idle or ompt_state_wait_barrier{,_implicit,_explicit}.

Patch by Jonas Hahnfeld

Differential Revision: http://reviews.llvm.org/D12754


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@247339 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 21:33:50 +00:00
Jonathan Peyton 0b3c56d5b5 Cleanup of affinity hierarchy code.
Some of this is improvement to code suggested by Hal Finkel. Four changes here:
1.Cleanup of hierarchy code to handle all hierarchy cases whether affinity is available or not
2.Separated this and other classes and common functions out to a header file
3.Added a destructor-like fini function for the hierarchy (and call in __kmp_cleanup)
4.Remove some redundant code that is hopefully no longer needed

Differential Revision: http://reviews.llvm.org/D12449


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@247326 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 19:22:07 +00:00
Jonathan Peyton ccc39aacca Fix hanging barriers if number of parallel regions exceeds UINT_MAX
The fix is to make b_arrived flag 64 bit in both structures - kmp_balign_team_t
and kmp_balign_t. Otherwise when flag in kmp_balign_team_t wrapped over
UINT_MAX the library hangs.

Differential Revision: http://reviews.llvm.org/D12563


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@247320 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 18:44:30 +00:00
Jonathan Peyton e78ed18a55 Remove duplicate of num_threads assignment.
The th.th_team_nproc is assigned in __kmp_allocate_thread() just 3 lines above,
so there is no need to assign the same value again.


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@246703 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-02 20:28:50 +00:00
Jonathan Peyton fb9db4c128 Remove fork_context argument from __kmp_join_call() when OMPT is off
Conditionally include the fork_context parameter to __kmp_join_call()
only if OMPT_SUPPORT=1

Differential Revision: http://reviews.llvm.org/D12495


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@246460 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-31 18:15:00 +00:00
Andrey Churbanov fc660a2d58 D11990: Lock-free start of serialized parallel regions
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@245286 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-18 10:08:27 +00:00
Andrey Churbanov fc8ef92585 D11988: Force serial reduction when team size is 1
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@245209 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-17 10:12:12 +00:00
Andrey Churbanov a5220977d0 D11157: Fixed missed threads re-binding in case team size reduced via omp_set_num_threads
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@245206 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-17 10:04:38 +00:00
Jonathan Peyton 9d7a4861d7 Tidy statistics collection
This removes some statistics counters and timers which were not used,
adds new counters and timers for some language features that were not
monitored previously and separates the counters and timers into those
which are of interest for investigating user code and those which are
only of interest to the developer of the runtime itself.
The runtime developer statistics are now ony collected if the
additional #define KMP_DEVELOPER_STATS is set.

Additional user statistics which are now collected include:
* Count of nested parallelism (omp parallel inside a parallel region)
* Count of omp distribute occurrences
* Count of omp teams occurrences
* Counts of task related statistics (taskyield, task execution, task
  cancellation, task steal)
* Values passed to omp_set_numtheads
* Time spent in omp single and omp master

None of this affects code compiled without stats gathering enabled,
which is the normal library build mode.

This also fixes the CMake build by linking to the standard c++ library
when building the stats library as it is a requirement.  The normal library
does not have this requirement and its link phase is left alone.

Differential Revision: http://reviews.llvm.org/D11759


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@244677 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-11 21:36:41 +00:00
Jonathan Peyton 50be853810 Patch out a fatal assertion in OpenMP runtime until preconditions are met
Compiling simple testcase with g++ and linking it to the LLVM OpenMP runtime
compiled in debug mode trips an assertion that produces a fatal error. When
the assertion is skipped, the program runs successfully to completion and 
produces the same answer as the sequential code. Intel will restore the
assertion with a patch that fixes the issues that cause it to trip.

Patch by John Mellor-Crummey

Differential Revision: http://reviews.llvm.org/D11269


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@243032 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-23 18:58:37 +00:00
Jonathan Peyton 9b32683178 Fix OMPT support for task frames, parallel regions, and parallel regions + loops
This patch makes it possible for a performance tool that uses call stack
unwinding to map implementation-level call stacks from master and worker
threads into a unified global view. There are several components to this patch.

include/*/ompt.h.var
  Add a new enumeration type that indicates whether the code for a master task
    for a parallel region is invoked by the user program or the runtime system
  Change the signature for OMPT parallel begin/end callbacks to indicate whether
    the master task will be invoked by the program or the runtime system. This
    enables a performance tool using call stack unwinding to handle these two
    cases differently. For this case, a profiler that uses call stack unwinding
    needs to know that the call path prefix for the master task may differ from
    those available within the begin/end callbacks if the program invokes the
    master.

kmp.h
  Change the signature for __kmp_join_call to take an additional parameter
  indicating the fork_context type. This is needed to supply the OMPT parallel
  end callback with information about whether the compiler or the runtime
  invoked the master task for a parallel region.

kmp_csupport.c
  Ensure that the OMPT task frame field reenter_runtime_frame is properly set
    and cleared before and after calls to fork and join threads for a parallel
    region.
  Adjust the code for the new signature for __kmp_join_call.
  Adjust the OMPT parallel begin callback invocations to carry the extra
    parameter indicating whether the program or the runtime invokes the master
    task for a parallel region.

kmp_gsupport.c
  Apply all of the analogous changes described for kmp_csupport.c for the GOMP
    interface
  Add OMPT support for the GOMP combined parallel region + loop API to
    maintain the OMPT task frame field reenter_runtime_frame.

kmp_runtime.c:
  Use the new information passed by __kmp_join_call to adjust the OMPT
    parallel end callback invocations to carry the extra parameter indicating
    whether the program or the runtime invokes the master task for a parallel
    region.

ompt_internal.h:
  Use the flavor of the parallel region API (GNU or Intel) to determine who
    invokes the master task.

Differential Revision: http://reviews.llvm.org/D11259


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@242817 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-21 18:03:30 +00:00
Jonathan Peyton c0d8cfddb6 Enable debugger support
These changes enable external debuggers to conveniently interface with 
the LLVM OpenMP Library.  Structures are added which describe the important
internal structures of the OpenMP Library e.g., teams, threads, etc.
This feature is turned on by default (CMake variable LIBOMP_USE_DEBUGGER)
and can be turned off with -DLIBOMP_USE_DEBUGGER=off.

Differential Revision: http://reviews.llvm.org/D10038


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@241832 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-09 18:16:58 +00:00
Jonathan Peyton 0746d6010e Fix OMPT state maintenance for barriers and missing init of implicit task id.
Fix OMPT support for barriers so that state changes occur even if OMPT_TRACE turned off. 
These state changes are needed by performance tools that use callbacks for either 
ompt_event_wait_barrier_begin or ompt_event_wait_barrier_end.  Change ifdef flag to OMPT_BLAME 
for callbacks ompt_event_wait_barrier_begin or ompt_event_wait_barrier_end rather than 
OMPT_TRACE -- they were misclassified.  Without this patch, when the runtime is compiled with 
LIBOMP_OMPT_SUPPORT=true, LIBOMP_OMPT_BLAME=true, and LIBOMP_OMPT_TRACE=false, and a callback 
is registered for either ompt_event_wait_barrier_begin or ompt_event_wait_barrier_end, then an 
assertion will trip.  Fix the scoping of one OMPT_TRACE ifdef, which should not have surrounded 
an update of an OMPT state.  Add a missing initialization of an OMPT task id for an implicit task.

Patch by John Mellor-Crummey

Differential Revision: http://reviews.llvm.org/D10759


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@240970 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 17:28:57 +00:00
Jonathan Peyton a48c8b78c0 Re-enable Visual Studio Builds.
I tried to compile with Visual Studio using CMake and found these two sections of code 
causing problems for Visual Studio.  The first one removes the use of variable length 
arrays by instead using KMP_ALLOCA().  The second part eliminates a redundant cpuid 
assembly call by using the already existing __kmp_x86_cpuid() call instead.


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@240290 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 15:53:50 +00:00
Jonathan Peyton a409d02503 Remove unused variable warnings by deletion.
As an ongoing effort to sanitize the openmp code, these changes delete 
variables that aren't used at all.
http://lists.cs.uiuc.edu/pipermail/openmp-dev/2015-June/000701.html

Patch by Jack Howarth


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@239334 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 20:01:14 +00:00
Jonathan Peyton 5174723912 Remove unused variable warnings by moving variables.
As an ongoing effort to sanitize the openmp code, these changes move
variables under already existing macro guards.

Patch by Jack Howarth


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@239331 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 19:39:07 +00:00
Jonathan Peyton 9015a0bc3e Remove unused variable warnings by adding proper macro guards.
As an ongoing effort to sanitize the openmp code, these changes remove unused variables
by adding proper macros around both variables and functions.

Patch by Jack Howarth


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@239330 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 19:25:25 +00:00
Jonathan Peyton ce39a6d2ca Removed unused functions.
As an ongoing effort to sanitize the openmp code, these changes remove unused functions.
The unused functions are:
__kmp_fini_allocator_thread(), __kmp_env_isDefined(), __kmp_strip_quotes(),
__kmp_convert_to_seconds(), and __kmp_convert_to_nanoseconds(). 

Patch by Jack Howarth


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@239323 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-08 18:38:23 +00:00
Jonathan Peyton ef3f591ff4 Get rid of some dead code.
Some old references to RML and IOMP which aren't used anywhere are deleted.
http://lists.cs.uiuc.edu/pipermail/openmp-dev/2015-June/000664.html

Patch by Jack Howarth and Jonathan Peyton


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@238878 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-02 22:21:37 +00:00
Jonathan Peyton d03bb79e0c Apply name change to src/* files.
These changes are mostly in comments, but there are a few
that aren't.  Change libiomp5 => libomp everywhere.  One internal
function name is changed in kmp_gsupport.c, and in kmp_i18n.c, the
static char[] variable 'name' is changed to "libomp".


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@238712 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-01 02:37:28 +00:00
Jonathan Peyton 29ed987b04 Change macro GUIDEDLL_EXPORTS to KMP_DYNAMIC_LIB
A while back, Hal suggested updating the GUIDEDLL_EXPORTS macro guard to 
a more descriptive name.  It represents a dynamic library build so 
KMP_DYNAMIC_LIB is a more suitable name.

Differential Revision: http://reviews.llvm.org/D9899


git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@238221 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-26 17:32:53 +00:00
Jonathan Peyton ae9c8b86e4 One line fix for possible out-of-bounds issue in kmp_runtime.c
The variable j is now checked so there is no possible
out-of-bounds issue when accessing __kmp_nested_nth.nth[] array.



git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@238216 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-26 16:38:26 +00:00
Jonathan Peyton 78445f97d8 Fix task team synchronization
The fix simply syncs up the new threads to have the same task_state and
task_team as the old threads.  The master thread is skipped,
because it shouldn't at this point have the team's task_team value yet
-- it should still have parent_team's task_team.  It gets pointed at
the new team's task_team later, after __kmp_allocate_team returns, and
the master has stored a memo of it's old task_state.



git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@237916 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-21 17:20:01 +00:00
Andrey Churbanov 4af0f3a6a7 D9306 omp 4.1 async offload support (partial): code changes
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@236753 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-07 17:41:51 +00:00
Andrey Churbanov efb6bb2106 D9302.partial2: cleanup of ittnotify checks, that eliminats redundant notifications in case of nested regions.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@236631 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-06 19:22:36 +00:00
Andrey Churbanov 98270aa879 These are the actual changes in the runtime to issue OMPT-related functions. All of them are surrounded by #if OMPT_SUPPORT and can be disabled (which is the default).
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@236122 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-29 16:42:24 +00:00
Andrey Churbanov 8c2806cda5 Replace some unsafe API calls with safe alternatives on Windows, prepare code for similar actions on other platforms - wrap unsafe API calls into macros.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@233915 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-02 13:27:08 +00:00
Andrey Churbanov 1f60457c77 Cleanup provided by Carlo Bertolli
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@231078 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-03 16:19:57 +00:00
Andrey Churbanov 53e806cdc1 Detect Intel MIC architecture and set some defaults at run time instead of build time.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@230033 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20 18:14:43 +00:00
Andrey Churbanov 5356a729f1 Added new user-guided lock api, currently disabled. Use KMP_USE_DYNAMIC_LOCK=1 to enable it.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@230030 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20 18:05:17 +00:00
Andrey Churbanov 2ce31a0c3a The usage of tt_state flag is replaced by an array of two task_team pointers.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@228718 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-10 18:37:43 +00:00
Andrey Churbanov 9236d9713a Comments only: removing the Revision and Date svn variables from the top of all the source files.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@227207 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-27 17:13:53 +00:00
Andrey Churbanov 0a2bac028a Fixed implementation of the teams construct in case it contains parallel regions with different number of threads.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@227198 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-27 16:50:31 +00:00
Andrey Churbanov 1ad88fa8d4 few fixes for ittnotify iterface (used by Intel(R) VTune Amplifier)
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@226283 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-16 15:58:03 +00:00
Andrey Churbanov 9dd2dbbb70 This patch enables the use of KMP_AFFINITY=balanced on non-MIC Architectures. The restriction for using balanced affinity on non-MIC architectures is it only works for one-package machines.
git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@225794 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-13 14:54:00 +00:00