User Tools

Site Tools


publication

Publication details

  • Static Code Analysis for HPC Use Cases (Frank Röder), Bachelor's Thesis, School: Universität Hamburg, 2017-07-26
    Publication details

Abstract

The major objective of this thesis is to approach the procedure of getting into compiler-based checks. The focus are high-performance computing use cases. Especially the Message-Passing-Interface (MPI) is used to execute parallel tasks via inter-process communication, including parallel reading and writing of files are taken into account. A motivation states why it is remarkable to use static analysis. Following this, techniques and tools to improve software development with static analysis are introduced. Nowadays parallel software has large code bases. With rising complexity the possibility of generating bugs is undeniable. Tools to reduce the error-proneness are important factors of efficiency. The infrastructure of LLVM as well as the Clang Static Analyzer (CSA) are introduced to understand static analysis and how to capture information of the relevant compile phases. Based on this, the utility of an existing check is explained. Problems exposing at runtime are observed through code simulation in the frontend named symbolic execution. In what follows, the comprehension is transferred to the use case of purpose. Common mistakes to overlook like issues with readability and bad code styles are checked through analysis of the abstract-syntax-tree. For this intention the LLVM tool Clang-Tidy has been extended with new checks. The checks regarding symbolic execution involve MPI-IO related double closes and operations concerning file access. The routines to find these bugs have been added to the CSA. This thesis makes use of the already existing structure named MPI-Checker, which provides the handling of MPI. As a summary the benefits of working on checks to detecting serious bugs are mentioned.

BibTeX

@misc{SCAFHUCR17,
	author	 = {Frank Röder},
	title	 = {{Static Code Analysis for HPC Use Cases}},
	advisors	 = {Alexander Droste and Michael Kuhn},
	year	 = {2017},
	month	 = {07},
	school	 = {Universität Hamburg},
	howpublished	 = {{Online \url{https://wr.informatik.uni-hamburg.de/_media/research:theses:frank_roeder_static_code_analysis_for_hpc_use_cases.pdf}}},
	type	 = {Bachelor's Thesis},
	abstract	 = {The major objective of this thesis is to approach the procedure of getting into
			compiler-based checks. The focus are high-performance computing use cases. Especially the
			Message-Passing-Interface (MPI) is used to execute parallel tasks via inter-process
			communication, including parallel reading and writing of files are taken into account. A
			motivation states why it is remarkable to use static analysis. Following this, techniques and
			tools to improve software development with static analysis are introduced. Nowadays parallel
			software has large code bases. With rising complexity the possibility of generating bugs is
			undeniable. Tools to reduce the error-proneness are important factors of efficiency. The
			infrastructure of LLVM as well as the Clang Static Analyzer (CSA) are introduced to understand
			static analysis and how to capture information of the relevant compile phases. Based on this,
			the utility of an existing check is explained. Problems exposing at runtime are observed
			through code simulation in the frontend named symbolic execution. In what follows, the
			comprehension is transferred to the use case of purpose. Common mistakes to overlook like
			issues with readability and bad code styles are checked through analysis of the
			abstract-syntax-tree. For this intention the LLVM tool Clang-Tidy has been extended with new
			checks. The checks regarding symbolic execution involve MPI-IO related double closes and
			operations concerning file access. The routines to find these bugs have been added to the CSA.
			This thesis makes use of the already existing structure named MPI-Checker, which provides the
			handling of MPI. As a summary the benefits of working on checks to detecting serious bugs are
			mentioned.},
}

publication.txt · Last modified: 2019-01-23 10:26 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki