Math 471 / CS 471, Introduction to Scientific Computing
Fall, 2019
Overview :: Dates :: Grading :: Homework :: Lecture Notes :: Other Materials
Time and Place: Tuesday/Thursday, DSH 144, 9:30am-10:45am
Instructor: Jacob B. Schroder, jbschroder unm.edu
Office Hours: SMLC 332
Tuesday: 11:30pm-1:00pm
Wednesday: 2:30pm-4:00pm
Exception: Tues, Oct. 1; Wed, Oct. 2 office hours moved to Fri, Oct. 4, 3:30pm-5:00pm (conference travel)
Syllabus: PDF1
Prerequisites: [ Math 314 or Math 321 or Math 316 ] And [ Programming skills ]
Text (optional): V. Eijkhout (with E. Chow and R. van de Geijn), Introduction to High Performance Scientific Computing
Course Description:
This is an introductory course in scientific computing. The course is
broad and exposes you to a variety of concepts and algorithms for
scientific computing, covering hardware, software, and an emphasis
on parallel programming.
This is a required course for all mathematics majors with a concentration
in Computational Mathematics.
Schedule of topics, course goals, and desired learning outcomes:
Please see the syllabus.
- CARC Tutorial on Sept. 17 and 20, from 1pm-5pm (attend only one tutorial),
Register Here
- CARC is at the northwest corner of University and Central Avenue, just across the street from main campus. When you come in the building, you can ask the reception where the workshop room is. Alternatively, take an immediate right, go up the short flight of stairs and down the hall, and the workshop room will be on your left.
- Fall Break: October 10th and 11th [No class on Thursday, October 10th]
- Thanksgiving Break: November 28th and 29th [No class on Thursday, November 28th]
- Final Project Due: Tuesday, December 10 at midnight Mountain Standard Time
Your grade for this course is based on 5 homework sets (600 points), a final project (200 points), and in-class work and attendance (50 points). This allows for a total of 850 points. The final grade for the class will be based on each student's percentage of the total points available. Letter grades will be assigned as follows:
- A, 90% or above
- B, 80% or above
- C, 70% or above
- D, 60% or above
- F, below 60%
The instructor reserves the right to curve grades to offset unforeseen circumstances. Such a curve will never decrease a student's letter grade below that from the above scheme.
Absences Policy: It is expected that each student regularly attend class.
- Course follows UNM handbook D-170 https://handbook.unm.edu/d170/
- Note, the handbook says "A student with excessive absences may be dropped from a course by the instructor with a grade of W/P or W/F."
- If you need to miss more than two classes during the semester, please contact the instructor.
- There will be 5 sets of homework assignments and one final project. They have the following points 50, 100, 150, 150, 150, 200, respectively, making a total of 800 points.
- Each homework and the project may consist of a combination of theoretical problems and programming tasks.
- You are strongly encouraged to work in pairs (a group of two students) for the homework and project, and hand in a single report, but it is expected that both of you can explain the material and the computer outputs. Groups of more than two students are not allowed.
- For the write-ups of the assignments, we will use a version control system.
- Homework may be submitted late up to a week for 50% credit. Homework grading disputes must be submitted in writing within one week after the work is returned.
- The languages used for this course are MPI and Python.
- Homework 1 Due: 23:59, Aug. 30, 2019
- Homework 2 Due: 23:59, Sept. 13, 2019
- Homework 3 Due: 23:59, Sept. 27, 2019
- Homework 4
Due: 23:59, Oct. 31, 2019Due 4:00pm, Nov. 1, 2019 - Homework 5 Due: 23:59, Nov. 18, 2019
- Homework 6 (project) Due: 23:59, Dec. 10, 2019
- Slide Deck 1
- Slide Deck 2
- Slide Deck 3
- Slide Deck 4
- Lab PDF 5
- Slide Deck 6
- Slide Deck 7
- Slide Deck 8
- Slide Deck 9
- Slide Deck 10
- Slide Deck 11 Lab PDF 11
- Slide Deck 12 Matrix Timings Script
- Lab PDF 13
- Slide Deck 14 Matrix-vector threading code
- Slide Deck 15 Poisson Matrix Function
- Fall Break
- Lab PDF 17
- Slide Deck 18
- Slide Deck 19
- Slide Deck 20
- Slide Deck 21
- Slide Deck 23
- Slide Deck 24
- Slide Deck 25
- Slide Deck 26
- Slide Deck 27
- Slide Deck 28
- Slide Deck 29
- Slide Deck 30
Relaxation.ipynb Relaxation_and_Modes.ipynb Relaxation_and_omega.ipynb Relaxation_on_smooth_and_non-smooth_error.ipynb - Slide Deck 31
Error_vs_Solution.ipynb Interpolation_1D.ipynb Nested_Iteration.ipynb
Other Material
Latex-
Latex Help: There are many, many Latex resources online. Some good places to start are
Overleaf Tutorial Part 1
Overleaf Tutorial Part 2
Or, look at the Sharelatex Tutorial - Getting Latex on a Mac is easy. Download the installer from here.
Linux Shell Computing
- A good resource for reading more about shells and Unix/Linux is software-carpentry.
- For a list of Unix commands with details see here.
Python / SciPy
- Software-carpentry also has a good introduction to Python
- SciPy has a good introduction to Numerical Python. See the "Introduction", "Basic Functions", and "Linear Algebra" sections, especially.
Last updated Fall, 2019