Contributed by Martin Tillenius
SuperGlue is a C++ library for task-parallelism, with data-dependent tasks.
The programmer divides the software into tasks and specifies which data each task reads and writes. SuperGlue then uses this information to deduce task dependencies, and executes the tasks in parallel while respecting these dependencies.
The source code and a tutorial is available at github: http://tillenius.github.io/superglue/
- DuctTeip: A task-based parallel programming framework for distributed memory architectures. Technical report / Department of Information Technology, Uppsala University nr 2016-010, 2016. (External link).
- SuperGlue: A shared memory framework using data versioning for dependency-aware task-based parallelization. In SIAM Journal on Scientific Computing, volume 37, pp C617-C642, 2015. (DOI, fulltext:print).
- A scalable RBF–FD method for atmospheric flow. In Journal of Computational Physics, volume 298, pp 406-422, 2015. (DOI, fulltext:postprint).
- Resource-aware task scheduling. In ACM Transactions on Embedded Computing Systems, volume 14, number 1, pp 5:1-25, 2015. (DOI, Fulltext).
- Scientific Computing on Multicore Architectures. Ph.D. thesis, Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology nr 1139, Acta Universitatis Upsaliensis, Uppsala, 2014. (fulltext, preview image).
- A task parallel implementation of an RBF-generated finite difference method for the shallow water equations on the sphere. Technical report / Department of Information Technology, Uppsala University nr 2014-011, 2014. (External link).
- SuperGlue: A shared memory framework using data versioning for dependency-aware task-based parallelization. Technical report / Department of Information Technology, Uppsala University nr 2014-010, 2014. (External link).
- A task parallel implementation of a scattered node stencil-based solver for the shallow water equations. In Proc. 6th Swedish Workshop on Multi-Core Computing, pp 33-36, Halmstad University, Halmstad, Sweden, 2013.
- Resource-aware task scheduling. In 4th Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures (PARMA), p 6, Tech. Univ. Berlin, Germany, 2013. (fulltext:postprint).
- Programming models based on data versioning for dependency-aware task-based parallelisation. In Proc. 15th International Conference on Computational Science and Engineering, pp 275-280, IEEE Computer Society, Los Alamitos, CA, 2012. (DOI).
- Leveraging multicore processors for scientific computing. Licentiate thesis, IT licentiate theses / Uppsala University, Department of Information Technology nr 2012-006, Uppsala University, 2012. (fulltext).
- A simple model for tuning tasks. In Proc. 4th Swedish Workshop on Multi-Core Computing, pp 45-49, Linköping University, Linköping, Sweden, 2011.
- Using hardware transactional memory for high-performance computing. In Proc. 25th International Symposium on Parallel and Distributed Processing Workshops and PhD Forum, pp 1660-1667, IEEE, Piscataway, NJ, 2011. (DOI).
- Early results using hardware transactional memory for high-performance computing applications. In Proc. 3rd Swedish Workshop on Multi-Core Computing, pp 93-97, Chalmers University of Technology, Göteborg, Sweden, 2010. (fulltext:postprint).
- An efficient task-based approach for solving the <em>n</em>-body problem on multicore architectures. PARA 2010: State of the Art in Scientific and Parallel Computing, University of Iceland, Reykjavík, 2010. (fulltext:postprint).
This project was supported by the Swedish Research Council through the Linnæus centre of excellence Uppsala Programming for Multicore Architectures Research Center (UPMARC).