Scientific Computing I
The lecture will show the pratical implementation of standard numerical algorithmns. We focus on the special properties of the float-pointing arithmetics and difficulties on reformulating the algorithms in a highlevel programming language such as C. Utilities for searching errors and post proccessing of results will be explained too. Additionally, existing software packages that should be used in own implementations will be introduced.
Schedule - Certifications - Recommended Literature - Teaching Material - Homework and Exercises - Links
Schedule
Lecture: | on Wednesdays, 9:15 - 10:45 hrs., G22-210 | on Fridays, 13.15 - 14:45 hrs., G23-K11 |
Tutorial: | on Mondays , 17:15 - 18:45 hrs., G05-308 |
Certifications
Criteria for getting a course assessment:
- at least 50% of all possible points from the homework
- at least 50% of the points in one homework ( on n-1 of n homework sheets)
- demonstrate and explain at least one exercise in the tutorial
Other possibilities to get an assessment will be announced in the lecture.
Recommended Literature
E-Books see Links section
Teaching Material
- Virtual Machine for the Exercises Username: scuser Password: scuser In order to run this Virtual Machine you need a Virtual Machine Tool like Virtual Box. The following packages are installed beside a Ubuntu 16.04: build-essential cmake git vim gfortran libopenblas-dev liblapack-dev gdb valgrind mc libopenmpi-dev python-numpy python-scipy
- Handout 1 Bash Special Characters
- Slides for the Linux Introduction (updated Oct. 19)
- Handout 2 Regular Expressions
- Handout 3 GCC Options
- Slides for the C Introduction (updated Oct. 28)
- Handout 4 Floating Point Numbers and Rounding
- Handout 5 Rounding Errors and Error Propagation
- Handout 6 The IEEE 754 Standard (updated Nov. 10)
- Handout 7 Error Concepts, Stability and Conditioning
- Handout 8 Memory Architecture and Memory Management
Homework and Exercises
- Homework 1 - Handout: 14th Oct. 2016, Return: 21st Oct. 2016
- Homework 2 - Handout: 18th Oct. 2016, Return: 4th Nov. 2016 - Sample data for Exercise 7: sample_data.tar.gz
- Homework 3 - Handout: 4th Nov. 2016, Return: 11th Nov. 2016
- Homework 4 - Handout: 10h Nov. 2016, Return: 18th Nov. 2016
- Homework 5 - Handout: 17h Nov. 2016, Return: 25th Nov. 2016
- Homework 6 - Handout: 24th Nov. 2016, Return: 2nd Dec. 2016
- Homework 7 - Handout: 1st Dec. 2016, Return: 9th Dec. 2016
- Homework 8 - Handout: 8th Dec. 2016, Return: 16th Dec. 2016 - Time measurement example code: wtime.c - Skeleton code for exercise 4: lapack_usage.tar.gz
- Homework 9 - Handout: 21st Dec. 2016, Return: 4th Jan. 2017
- Homework 10 - Skeleton for LU decomposition code: lu.c - Handout: 5th Jan. 2017, Return: 13th Jan. 2017
- Handout for Tutorial 10 - Flop-Counts of the LU decomposition
- Homework 11 - Skeleton for sparse matrix exercises: skeleton_sparse.tar.gz - Handout: 14th Jan. 2017, Return: 20th Jan. 2017
Links
- http://openbook.galileocomputing.de/linux/ - Linux Book from Gallileo Computing (german)
- http://openbook.galileocomputing.de/shell_programmierung/ - Shell Programming Book from Gallileo Computing (german)
- http://de.wikibooks.org/wiki/Linux-Kompendium - Linux WikiBook (german)
- http://en.wikibooks.org/wiki/Linux_Guide - Linux WikiBook (english)
- http://mrob.com/pub/math/floatformats.html - Overview about (ancient) floating point formats
- http://sed.sourceforge.net/sed1line.txt - Useful one line scripts for the sed (Unix stream editor)