TY - GEN
T1 - Empirical investigation of code quality rule violations in HPC applications
AU - Hussain, Shahid
AU - Chicoine, Kaley
AU - Norris, Boyana
N1 - Funding Information:
This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration.
Publisher Copyright:
© 2021 ACM.
PY - 2021/6/21
Y1 - 2021/6/21
N2 - In large, collaborative open-source projects, developers must follow good coding standards to ensure the quality and sustainability of the resulting software. This is especially a challenge in high-performance computing projects, which admit a diverse set of contributions over decades of development. Some successful projects, such as the Portable, Extensible Toolkit for Scientific Computation (PETSc), have created comprehensive developer documentation, including specific code quality rules, which should be followed by contributors. However, none of the widely used and highly active open-source HPC projects have a way to automatically check whether these rules, typically expressed informally in English, are being violated. Hence, compliance checking is labor-intensive and difficult to ensure. To address this issue, we propose an automated method for detecting rule violations in HPC applications based on the PETSc development rules. In our empirical study, we consider 46 PETSc-based applications and assess the violations of two C-usage rules. The experimental results demonstrate the efficacy of the proposed method in identifying PETSc rule violations, which can be broadened to other HPC frameworks and extended by us and others in the community to include more rules.
AB - In large, collaborative open-source projects, developers must follow good coding standards to ensure the quality and sustainability of the resulting software. This is especially a challenge in high-performance computing projects, which admit a diverse set of contributions over decades of development. Some successful projects, such as the Portable, Extensible Toolkit for Scientific Computation (PETSc), have created comprehensive developer documentation, including specific code quality rules, which should be followed by contributors. However, none of the widely used and highly active open-source HPC projects have a way to automatically check whether these rules, typically expressed informally in English, are being violated. Hence, compliance checking is labor-intensive and difficult to ensure. To address this issue, we propose an automated method for detecting rule violations in HPC applications based on the PETSc development rules. In our empirical study, we consider 46 PETSc-based applications and assess the violations of two C-usage rules. The experimental results demonstrate the efficacy of the proposed method in identifying PETSc rule violations, which can be broadened to other HPC frameworks and extended by us and others in the community to include more rules.
UR - http://www.scopus.com/inward/record.url?scp=85108911975&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85108911975&partnerID=8YFLogxK
U2 - 10.1145/3463274.3463787
DO - 10.1145/3463274.3463787
M3 - Conference contribution
AN - SCOPUS:85108911975
T3 - ACM International Conference Proceeding Series
SP - 402
EP - 411
BT - Proceedings of EASE 2021 - Evaluation and Assessment in Software Engineering
PB - Association for Computing Machinery
T2 - 25th Evaluation and Assessment in Software Engineering Conference, EASE 2021
Y2 - 21 June 2021 through 24 June 2021
ER -