AutoParBench: A Unified Test Framework for OpenMP-based Parallelizers
ResumoAfter decades of advances in techniques of automatic parallelization, software developers can count, today, on many different tools that transform a program, so that it runs in parallel. Yet, most of these tools are still considered research artifacts. They contain latent bugs, often consequence of a sparsity of testing frameworks for autoparallelizers. This dissertation describes one such framework: AutoParBench - the product of a cooperation between UFMG's Compilers Lab, and Lawrence Livermore National Laboratory. AutoParBench is today publicly available, and has been successfully used to find three zero-day bugs in the Intel C Compiler. Its usage also uncovered problems in more research-oriented tools: 2 bugs in DawnCC, 4 in Rose AutoPar and 2 in Cetus. All these bugs have been confirmed, and some of them have been already fixed as an aftermath of this work.
Bae, H., Mustafa, D., Lee, J.-W., Aurangzeb, Lin, H., Dave, C., Eigenmann, R., and Midkiff, S. P. (2013). The cetus source-to-source compiler infrastructure: Overview and evaluation. International Journal of Parallel Programming, 41(6):753–767.
Bondhugula, U., Hartono, A., Ramanujam, J., and Sadayappan, P. (2008). A practical automatic polyhedral parallelizer and locality optimizer. In PLDI, page 101–113, New York, NY, USA. ACM.
Che, S., Boyer, M., Meng, J., Tarjan, D., Sheaffer, J. W., Lee, S.-H., and Skadron, K. (2009). Rodinia: A benchmark suite for heterogeneous computing. In IISWC, pages 44–54, Washington, DC, USA. IEEE.
Liao, C., Lin, P.-H., Asplund, J., Schordan, M., and Karlin, I. (2017). Dataracebench: A benchmark suite for systematic evaluation of data race detection tools. In SC, pages 11:1–11:14, New York, NY, USA. ACM.
Liao, C., Quinlan, D. J., Willcock, J. J., and Panas, T. (2010). Semantic-aware automatic parallelization of modern applications using high-level abstractions. Int. J. Parallel Programming, 38(5):361–378.
Mendonca, G. S. D., Guimaraes, B. C. F., Alves, P. R. O., Pereira, F. M. Q., Pereira, ˜M. M., and Araujo, G. (2016). Automatic insertion of copy annotation in data-parallel programs. In SBAC-PAD, pages 34–41, Los Alamitos, CA, USA. IEEE.
Mendonca, G., Guimaraes, B., Alves, P., Pereira, M., Araujo, G., and Pereira, F. M. Q. a. ´ (2017). DawnCC: Automatic annotation for data parallelism and offloading. ACM Trans. Archit. Code Optim., 14(2):13:1–13:25.
Mendonca, G. S. D., Liao, C., and Pereira, F. M. Q. a. (2020). Autoparbench: A unified test framework for openmp-based parallelizers. In ICS, New York, NY, USA. ACM.
Ramos, P., Souza, G., Leobas, G., and Pereira, F. M. Q. (2018a). Taskminer: Automatic identification of tasks. In SBLP, page 11–18, New York, NY, USA. ACM.
Ramos, P., Souza, G., Soares, D., Araujo, G., and Pereira, F. M. Q. a. (2018b). Automatic annotation of tasks in structured code. In PACT, New York, NY, USA. ACM.
Seo, S., Jo, G., and Lee, J. (2011). Performance characterization of the NAS parallel benchmarks in opencl. In IISWC, pages 137–148, Piscataway, NJ, USA. IEEE Press.