Skip to content

uwhpsc-2016/syllabus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AMath 483/583 Spring 2016 - High Performance Scientific Computing

Instructor: Chris Swierczewski (cswiercz)

Teaching Assistants:

In-Class Meetings: TTh 800-930 LOW 206

Lecture Recordings: https://mediasite6.pce.uw.edu/Mediasite/Catalog/catalogs/16amath583

Course Chat Room: ![Gitter](https://badges.gitter.im/Join Chat.svg)

Additional Important Information

  • New Student Checklist - a list of accounts you should create and websites you should check as soon as possible
  • Course Syllabus - detailed course syllabus, day-by-day lectures, homework due dates, quiz dates
  • Grading Policy - how the course homework, quizzes, and final project will be graded,
  • Asking Questions - course rules on posting questions in the course chat and issues pages, list of resources on various topics
  • Canvas Page - quizzes are administered here.
  • About the Homework - how to obtain, complete, and submit the bi-weekly homework.
  • Lectures - slides, code, and notes from each lecture

Course Description

Computation and simulation are increasingly important in all aspects of science and engineering. At the same time writing efficient computer programs to take full advantage of current computers is becoming increasingly difficult. Even laptops now have 4 or more processors, but using them all to solve a single problem faster often requires rethinking the algorithm to introduce parallelism, and then programming in a language that can express this parallelism. Writing efficient programs also requires some knowledge of machine arithmetic, computer architecture, and memory hierarchies.

Although parallel computing will be covered, this is not a class on the most advanced techniques for using supercomputers, which these days have tens of thousands of processors and cost millions of dollars. Instead, the goal is to teach tools that you can use immediately on your own laptop, desktop, or a small cluster. Cloud computing will also be discussed, and students who don't have a multiprocessor computer of their own will still be able to do projects using Sage Math Cloud at very low cost.

Along the way there will also be discussion of software engineering tools such as debuggers, unit testing, Makefiles, and the use of version control systems. After all, your time is more valuable than computer time, and a program that runs fast is totally useless if it produces the wrong results. High performance programming is also an important aspect of high performance scientific computing, and so another main theme of the course is the use of basic tools and techniques to improve your efficiency as a computational scientist.

Prerequisites

  • CSE 142 or AMath 301
  • Linear Algebra

It is recommended, but not necessary, that the student have programming experience beyond that taught in AMath 301. The course will be taught in Python and C. Experience in these languages help. Although we will spend some time becoming acquainted with these languages we will quickly move on to solving computational science problems with them. At the very least, the student should have a firm grasp of basic programmatical constructs. (conditional statements, loops, array manipulation)

About

Spring 2016 Course Syllabus and Information

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages