CSC456-2306 High-Performance Scientific Computing
Spring 2026
Bulletin/discussion board for csc456-2306 (after first week)--
course outline --
MarkUs
(for MarkUs, login with UTorId)
[Announcements]
[Material covered[
[Lectures, Tutorials, Assignments (with pass)]
Announcements, Course information for current students:
-
The first meeting of the course is Thursday, January 8, 2026, 3-5 PM.
For the first week only, there will be no Monday meeting.
After that, we will use the Monday time mostly for regular lectures,
that is we will have 3 hours per week. Towards the last few weeks,
depending on how the course goes, we may skip some Mondays.
-
No classes
February 16-20, 2026 (Spring break / Reading week -- A&S calendar).
-
To access the assignment, or the notes, you will need to type
your CDF (teaching labs) username (same as UTorId) as loginname,
and last 5 digits of your student number as password.
This password (for accessing the website) cannot be reset,
and it is only for accessing the website.
If you registered for the course today, please wait a day,
to check access to the website.
Please note that to access the servers/computers,
the password is different.
There is an initial password set by the system (usually the student number),
and then you can set it to whatever you want.
-
Bulletin/discussion board for csc456-2306 Spring 2026 (after first week)
Need to register with your utoronto.ca e-mail address.
-
Important note on the use of bulletin boards:
No parts of or whole answers to the assignment/exam problems
should be posted to the boards (or anywhere else),
even after the assignment is due.
Questions and answers (even written by you) should never
be shared with anyone or anywhere.
Any violation of this rule will bring trouble to the poster.
Please use judgement before posting.
Any questions posted on the bulletin boards should be general enough
and should not reveal intermediate or final results (correct or wrong).
If unsure, ask by e-mail to instructor.
-
All assignments and exams are to be done individually by each student.
See the course outline
about academic integrity and additional information.
- Here is a latex example file,
with associated files
spyalt.eps, spyblock.eps,
trochoid1.m,
assign.bib, to compile correctly,
and output 456a1.pdf.
You can use it for assignments, but you may also use you own latex template.
Please always use font size 12 and linespread 1.1, as shown in the sample file.
Do NOT use dark background in any page or figure.
See the course outline for more details on presentation.
-
CDF/Teaching Labs:
Please see http://www.cdf.toronto.edu
or http://www.teach.cs.toronto.edu
(they are the same), especially the
Resources, Intro to new students tab, and the
Using Labs, Remote Access Server tab.
-
Running remotely, etc:
If you want to run matlab and other applications remotely
on teach.cs (CDF), and you are using Windows or Mac OS
on your computer/laptop, you will need the so-called
X forwarding on your computer/laptop.
X forwarding allows you to run any application, including matlab,
remotely on teach.cs (CDF) and the output/display/plots/etc
be shown on your computer/laptop.
See
https://www.teach.cs.toronto.edu/using_cdf/x2go.html
for a way to have X forwarding on your computer/laptop.
-
We will be using MPI (Message Passing Interface) for parallel programming.
We will need at least 32 independent processors (with individual memory).
CDF runs MPI and has many workstations/processors.
All registered students will get accounts on CDF.
Information on workstation names will be given later as the course proceeds.
-
Matlab:
The basic Matlab is free for students. (UT pays for it.)
See https://www.mathworks.com/academia/tah-portal/university-of-toronto-676468.html
However, you need to first register with matlab, as shown
in the above page.
(You do this only once.)
You can also consider free (perpetually) alternatives to Matlab,
such as Octave.
-
To use matlab on cdf, through the linux shell, on the workstations
in the teaching labs,
first you need to register with matlab as in
https://www.mathworks.com/academia/tah-portal/university-of-toronto-676468.html
(You do this only once.)
Then, on one of the workstations in the teaching labs, you type
/usr/local/bin/matlab -softwareopengl
or
/usr/local/bin/matlab -nodesktop -softwareopengl
The first time it is slow, as it loads lots of stuff,
but the second time and on, it should be faster.
-
To use matlab on cdf, through the linux shell, remotely,
you need to register and use it once on the workstations in the teaching labs,
then, you can use it remotely.
You need to login via ssh
(on an xterm or other terminal in unix, linux, mac, or cygwin,
and on putty in windows,
or through some free X forwarding application such as mobaxterm, or X2Go)
with a command such as
ssh -X user@cdf.toronto.edu
or
ssh -l user -X -f wolf.cdf.toronto.edu xterm
where ``user'' is your cdf username, then, once on cdf, run
/usr/local/bin/matlab -softwareopengl
or
/usr/local/bin/matlab -nodesktop -softwareopengl
Within matlab, you may want to go to a certain directory, say ~/matlab,
and for this you can use the unix shell command
cd ~/matlab
within matlab. You may also want to have a startup.m file
in that directory, to always run some standard commands
(e.g. format compact) every time you start matlab.
-
Material covered or to be covered in the course
(with textbook sections in parentheses) (later)
8-1-2026 (2 hrs)
1 Introduction
1.1 Motivation for high-performance and parallel computing
1.2 Parallel architectures
[roughly from Ortega 1.1, see also Foster 3.7.2, Zhu 1.2, 2.3-5]
* Vector versus parallel
* Parallel versus distributed
* SIMD versus MIMD
* Shared versus local memory
Def: contention and communication time
Def: communication diameter
Def: valence
* Interconnection networks
- Completely connected
- Bus network, ring network
- Mesh connection
+ 1-dim (linear array), ring
+ 2-dim, 2D torus
+ 3-dim, 3D torus
- k-ary tree
- Hypercube (d-dim cube)
- Butterfly (switching network), cube connected cycles network
- Shuffle-exchange
- Omega network
- Other: hybrid schemes, hierarchical schemes, clusters, etc
* Mappings between interconnection networks
- equivalence between a n x log n butterfly (for normal algorithms),
a n leaves binary tree (for normal algorithms),
a (log n)-dim cube and a n processor shuffle-exchange
[Ullman, pgs 219-221]
- simulation of a k-dim mesh by a d-dim hypercube
[Bertsekas, Tsitsiklis, pgs 52-54, Kumar 2.7]
1.3 Some concepts and definitions in parallel computing
[roughly from Ortega 1.2 (pgs 20-25), see also Zhu 1.3, Foster 3.3,
Kumar 3.1, 5.1-3]
* degree of parallelism of a parallel algorithm
* granularity of a parallel algorithm
* speedup and efficiency of a parallel algorithm on a parallel machine
* data ready time
* load balancing
1.4 Simple examples [roughly from Ortega 1.2 and 1.3]
* adding two vectors of size n
* summing up n numbers (directed sum-up to processor npout or global sum-up)
* broadcast a number
[see also Foster 2.3.2, 2.4.1, 2.4.2]
* inner product of two vectors
12-1-2026 (1 hrs)
* matrix-vector multiplication (by rows and by columns) [pg 36-38, Kumar Ex 2.5, Ex 3.1]
* all-to-all broadcast (total exchange) algorithm [Kumar 6.6]
* global sum-up of n vectors
[more to come]
Notes and handouts:
Note on use of notes:
Notes will be available when the course starts.
While it may be convenient to study for the course by reading the notes,
it should be made clear that the notes are not there to substitute
the textbook or any relevant book. Notes are always more condensed
and give less overall information than books.
Notes with math notation, etc, are difficult to read online.
It may be preferable for some of you to print out the 4-page style notes
on paper (preferably double-sided).
Access to the data below requires that
you type in your CDF (teaching labs) username
(same as UTorId)
and last 5 digits of your student number as password.
This password (for accessing the website) cannot be reset.
Lecture notes
Assignments
Other