Go to the source code of this file.
|
|
Definition at line 275 of file WKFThreads.h. Referenced by wkf_shared_iterator_next_tile, and wkf_threadpool_next_tile. |
|
|
Shared iterators intended for trivial CPU/GPU load balancing with no exception handling capability (all work units must complete with no errors, or else the whole thing is canceled). Definition at line 274 of file WKFThreads.h. Referenced by cudadensitythread, cudaenergythread, cudaorbitalthread, densitythread, energythread, openclenergythread, openclorbitalthread, orbitalthread, rdf_thread, reductionthread, text_cmd_parallel, vmddevpoolcudatilelatencythread, vmddevpooltilelatencythread, wkf_shared_iterator_next_tile, and wkf_threadpool_next_tile. |
|
|
symbolic constant macro to test if we have a GPU or not Definition at line 318 of file WKFThreads.h. |
|
|
shortcut macro to tell the create routine we only want CPU cores Definition at line 315 of file WKFThreads.h. |
|
|
Definition at line 52 of file WKFThreads.h. |
|
|
Definition at line 234 of file WKFThreads.h. Referenced by wkf_threadpool_next_tile, and wkf_tilestack_pop. |
|
|
Definition at line 111 of file WKFThreads.h. Referenced by wkf_cond_broadcast, wkf_cond_destroy, wkf_cond_init, wkf_cond_signal, wkf_cond_wait, and wkf_cpu_affinitylist. |
|
|
Definition at line 110 of file WKFThreads.h. Referenced by AtomSelThr::AtomSelThr, bondsearchthread, find_next_cluster, vmd_bondsearch_thr, wkf_cond_wait, wkf_cpu_affinitylist, wkf_mutex_destroy, wkf_mutex_init, wkf_mutex_lock, wkf_mutex_spin_lock, wkf_mutex_trylock, and wkf_mutex_unlock. |
|
|
|
|
|
iterator used for dynamic load balancing |
|
|
Task tile struct for stack, iterator, and scheduler routines; 'start' is inclusive, 'end' is exclusive. This yields a half-open interval that corresponds to a typical 'for' loop. |
|
|
Definition at line 109 of file WKFThreads.h. Referenced by find_next_cluster, find_within, measure_gofr, VMDCollab::startserver, text_cmd_parallel, vmd_bondsearch_thr, vmd_cuda_bus_bw, vmd_cuda_globmem_bw, vmd_cuda_madd_gflops, wkf_thread_create, wkf_thread_join, wkf_thread_numprocessors, wkf_threadlaunch, and wkf_threadpool_create. |
|
|
Routines to generate a pool of threads which then grind through a dynamically load balanced work queue implemented as a shared iterator. No exception handling is possible, just a simple all-or-nothing attept. Useful for simple calculations that take very little time. An array of threads is generated, launched, and joined all with one call. |
|
|
|
|
|
thread-specific handle data for workers |
|
|
signal a condition variable, waking all threads Definition at line 633 of file WKFThreads.C. Referenced by wkf_thread_run_barrier. |
|
|
destroy a condition variable Definition at line 527 of file WKFThreads.C. Referenced by wkf_thread_run_barrier_destroy. |
|
|
initialize a condition variable Definition at line 494 of file WKFThreads.C. Referenced by wkf_thread_run_barrier_init. |
|
|
signal a condition variable, waking at least one thread Definition at line 604 of file WKFThreads.C. |
|
||||||||||||
|
wait on a condition variable Definition at line 548 of file WKFThreads.C. Referenced by wkf_thread_run_barrier. |
|
|
query CPU affinity of the calling process (if allowed by host system) Definition at line 160 of file WKFThreads.C. References wkf_cond_t, and wkf_mutex_t. Referenced by vmdinfo_tcl. |
|
|
destroy a mutex Definition at line 474 of file WKFThreads.C. Referenced by find_next_cluster, vmd_bondsearch_thr, wkf_shared_iterator_destroy, wkf_thread_run_barrier_destroy, and wkf_tilestack_destroy. |
|
|
initialize a mutex Definition at line 379 of file WKFThreads.C. Referenced by find_next_cluster, IMDSimThread::IMDSimThread, vmd_bondsearch_thr, wkf_shared_iterator_init, wkf_thread_run_barrier_init, and wkf_tilestack_init. |
|
|
|
lock a mutex by spinning only Definition at line 434 of file WKFThreads.C. Referenced by wkf_shared_iterator_next_tile, and wkf_shared_iterator_setfatalerror. |
|
|
try to lock a mutex Definition at line 413 of file WKFThreads.C. |
|
|
|
destroy a shared iterator Definition at line 916 of file WKFThreads.C. Referenced by text_cmd_parallel, wkf_threadlaunch, and wkf_threadpool_destroy. |
|
|
master thread calls this to query for fatal errors Definition at line 991 of file WKFThreads.C. Referenced by wkf_threadlaunch, and wkf_threadpool_getfatalerror. |
|
|
initialize a shared iterator Definition at line 906 of file WKFThreads.C. Referenced by text_cmd_parallel, wkf_threadlaunch, and wkf_threadpool_create. |
|
||||||||||||||||
|
iterate the shared iterator, over a requested half-open interval Definition at line 942 of file WKFThreads.C. Referenced by text_cmd_parallel, wkf_threadlaunch_next_tile, and wkf_threadpool_next_tile. |
|
||||||||||||
|
set shared iterator parameters Definition at line 925 of file WKFThreads.C. Referenced by text_cmd_parallel, wkf_threadlaunch, and wkf_threadpool_sched_dynamic. |
|
|
worker thread calls this to indicate a fatal error Definition at line 978 of file WKFThreads.C. Referenced by wkf_threadlaunch_setfatalerror, and wkf_threadpool_setfatalerror. |
|
||||||||||||||||
|
create a new child thread Definition at line 321 of file WKFThreads.C. Referenced by find_next_cluster, find_within, IMDSimThread::IMDSimThread, measure_gofr, VMDCollab::startserver, text_cmd_parallel, vmd_bondsearch_thr, vmd_cuda_bus_bw, vmd_cuda_globmem_bw, vmd_cuda_madd_gflops, wkf_threadlaunch, and wkf_threadpool_create. |
|
||||||||||||
|
join (wait for completion of, and merge with) a thread Definition at line 353 of file WKFThreads.C. Referenced by find_next_cluster, find_within, measure_gofr, text_cmd_parallel, vmd_bondsearch_thr, vmd_cuda_bus_bw, vmd_cuda_globmem_bw, vmd_cuda_madd_gflops, wkf_threadlaunch, wkf_threadpool_destroy, and IMDSimThread::~IMDSimThread. |
|
|
If compiling on Linux, enable the GNU CPU affinity functions in both libc and the libpthreads Definition at line 93 of file WKFThreads.C. |
|
|
number of processors available, subject to user override Definition at line 128 of file WKFThreads.C. References wkf_thread_t. |
|
|
destroy thread pool barrier Definition at line 684 of file WKFThreads.C. Referenced by wkf_threadpool_destroy. |
|
||||||||||||
|
initialize thread pool barrier Definition at line 668 of file WKFThreads.C. Referenced by wkf_threadpool_create. |
|
|
non-blocking poll to see if peers are already at the barrier Definition at line 742 of file WKFThreads.C. Referenced by wkf_threadpool_poll. |
|
|
set the CPU affinity of the current thread (if allowed by host system) Definition at line 249 of file WKFThreads.C. |
|
|
set the concurrency level and scheduling scope for threads Definition at line 294 of file WKFThreads.C. |
|
||||||||||||||||||||
|
launch up to numprocs threads using shared iterator as a load balancer Definition at line 1291 of file WKFThreads.C. Referenced by evaluate_grid_fast, vmd_cuda_gaussdensity_direct, vmd_cuda_vol_cpotential, vmd_gaussdensity_threaded, vmd_opencl_evaluate_orbital_grid, vmd_opencl_vol_cpotential, and vol_cpotential_cpu. |
|
||||||||||||
|
worker thread can call this to get its client data pointer Definition at line 1381 of file WKFThreads.C. Referenced by cudadensitythread, cudaenergythread, densitythread, energythread, openclenergythread, openclorbitalthread, orbitalthread, and reductionthread. |
|
||||||||||||||||
|
worker thread can call this to get its ID and number of peers Definition at line 1368 of file WKFThreads.C. Referenced by cudadensitythread, cudaenergythread, densitythread, energythread, openclenergythread, openclorbitalthread, and reductionthread. |
|
||||||||||||||||
|
iterate the shared iterator over the requested half-open interval Definition at line 1391 of file WKFThreads.C. Referenced by cudadensitythread, cudaenergythread, densitythread, energythread, openclenergythread, openclorbitalthread, orbitalthread, and reductionthread. |
|
|
worker thread calls this to indicate that an unrecoverable error occured Definition at line 1399 of file WKFThreads.C. |
|
||||||||||||
|
create a thread pool with a specified number of worker threads Definition at line 1028 of file WKFThreads.C. |
|
|
join all worker threads and free resources Definition at line 1123 of file WKFThreads.C. |
|
|
return the number of worker threads currently in the pool Definition at line 1157 of file WKFThreads.C. Referenced by rdf_gpu, and vmd_cuda_measure_latencies. |
|
|
master thread calls this to query for fatal errors Definition at line 1283 of file WKFThreads.C. |
|
||||||||||||||||||||
|
launch threads onto a new function, with associated parms Definition at line 1088 of file WKFThreads.C. Referenced by CUDAAccel::devpool_launch, rdf_gpu, vmd_cuda_devpool_latency, vmd_cuda_evaluate_orbital_grid, vmd_cuda_measure_latencies, and vmd_opencl_evaluate_orbital_grid. |
|
||||||||||||||||
|
iterate the shared iterator over the requested half-open interval Definition at line 1248 of file WKFThreads.C. Referenced by cudaorbitalthread, openclorbitalthread, rdf_thread, vmddevpoolcudatilelatencythread, and vmddevpooltilelatencythread. |
|
||||||||||||
|
Set shared iterator state to half-open interval defined by tile Definition at line 1240 of file WKFThreads.C. Referenced by rdf_gpu, vmd_cuda_devpool_latency, vmd_cuda_evaluate_orbital_grid, and vmd_opencl_evaluate_orbital_grid. |
|
|
worker thread calls this to indicate that an unrecoverable error occured Definition at line 1275 of file WKFThreads.C. |
|
||||||||||||
|
worker thread calls this when a failure occurs on a tile it has already taken from the scheduler Definition at line 1268 of file WKFThreads.C. |
|
|
wait for all worker threads to complete their work Definition at line 1106 of file WKFThreads.C. Referenced by CUDAAccel::devpool_wait, and vmd_cuda_devpool_latency. |
|
||||||||||||
|
worker thread calls this to scale max tile size by worker speed as determined by the SM/core count and clock rate Definition at line 1214 of file WKFThreads.C. Referenced by cudaorbitalthread, openclorbitalthread, and vmddevpoolcudatilelatencythread. |
|
||||||||||||
|
worker thread can call this to get its client data pointer Definition at line 1230 of file WKFThreads.C. Referenced by cudaorbitalthread, openclorbitalthread, rdf_thread, vmd_cuda_devpool_setdevice, vmddevpoolcudalatencythread, vmddevpoolcudatilelatencythread, and vmddevpooltilelatencythread. |
|
||||||||||||
|
worker thread can call this to get its CPU/GPU device ID Definition at line 1176 of file WKFThreads.C. Referenced by vmd_cuda_devpool_clear_device_mem, and vmd_cuda_devpool_setdevice. |
|
||||||||||||
|
worker thread calls this to get relative speed of this device as determined by the SM/core count and clock rate Definition at line 1202 of file WKFThreads.C. |
|
||||||||||||||||
|
worker thread can call this to get its ID and number of peers Definition at line 1163 of file WKFThreads.C. Referenced by cudaorbitalthread, openclorbitalthread, rdf_thread, vmd_cuda_devpool_clear_device_mem, vmd_cuda_devpool_setdevice, vmddevpoolcudalatencythread, vmddevpoolcudatilelatencythread, and vmddevpooltilelatencythread. |
|
||||||||||||
|
worker thread calls this to set relative speed of this device as determined by the SM/core count and clock rate Note: this should only be called once, during the worker's device initialization process Definition at line 1191 of file WKFThreads.C. Referenced by vmd_cuda_devpool_setdevice. |
|
|
shrink memory buffers associated with task tile stack if possible Definition at line 790 of file WKFThreads.C. |
|
|
destroy task tile stack Definition at line 781 of file WKFThreads.C. Referenced by wkf_threadpool_destroy. |
|
|
query if the task tile stack is empty or not Definition at line 881 of file WKFThreads.C. |
|
||||||||||||
|
initialize task tile stack (to empty) Definition at line 758 of file WKFThreads.C. Referenced by wkf_threadpool_create. |
|
||||||||||||
|
pop a task tile off of the stack Definition at line 843 of file WKFThreads.C. Referenced by wkf_threadpool_next_tile. |
|
|
pop all of the task tiles off of the stack Definition at line 866 of file WKFThreads.C. |
|
||||||||||||
|
push a task tile onto the stack Definition at line 814 of file WKFThreads.C. Referenced by wkf_threadpool_tile_failed. |
|
|
sleeping barrier synchronization for thread pool Definition at line 211 of file WKFThreads.h. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002