llvm-project/openmp
Jonathan Peyton 7d45451a0d Fix task dependency performance problem
In: http://lists.llvm.org/pipermail/openmp-dev/2015-August/000858.html, a
performance issue was found with libomp's task dependencies.  The task
dependencies hash table has an issue with collisions. The current table size is
a power of two. This combined with the current hash function causes a large
number of collisions to occurr. Also, the current size (64) is too small for
larger applications so the table size is increased.

This patch creates a two level hash table approach for task dependencies. The
implicit task is considered the "master" or "top-level" task which has a large
static sized hash table (997), and nested tasks will have smaller hash
tables (97). Prime numbers were chosen to help reduce collisions.

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

llvm-svn: 259113
2016-01-28 23:10:44 +00:00
..
offload Liboffload: Patch for MPSS > 3.4.x (provided by Tim Cramer) 2015-05-06 10:58:40 +00:00
runtime Fix task dependency performance problem 2016-01-28 23:10:44 +00:00
testsuite Apply name change to testsuite file. 2015-06-01 04:24:23 +00:00
www Update Reference.pdf files. 2015-09-23 18:09:47 +00:00
CMakeLists.txt Integrate libiomp CMake into LLVM CMake build system. 2015-05-05 20:02:52 +00:00
CREDITS.txt This patch contains the new files for OMPT and the needed changes to the build infrastructure 2015-04-29 16:22:07 +00:00
LICENSE.txt updated copyright date to 2015 2015-04-16 11:10:17 +00:00