Aurora is an OpenMP framework that is completely transparent to both the designer and end-user. Without any code transformation or recompilation, it is capable of automatically finding, at run-time and with minimum overhead, the optimal number of threads for each parallel loop region and re-adapt in cases the behavior of a region changes during execution.
When using Aurora, please use the following reference:
A. F. Lorenzon, C. C. de Oliveira, J. D. Souza and A. C. S. Beck, "Aurora: Seamless Optimization of OpenMP Applications," in IEEE Transactions on Parallel and Distributed Systems, vol. 30, no. 5, pp. 1007-1021, 1 May 2019. doi: 10.1109/TPDS.2018.2872992