# How to Write Fast Numerical Code - Spring 2015

# Basic Information

- Course description, goals, integrity, knowledge base
- Course number: 263-2300, 6 credits
- Spring 2015, lectures: M 10:15-12:00, CHN C14; Th 9:15-10:00 CAB G51; occasional substitute lectures: W 13:15-15:00 HG D3.2
**Instructor**: Markus Püschel**TAs**:- Alen Stojanov
- Daniele Spampinato
- Gagandeep Singh
- Only for project supervision: Georg Ofenbeck

# Grading

**40% research project****25% midterm****35% homework****There is no final Exam**

# Research Project

# | Title | Supervisor/s |
---|---|---|

1 | Smoothed Particle Hydrodynamics | AS, DS |

2 | Particle Filtering | MP |

3 | Simulating Dynamical Features of Escape Panic | AS, DS |

4 | Social Force Model | AS, DS |

5 | Numerical treatment of SODEs | AS, DS |

6 | Bayesian Belief Propagation (MP) | MP |

7 | Corner Detection using the Harris Algorithm | MP |

8 | Text recognition in natural images | GO, GS |

9 | Simulation of Semiconductor Nanostructure | MP |

10 | Deep Matching and DeepFlow | MP |

11 | AdaBoost | MP |

12 | SGM Stereo Matching | GO, GS |

13 | Splitting methods in Control | GO, GS |

14 | Stochastic Combinatorial Optimization | AS, DS |

# Midterm

15. April, 13:15 - 15:00, HG E3 (without solution, with solution).

# Homework

Homework | Deadline | Solution |
---|---|---|

Homework 0 | as soon as possible | |

Homework 1 | March 5th, 5pm | Solution |

Homework 2 | March 12th, 5pm | Solution |

Homework 3 | March 19th, 5pm | Solution |

Homework 4 = work on project | April 2nd, 5pm | |

Homework 5 (code needed) | April 24th, 5pm | Solution |

Homework 6 = work on project | May 5th, 5pm | |

Homework 7 = work on project | May 19th, 5pm |

# Lectures (including pdfs)

Date | Slides | Notes | Other |
---|---|---|---|

16.02 | Course motivation, overview, organization | ||

19.02 | Reminder basic concepts, cost/performance analysis link | ||

23.02 | Architecture/Microarchitecture, operational intensity, Core 2/Core i7 | Intel Optimization Manual | |

26.02 | Optimization for instruction level parallelism (ILP), Benchmarking | ||

02.03 | Small benchmarking guide, compiler limitations | ||

05.03 | Locality and caches, blocking MMM | notes | |

09.03 | Roofline model | notes | paper |

12.03 | Linear algebra, LAPACK, BLAS, fast MMM | notes | |

16.03 | Fast MMM continued | ||

19.03 | Fast MMM continued | ||

23.03 | Fast MMM: register renaming and virtual memory | notes | |

26.03 | Memory bound computations, sparse MVM | ||

30.03 | Sparse MVM continued, SIMD vectorization | ||

02.04 | SIMD vectorization | Intel Intrinsics Guide | |

06.04 | Spring break | ||

08.04 | Spring break | ||

13.04 | (Sechseläuten) class cancelled | ||

15.04 | Midterm exam, HG E3 | ||

16.04 | SIMD vectorization | ||

20.04 | Compiler vectorization, linear transforms, fast Fourier transform (FFT) | notes | ICC vectorizations |

23.04 | FFT | notes | |

27.04 | Fast FFT implementation, FFTW | notes | |

30.04 | cancelled (due to one-on-ones a week later) | ||

04.05 | Spiral: DSL-based program generator for linear transforms | ||

07.05 | cancelled (one-on-ones) | ||

11.05 | Machine learning in autotuning | ||

14.05 | (Ascension day) no class | ||

18.05 | Language environments for building program generators | ||

21.05 | no class (one-on-ones) | ||

25.05 | (Whitsuntide) no class | ||

27.05 | Project presentations (HG D3.2) | ||

28.05 | Project presentations (CAB G11), 9:15-11:00 (one hour longer) |