Published October 4, 2016 | Version v1
Report Open

MemProf - Memory Allocation Profiling Tool for Real-World Applications

  • 1. CERN openlab Summer Student
  • 2. Summer Student Supervisor

Description

Project Specification

This project aims to build a memory allocation profiling on top of the popular dynamic analysis

framework Valgrind, able to detect heap memory waste or misusage. The project is divided in

several components:

1. Track allocations / deallocations of the client program – create a Valgrind plug-in tool able

to detect when the target program performs a heap memory operation (allocation / deallocation)

2. Collect and store relevant information about the allocations / deallocations – for each

operation keep the call parameters and other meta-information about its context.

3. Implement compression on the output analysis data – the tool should provide an option to

output compressed analysis data instead of plain text.

The result of this project is a plug-in tool for Valgrind which creates memory usage statistics for

any real-world application. This project aims to be part of Valgrind official repository.

Abstract

The Large Hadron Collider (LHC) experiments produce a vast amount of data and its throughput is even increasing in time. Scalability is the main keyword and adding more hardware often solves the problem but is never the most cost efficient solution. Technology permitted us to build increasingly stronger CPUs and there are several tools that aid in understanding their utilization and suggest possible optimizations. The memory represents the main bottleneck since its bandwidth is limited and there are only few tools focusing on profiling memory efficiency. MemProf is a memory allocation profiling tool built on top of Valgrind, a very popular open source dynamic analysis framework, thereby taking benefit both from already existing components and high maintenance from its large number of contributors. Moreover, Valgrind’s architecture permits the tool to access more fine-grained features such as support for multi-threaded programs and memory access tracking. The tool has been run over several standard Linux programs such as unzip, telnet, netstat, evince and is currently optimized for analysing larger applications. This paper presents the development process of this project, the current status and potential future extensions.

Files

Report Cristina Moraru.pdf

Files (478.1 kB)

Name Size Download all
md5:abf036d3bb0d34dd4588ead37c19bb61
478.1 kB Preview Download