N1: Software Performance and Resource Management: Methods, Approaches and Tools (with Emphasis on Embedded Systems and Mobile Devices)

Turno Noche (19 a 22 horas)

Raimondas Lencevicius, Nokia Research Center, EEUU (Curso en inglés)

http://alumni.cs.ucsb.edu/~raimis/

Raimondas Lencevicius is currently a Program Manager leading "Software and System Performance" program in the Software and Application Technologies Laboratory at Nokia Research Center. He has been researching various aspects of performance analysis for over 4 years. Raimondas has published papers on the topics of performance data collection, fixed priority scheduling, schedulability estimation, and power consumption validation in a number of international conferences and workshops. Raimondas Lencevicius received his Ph.D. in 1999 from the Computer Science Department at University of California, Santa Barbara for thesis on "Query-Based Debugging". In 2000 his monograph "Advanced Debugging Methods" was published by Kluwer Academic Publishers. Raimondas is a program co-chair for AADEBUG'2005 (Sixth International Symposium on Automated and Analysis-Driven Debugging) and WODA'2004 (Second International Workshop on Dynamic Analysis), and has participated in program committees of other conferences and workshops. Raimondas lives with his wife near Boston, USA and enjoys martial arts, ballroom dancing, and MMORPGs.


Objetivos del Curso:

The course will cover state of the art and research directions in analyzing software performance and managing resources on software systems. The material of this course is based on hands-on experience in creating tools and analyzing software systems at Nokia Research Center. Although the focus of some methods may be embedded and mobile devices, a lot of approaches are applicable to a wide variety of software systems including personal computer software, web services, server software and so on.

The course is based on the cutting edge research papers and books authored by leading experts in runtime software analysis field. A number of performance analysis tools will be demonstrated during the course. Most of them are freely downloadable, so students have an opportunity to try out and use the same tools outside the course.

Since software performance is a large field, one week course necessarily has to limit its scope. Therefore this course will not cover: low-level system analysis and optimization (caches, etc.), general profiling, low level and algorithmic optimization.

Knowledge in programming, debugging and basic profiling of computer programs is expected. The course will be taught in English.


Programa:

This outline covers the topics to be covered in the course.

  • Software performance and resource management motivation
    • Moore's law limitations
    • Physical limitations
    • Economic limitations
  • Performance Requirements
    • Performance Assertions (Perl, Nokia research)
  • Performance Data Collection
    • Performance data collection process
    • Performance data collection via tracing, sampling and hybrid approaches (DCPI, Dyninst, Pin, Nokia research)
  • Performance Data Visualization
    • Evolve / NGage profiler
    • COTS use (Excel - Perf tool)
  • Performance Modeling and Planning
    • Regression models (Raj Jain)
    • Layered Queueing Networks
    • Cycle accurate simulation
    • Use case modeling
    • Component extraction
  • Resource Aware Computing
    • Energy Aware Software (Flinn)
    • Dynamic Voltage and Frequency Scaling (DVFS, Mark Weiser et al)
    • Resource Aware Software Frameworks (Robocop / Space4U)
  • Scheduling
    • Fixed priority scheduling and recent advances
  • Scheduling and resource aware computing

Requisitos:

  • Familiarity with at least 1 programming language and having written reasonable size program in it (~1000 lines) - Familiarity with debugging and basic profiling tools
  • Familiarity with software engineering would be helpful, but not absolutely necessary.

Bibliografía:

References here are presented within the context of the course outline. I.e. papers are referenced at the sections of the course where they will be covered.

  • Software performance and resource management motivation
    • Moore's law limitations
    • Physical limitations
    • Economic limitations
  • Performance Requirements
  • Performance Data Collection
  • Performance Data Visualization
  • Performance Modeling and Planning
    • Regression models (Raj Jain)
      • Raj Jain, "The Art of Computer Systems Performance Analysis", Wiley 1992.
    • Layered Queueing Networks
    • Cycle accurate simulation
    • Use case modeling
    • Component extraction
      • Model Based Estimation and Verification of Mobile Device Performance, Raghavan, Gopal; Salomaki Ari, Lencevicius Raimondas; Proceedings of the International Conference on Embedded Software (EMSOFT 2004 http://www.emsoft.org/ ), September 2004
  • Resource Aware Computing
  • Scheduling
    • Fixed priority scheduling and recent advances
    • Scheduling and resource aware computing
      • Applying Fixed Priority Scheduling in Practice, Lencevicius, Raimondas; Ran, Alexander; Proceedings of the Fourth International Workshop on Software and Performance (WOSP 2004 http://wosp.zeesource.net/), January 2004
      • Making Fixed Priority Scheduling Methods Work in Practice, Lencevicius, Raimondas; Ran, Alexander; Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS 2003 http://rtss2003.ece.cmu.edu/ ), December 2003
      • Recovery, Analysis and Improvement of Runtime Architecture of Mobile Phone Software, Ran, Alexander; Lencevicius, Raimondas;
      • Proceedings of the fourth European Software Engineering Conference (ESEC 2003 http://esecfse.cs.helsinki.fi/ ), September 2003

Material del Curso: