User Tools

Site Tools


publication

Publication details

  • Generalized and Optimized Memory Management with LLVM (Niclas Schroeter), Master's Thesis, School: Universität Hamburg, 2023-12-05
    Publication details

Abstract

Utilizing modern multiprocessors effectively is an important aspect of scientific applications. Thus, many such applications rely on OpenMP as a simple option for parallelization. One of the main downsides of OpenMP is its limitation to shared memory. Tools, such as CATO, aim to transform OpenMP applications to use MPI functions instead, thereby improving the scalability of applications that were formerly bound to a single compute node. The purpose of this thesis is to adapt and improve CATO in two major capacities: the first improvement is aimed at CATO’s general memory management, enabling the transformation of applications that make use of arrays of arbitrary dimension. This is achieved by means of a thorough analysis of array indexing in LLVM IR and subsequent changes to the compiler pass component and the runtime library of CATO. The second improvement aims to optimize the memory management at runtime. To this end, multiple cache models are proposed and implemented, including one that conforms to the OpenMP memory model. Evaluations on multiple OpenMP kernels suggest that the optimized memory management at runtime can reduce the time to solution by more than 50% in many cases, at the cost of an increase in memory consumption.

BibTeX

@mastersthesis{GAOMMWLS23,
	author	 = {Niclas Schroeter},
	title	 = {{Generalized and Optimized Memory Management with LLVM}},
	advisors	 = {Jannek Squar and Michael Kuhn},
	year	 = {2023},
	month	 = {12},
	school	 = {Universität Hamburg},
	howpublished	 = {{Online \url{https://wr.informatik.uni-hamburg.de/_media/research:theses:niclas_schroeter_generalized_and_optimized_memory_management_with_llvm.pdf}}},
	type	 = {Master's Thesis},
	abstract	 = {Utilizing modern multiprocessors effectively is an important aspect of scientific
			applications. Thus, many such applications rely on OpenMP as a simple option for
			parallelization. One of the main downsides of OpenMP is its limitation to shared memory.
			Tools, such as CATO, aim to transform OpenMP applications to use MPI functions instead,
			thereby improving the scalability of applications that were formerly bound to a single compute
			node. The purpose of this thesis is to adapt and improve CATO in two major capacities: the
			first improvement is aimed at CATO’s general memory management, enabling the transformation of
			applications that make use of arrays of arbitrary dimension. This is achieved by means of a
			thorough analysis of array indexing in LLVM IR and subsequent changes to the compiler pass
			component and the runtime library of CATO. The second improvement aims to optimize the memory
			management at runtime. To this end, multiple cache models are proposed and implemented,
			including one that conforms to the OpenMP memory model. Evaluations on multiple OpenMP kernels
			suggest that the optimized memory management at runtime can reduce the time to solution by
			more than 50\% in many cases, at the cost of an increase in memory consumption.},
}

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