Go to content ALT+c

Scientific Computing for Physicists  (Winter 2016) (Old site; new site is at https://scinet.courses)
Registration is closed

Wednesday May 15, 2024 - 03:11
  • Export Content

1 Syllabus

Description

Scientific computing is now an integral part of the scientific endeavour. It is an interdisciplinary field that combines computer science, software development, physical sciences and numerical mathematics. Yet, many computational projects start off with knowledge of the science you want to do, and with a bit of programming experience, after which follows an arduous journey to get to a (maintainable) piece of code which you trust to compute the right thing.

This course is aimed at reducing your struggle, and make you a more efficient computational scientist. Topics include well-established best practices for developing software as it applies to scientific computations, common numerical techniques and packages (so you don't reinvent the wheel), and aspects of high performance computing.

While the course title is 'Scientific Computing for Physicists', its content is equally applicable to other physical sciences (astrophysics, chemistry, ...), and much of the software development and high performance computing material will be of interests to students in other research areas where they have to write or maintain scientific code.

Three Parts

The course consists of three parts.

  • Part 1: Scientific Software Development & Design
  • Part 2: Numerical Tools for Physical Scientists
  • Part 3: High Performance Scientific Computing

Each part consists of eight lectures of one hour.

Topics for part 1

  • C++
  • version control
  • make
  • modular programming
  • testing
  • debugging
  • profiling

Topics for part 2

  • Modelling
  • Floating point computations
  • Random Numbers and Monte Carlo
  • ODE and Molecular Dynamics
  • Linear algebra
  • Fast Fourier Transforms

Topics for part 3

  • Parallel programming concepts
  • Shared memory parallel programming with openmp
  • Distributed memory parallel programming with mpi
  • Hybrid programming

Prerequisites

Students should have some programming experience (e.g. in C, C++, Fortran, Python, or similar). While we will introduce the C++ language, in one language or another, students should already know things like: how to use variables, how to write a function, how to print something to screen, how to define an array, fill it, and add all numbers in that array.

Students with limited programming experience may consider taking Introduction to Research Computing with Python. They should also expect to spend more time for the homework.

To follow along with the examples, we recommend that students bring a laptop to bring to the lectures, with a unix-like environment with the GNU compiler suite (for windows users, MobaXterm or alternatively Cygwin are a good choice). For Mac users, we advise to install one of the GNU compiler suites available from hpc.sourceforge.net.

Web site

The website https://support.scinet.utoronto.ca/education/go.php/218/index.php will be maintained during the course. It's where you enroll if your not taking the course as a physics grad course, where you find the lecture slides, where you hand in your assignments, and get feedback on those from the instructors.

Location and Times

McLennan Physical Laboratories - MP118 & MP134

Tuesdays 11:00 am - 12:00 noon
Thursdays 11:00 am - 12:00 noon

The location may change if the demand exceeds the room capacity.

Lecture dates:

The first lecture is on January 12th, 2016, the last is on April 7th, 2016. There will be no lectures during Reading Week (February 15-19).

List of lecture dates:

January 12, 14, 19, 21, 26, 28, 2016
February 2, 4, 9, 11, 23, 25, 2016
March 1, 3, 8, 10, 15, 17, 22, 24, 29, 31, 2016
April 5, 7, 2016

Office hours

For the duration of the course, office hours will be on Wednesday from 2:00 pm to 3:00 pm at the SciNet offices.
SciNet HeadQuarters
Second floor of:
256 McCaul Street, Toronto, ON M5T 1W5

Instructors

The lecturers for these courses will be Computational Science Specialists at the SciNet High Performance Computing Consortium.

Assignments and Grading

Each week, students will be given a programming assignment, with a due date one week after. These assignments are designed to help absorb the course material. .

The average of the twelve assignments will also make up your grade. To ensure a timely reporting of student grades, we will adhere to the following policy:


Homework may be submitted up to one week after the due date, at a penalty of 0.5 point per day, out of the 10 points for each homework. Deviations of this rule will only be considered, on a case-by-case basis, in exceptional circumstances.

All sets of homework need to be handed in for a passing grade, which is based on the average of the twelve sets. If, due to exceptional circumstances, an assignment was missed, a make-up assignment can be given at the end of the module. Rather than focusing on the topic of a specific week, the make-up assignment may involve any of the material of the course.

Course Credit

Note that while this course is now in its fourth rotation, this year, it is officially a physics graduate course (before it had the status of three mini or modular courses). This should make it easier for graduate students outside of Physics to take the course, if they are allowed to take physics course. However, they should first confirm this with their graduate coordinators.


For participants that cannot take this course for credit (e.g. other SciNet users), each of the parts can be taken as a 'SciNet course', which count towards the SciNet certificates.


In particular, participation in parts 1 and 2 counts for 12 credit-hours (each) towards the SciNet Scientific Computing Certificate, while participation in part 3 counts for 12 credits towards the SciNet HPC Certificate, and 12 credit-hours towards the SciNet Scientific Computing Certificate.


More information on the SciNet's Certification Program, can be found here.

Last Modified: Wednesday Jan 27, 2016 - 11:43. Revision: 9. Release Date: Friday Aug 14, 2015 - 16:00.


Content Navigation


Forum Posts


Course Calendar


Related



Questions? Contact Support.
Web site engine's code is copyright © ATutor®.
Modifications and code of added modules are copyright of SciNet.