397001 Software Engineering: Making Programs Fast (S) (SoSe 2004)

Short comment

Teilnehmerzahl auf 20 begrenzt! Bitte in die Liste am schwarzen Brett im Flur neben M3-106 eintragen!
Limited number of participants! Please put your name on the list in M3 (next to M3-106)!

Contents, comment

Der doppeldeutige Titel des Kurses wurde absichtlich gewählt: (a) 'schnelle
Entwicklungsmethoden für die Programmierung' und (b) 'Entwicklung effizienter
Programme'. Dieser Kurs ist der Anfang einer Serie angewandter Seminare zum
Thema 'Software Engineering'. Das Seminar und das dazugehörige Tutorium
werden im GZI (Computer Pool) in direkter zeitlicher Abfolge gehalten. Auf
diese Weise können alle vorgestellten Techniken unmittelbar in der Praxis
ausprobiert werden. Wir wollen, dass Ihr 'hands on' Erfahrungen sammelt!

Der Kurs dieses Semesters hat Programmoptimierung unter Nutzung von C Compiler
und Profiling Werkzeugen eines Unix Systems (in unserem Fall: Solaris) zum
Ziel. Dazu gehören Werkzeuge wie: standard C Compiler Optimierungsoptionen,
automatische Optimierung durch Profilauswertung, Performance Analyzer, Kernel
Cache Statistiken, I/O Statistiken. Aber auch Optimierungstechniken wie:
memory mapped file I/O, optimized libraries, compiler pragmas, loop unrolling,
branch avoidance, aliasing avoidance, memory alignment probleme, cache-aware
array access.

Wir werden Euch zeigen wie man:

  • Die geeignete Hardware-Plattform auswählt fuer die man optimiert
  • Ein Programm durch Unit-Tests validiert
  • Ein Programm-Benchmark schreibt
  • Die Basis-Laufzeit eines unoptimierten Programms misst
  • Einfache Optimierung mit dem Compiler durchführt
  • Automatisch die Laufzeit und Validierung wiederholt
  • Aggressive Optimierung mit dem Compiler durchführt
  • Bottlenecks mit verschiedenen Profiling-Werkzeugen identifiziert
  • Programmcode zur Verbesserung der Laufzeit umschreibt

Software Engineering: Making Programs Fast

The title of this course was intentionaly chosen to have a double meaning: (a)
'fast design of programs' and (b) 'design of fast programs'. It is intended as
the start of a series of applied seminars on software engineering. The seminar
and its accompanying tutorial will be held in a computer pool in direct
succession. That way everything that is presented can be applied in practice
immediately. We want you to get 'hands on' experience in software engineering!

This semesters' course will focus on optimizing programs utilizing C compiler
features and profiling tools of a Unix OS (Solaris) such as: standard compiler
optimization switches, advanced compiler optimization via profiles,
Performance Analyser, kernel cache statistics, I/O statistics; as well as code
optimization techniques such as: memory mapped file I/O, optimized libraries,
compiler pragmas, loop unrolling, branch avoidance, aliasing avoidance, memory
alignment issues, cache-aware array access.

We will show you how to:

  • make an informed choice of which hardware platform to optimize for
  • validate a program: write unit tests
  • benchmark a program: write timing tests
  • measure the baseline performance of unoptimized code
  • perform simple compiler optimization
  • automatically retest and measure performance
  • perform aggressive compiler optimization
  • identify performance bottlenecks with various profiling tools
  • refactor and rewrite code to improve performance

Requirements for participation, required level

Der Kurs ist auf 20 Teilnehmer begrenzt. Ihr solltet die Programmiersprache C
in ihren Grundzügen beherrschen.

The course is limited to 20 participants. You should have a basic
understanding of the programming language C.

External comments page

http://www.cebitec.uni-bielefeld.de/groups/gs/CURRICULUM

Teaching staff

Dates ( Calendar view )

Frequency Weekday Time Format / Place Period  
weekly Do 14-15 GZI 19.04.-30.07.2004

Hide passed dates <<

Subject assignments

Degree programme/academic programme Validity Variant Subdivision Status Semester LP  
Graduate School in Bioinformatics and Genome Research / Promotion    
Naturwissenschaftliche Informatik / Diplom (Enrollment until SoSe 2004) SE   HS

No more requirements
No eLearning offering available
Address:
SS2004_397001@ekvv.uni-bielefeld.de
This address can be used by teaching staff, their secretary's offices as well as the individuals in charge of course data maintenance to send emails to the course participants. IMPORTANT: All sent emails must be activated. Wait for the activation email and follow the instructions given there.
If the reference number is used for several courses in the course of the semester, use the following alternative address to reach the participants of exactly this: VST_1087668@ekvv.uni-bielefeld.de
Notes:
Additional notes on the electronic mailing lists
Last update basic details/teaching staff:
Friday, December 11, 2015 
Last update times:
Monday, February 2, 2004 
Last update rooms:
Monday, February 2, 2004 
Type(s) / SWS (hours per week per semester)
seminar (S) / 1
Questions or corrections?
Questions or correction requests for this course?
Planning support
Clashing dates for this course
Links to this course
If you want to set links to this course page, please use one of the following links. Do not use the link shown in your browser!
The following link includes the course ID and is always unique:
https://ekvv.uni-bielefeld.de/kvv_publ/publ/vd?id=1087668
Send page to mobile
Click to open QR code
Scan QR code: Enlarge QR code
ID
1087668