Software Profiling (Sommersemester 2013)
Lecturer:
Course Website:
http://www.dcl.hpi.uni-potsdam.de/teaching/profSem/
General Information
- Weekly Hours: 2
- Credits: 3
- Graded:
yes
- Enrolment Deadline: 10.2.2013 - 30.4.2013
- Teaching Form: Seminar
- Enrolment Type: Compulsory Elective Module
Programs, Module Groups & Modules
- IT-Systems Engineering A
- IT-Systems Engineering B
- IT-Systems Engineering C
- IT-Systems Engineering D
- Operating Systems & Information Systems Technology
Description
Software profiling is an established technique for the dynamic analysis of running programs. It supports the software developer or product maintainer in understanding code execution paths, resource consumption behavior and communication patterns. Software profiling typically does not demand access to the source code of the application at measurement time, which makes it perfectly usable in production environments and distributed (cloud) systems.
Several use cases for software profiling are recently emerging in practice:
- Analysis of ILP mechanisms - Compilers have different ways of using ILP mechanisms in the processor, which can be influenced by the right choice of compiler flags. Any particular optimization such as branch prediction, VLIW combinations or hyperthreading must be analyzable for its effectiveness when the code is being executed on a particular platform.
- Analysis of parallelization strategies - Any parallelization strategy leads to new and non-deterministic behavior at runtime due to synchronization or locking issues. A software developer can only understand the new program behavior if she is supported by software profiling tools, which allow to identify relevant bottlenecks, lock contention and code hot spots.
- Analysis of resource management - High-level execution environments such as web servers or application servers have their own resource pooling and management mechanisms. The only way to understand sub-optimal application settings in those environments is the utilization of profiling mechanisms.
- New platforms - Any porting activity of existing code to a new execution environment demands the analysis of run-time behavior and resource consumption under the new conditions.
The goal of this seminar is the creation of a software profiling compendium, which covers, from hardware over operating system up to virtual runtime environment, different application layers and their profiling support. Based on the quality of the student reports, this compendium may be published as technical report of the HPI.
Requirements
Students should have solid experience in software engineering projects and complex programming tasks.
Literature
Please check the course home page for further information.
Learning
Please check the course home page for further information.
Examination
Please check the course home page for further information.
Dates
Monday, 11:00-12:30
Zurück