QUARK (QUeuing And Runtime for Kernels) provides a library that enables the dynamic execution of tasks with data dependencies in a multi-core, multi-socket, shared-memory environment. QUARK infers data dependencies and precedence constraints between tasks from the way that the data is used, and then executes the tasks in an asynchronous, dynamic fashion in order to achieve a high utilization of the available resources. QUARK is designed to be easy to use and it is intended to scale to large numbers of cores. It should enable the efficient expression and implementation of complex algorithms. The driving application behind the development of QUARK is the PLASMA linear algebra library, and the QUARK runtime contains several optimizations inspired by the algorithms in PLASMA. An early release of QUARK is being prepared, with a well-stressed and robust implementation and an initial Users’ Guide and Reference Guide. Additional documentation will be provided in future releases.
Keywords for this software
References in zbMATH (referenced in 5 articles )
Showing results 1 to 5 of 5.
- Chen, Yuxin; Keyes, David; Law, Kody J.H.; Ltaief, Hatem: Accelerated dimension-independent adaptive metropolis (2016)
- Ghysels, Pieter; Li, Xiaoye S.; Rouet, François-Henry; Williams, Samuel; Napov, Artem: An efficient multicore implementation of a novel HSS-structured multifrontal solver using randomized sampling (2016)
- Gonnet, Pedro: Efficient and scalable algorithms for smoothed particle hydrodynamics on hybrid shared/distributed-memory architectures (2015)
- Tillenius, Martin: Superglue: a shared memory framework using data versioning for dependency-aware task-based parallelization (2015)
- Baboulin, Marc; Dongarra, Jack; Herrmann, Julien; Tomov, Stanimire: Accelerating linear system solutions using randomization techniques (2013)
Further publications can be found at: http://icl.cs.utk.edu/quark/pubs/index.html