qthreads
qthreads copied to clipboard
Lightweight locality-aware user-level threading runtime.
We build hwloc and qthreads from source and "install" them under the Chapel source tree. qthreads and hwloc build pretty quickly, but they do spend some time building/installing things that...
[thread-ring](http://benchmarksgame.alioth.debian.org/u64q/threadring-description.html#threadring) is one of the Computer Language Benchmarks Game (CLBG) codes. Having Chapel sync vars map down to qthreads aligned_t sync vars (https://github.com/Qthreads/qthreads/issues/22, https://github.com/chapel-lang/chapel/pull/4489) dramatically improved performance of thread-ring for...
Currently qthreads just intercepts calls to sleep and basically does a qthread_yield until the sleep time is up. For highly parallel applications this doesn't hurt performance since the sleeping task...
Concurrent calls to mprotect seem to be particularly expensive on Xeon Phi. Qthreads pools stack memory, but not the guard pages, and it would make using guard pages much cheaper...
We use the distrib scheduler for our numa configuration, but default to nemesis everywhere else because it has slightly better performance. We used to default to sherwood for numa, but...
[qthread_check_hwloc.m4](https://github.com/Qthreads/qthreads/blob/master/config/qthread_check_hwloc.m4) checks to see if hwloc is working first with just `-lhwloc` and then with `-lhwloc -lnuma` in case hwloc was built with libnuma support. However, hwloc can depend on...
For certain low-level tasks, it is necessary to call a function exactly once on each hardware thread, sometimes even concurrently. For example, I might want to check that the hardware...
Compiled for KNL using generic X86-64 and I'm getting the following during link: ``` /home/projects/x86-64-knl/qthreads/20161003/lib/libqthread.so: undefined reference to `qt_setmctxt' /home/projects/x86-64-knl/qthreads/20161003/lib/libqthread.so: undefined reference to `qt_getmctxt' ```
This may be mostly finished with the "binders" work that @stelleg did, but we haven't gotten a chance to try binders out yet. This is mostly a placeholder issue to...
It seems like there has to be some room for improving the performance of spawning a bunch of tasks at once. Currently for coforalls, Chapel basically calls qthread_fork in a...