Directory Core/Lockfree/

Directory Created:
2016-08-01 11:23
Total Files:
3
Deleted Files:
0
Lines of Code:
870

[root]/Core/Lockfree
            directory in repo impl (4 files, 1007 lines)

Lines of Code

Core/Lockfree/ Lines of Code

Developers

Author Changes Lines of Code Lines per Change
ahumphrey 3 (100.0%) 870 (100.0%) 290.0

Most Recent Commits

ahumphrey 2016-08-01 11:23 Rev.: 55558

Introduction of the Lockfree Pool data structure and the new CommunicationList. Using this now to replace CommRecMPI and its use of the problematic MPI_Testsome() and MPIWaitsome() calls. We now store individual requests in a lock/wait/contention free Pool and call MPI_Test() and MPI_Wait on individual MPI_Requests.

This fixes the MPI_Buffer memory leak seen in the threaded scheduler, in which multiple threads think they will recieve a message, allocate a buffer and then only one thread does the actual recieve and calls the after-communcation handler to clean up the buffer. This memory leak was most pronounced at large scale with RMCRT due to the global halo requirement.

Also backing out the support for non-uniform ghost cells across AMR levels for now, until the issue of some required messages not being generated from coarse radiation mesh to some ranks. This has to do within partial dependencybatches being created due to an incomplete processor neighborhood list across levels.

MISC:

* cleaned up some old TAU remnants in doc directory and build system
* refactor and cleanup in MPIScheduler
* removed unused source code, including the old ThreadedScheduler (only one threaded scheduler now - Unified)
* cleaned up non-existent entreis in environmentalFlags.txt

870 lines of code changed in 3 files:

  • Core/Lockfree: Lockfree_LevelPool.hpp (new 418), Lockfree_Mappers.hpp (new 87), Lockfree_Pool.hpp (new 365)
Generated by StatSVN 0.7.0