Basic Information

  • READ: Course description, prerequisites, goals, integrity
  • READ: FAQs
  • Read the slides of the first lecture
  • Course number: 263-0007, 8 credits
  • Lectures: TBD
  • The lectures are not streamed but recorded. Login info is different from nethz and has been sent by email.
  • Instructor: Markus Püschel (CAB H69.3, pueschel at inf)
  • Head TA:
    • Tommaso Pegolotti (TP)
  • TAs:
    • Hicham Leghettas (ML)
    • Shien Zhu (SZ)
    • Emil Schätzle (ES)
    • Lorenzo Paleari (LP)
    • Jonáš Fiala (JF)
    • TBD
  • Mailing lists:
    • For technical questions: fastcode@lists.inf.ethz.ch (emails to this address go to the lecturer and all TAs)
    • Forum to find project partner: fastcode-forum@lists.inf.ethz.ch (emails go to all students who have no partner yet and to Head TA)
  • Office Hours: TBD

Time Line (Not Final)

This list can be subject to minor changes, which would be announced in a timely manner.

Fr 06.03. Project team and project registered in the project system; start project anytime now
Th 05.03. HW1 due
Th 12.03. HW2 due
Th 26.03. HW3 due
Th 09.04. HW4 due
TBD Midterm
week of 27.04. 1st one-on-one project meeting (minimal milestone: base implementation done, tested, performance plot, initial optimization plan, explain how you plan to divide the optimization work)
week of 18.05. 2nd one-on-one project meeting
week of 01.06. Project presentations
Fr 20.06. Project report due

Grading

  • 40% research project
  • Topic: Very fast, ideally adaptive implementation and associated performance analysis for a numerical problem
  • Team up in groups of four: register in the project system
  • March 6th: find team, find a problem (tip: look at prior courses)
  • Finding a problem: Two options
    • Suggest a project to MP for approval (see instructions in lecture 1, email MP with paper containing algorithm), or
    • Pick from the below list, which most teams do. If you pick from this list, the decision is final and cannot be changed. Each project has a maximum number of teams, shown in parenthesis. Below links with details will go live latest on Fri 21.02. and only then you can select:
  • Once project is fixed: add it in the project system to your team
  • Complete “milestones” during the semester and enter them in the project system
  • Later in semester: One or two 1 hour one-on-one meetings with a project supervisor
  • Give short presentation end of semester
  • Write a 7 page standard conference paper (template is provided below)
  • 30% midterm
  • 30% homework
    • Exercises on code analysis
    • Implementation exercises
      • study the effect of program optimizations, compilers, special instructions, etc.
      • write and submit C code & create runtime/performance plots
    • All homeworks are single-student homeworks (read integrity rules)
  • There is no final exam

Research Project

  • All projects have to be registered in our project system. This site contains a rough structure for your project and is also used later for updates.
  • How it works:
    • Weeks without homeworks should be used to work on the project
    • You select a numerical algorithm and create a correct (tested) implementation in C
    • You determine the arithmetic cost, measure the runtime and performance
    • You profile the implementation to find the parts in which most the runtime spent
    • Focusing on these you apply various optimization techniques from this class
    • You repeat the previous steps to create various versions with (hopefully) continuously better runtime
    • You use (exclusively) a repository that we provide to you
    • You analyze and reason about the performance behavior
    • You give a presentation and write a short paper about your work
  • Paper:
    • Maximal 7 pages (hard limit) without references, conference style, template and instructions below
    • Everybody reads this: report.pdf
    • Latex source: report.zip
    • Due date: 20.06 (in your git repository)
    • Name: (Team ID) + _report.pdf, e.g. 07_report.pdf
  • Presentation
  • Some tips on profiling tools
  • Rough timeline
    • Start project work: any time, the earlier the better
    • Assignment project advisor: around mid April
    • One-on-one project meetings: end of April and May, see above

Midterm

.

  • All the material up to then is fair game but the overwhelming part will be what was covered in the homeworks
  • You can study previous exams below
  • No books, notes, laptops, cell phones, or other electronic devices are allowed.
  • A dedicated calculator is allowed (i.e., not the one in your cell phone).
  • Assignment of the rooms is based on your legi number as registered in the system:

Previous exams:

Homework

Late policy: No deadline extensions, but you have 3 late days. You can use at most 2 on one homework. For example, submitting 20 minutes or 7 hours late costs one late day.

We will be using Moodle for the homeworks.

It may help to look at the homeworks of previous iterations of this course.

| Homework | Deadline | Solution |:——–|:————————————————————————|:—————–

Lectures Plan (subject to minor changes)

| Date | Content | Other Material |:——–|:——————————————————————————————–|:—————–