185.190 VU Efficient Programs
Curricula
Mandatory elective course in the Curricula "Computational Science and
Engineering" (Module "Computational Informatics")), "Data Science"
(Module "Big Data and High Performance Computing - Core"), "Logic and
Computation" (Module "Programming Languages and Verification")
"Software Engineering and Internet Computing" (Module
"Computersprachen und Programmierung"), as either "VU Efficient
Programs" or "VU Effiziente Programme". It has 2 hours (SWS) and 3
ECTS.
Time
Registration: TISS
(follow the link for the registration period).
Lecture time: Mon, 16:15-18:00, starting on 2024-10-07, EI 2 (Old
EI, Gusshausstrasse 25, 2nd floor).
After the lecture part, the students will hold the presentations of
the exercise part at the same time, starting at either 2024-12-16 or
at 2025-01-13. For this part attendance is required.
Advertisement
You may also be interested in Stackbasierte
Sprachen, held on Wednesday 16:15-18:00 in EI 6.
Videos
Lectures in German from the 2020W and 2021W semesters are
available online.
Note that the lecture changes over time, so if you follow only these
videos, you will miss some of the current content; you will also miss
the option of asking questions. The videos may still be useful if you
have an easier time with German, or if you miss a lecture.
Learning outcomes
After successful completion of the course, students are able to
determine whether a program is sufficiently efficient, to find
inefficient parts, and to make them more efficient.
Contents
Is efficiency needed? Kinds of efficiency. The effect of
specification on efficiency. Design for efficiency. The role of
efficient algorithms (constant factors, logarithmic factors).
Hardware characteristics (cache, block sizes, registers, bandwidth,
latency). Microoptimizations. Tools.
Grading
A group of 3-5 students optimizes a program and presents the result.
The grade is based on the presentation. The presentation should point
out which optimization step worked how well, compare this to your
expectations, and ideally also have an explanation of why an
optimization step worked better or worse than expected.
While algorithmic optimizations are not the topic of this course,
they are allowed (and, for the given exercise program, usually
expected). One way to deal with that is to write the code resulting
from an algorithmic optimization in a straightforward way, and then
performing additional non-algorithmic optization steps that you can
evaluate and present.
You can optimize a program of your choice. If you have no program
that you want to optimize, an exercise program will become available
sometime in November. For making the performance results comparable
between groups, you should measure it
on g0.complang.tuwien.ac.at
. You will get an account on
that machine once registration ends.
Given Exercise Program
Results Directory
If you want to publish your work (not graded), it is probably best to
do that on platforms like Sourcehut or
Github.
It would be nice if you also create a short page
with a link to your work or a directory with your work in
/nfs/unsafe/httpd/ftp/pub/anton/lvas/effizienz-abgaben/2024w/
(on the g0
). This directory can be
seen here
in the WWW.
Results from earlier years
Literature
Lecturer
Anton Ertl