resources

ASTR 5210 - Computational Methods in Astrophysics


Index to lecture notes

ASTR 5210 notes will appear here as the course is being taught.


Lecture 1(ppt): Basics of computer design: Von Neumann architecture and its components. Memory organization. Instruction execution cycle.

Lecture 2(ppt): Binary representations. Two's complement, Excess-N. Fixed and floating point arithmetic systems. IEE 754.

Lecture 3(ppt): More on IEEE 754. Exceptions. Errors in computational science in general. Rounding modes. Mathematical consequences including loss of associativity and distributivity.

Lecture 4(ppt): Flynn's Taxonomy. CPU design and how it's been improved. Instruction set architectures and how they developed. Future of CPU design.

Lecture 5(ppt): Programming paradigms. Imperative vs declarative. Subdivisions, including procedural, object-oriented, functional, logic. Picking the best tool for the job.

Lecture 6(ppt): Intro to parallel computing. Speed-up, efficiency. Parallel languages and terminology.

Lecture 7(ppt): Shared memory parallel computing I. Issues: data dependencies and race conditions. Introduction to OpenMP.

Lecture 8(ppt): More on OpenMP. Load balancing and approaches needed to scale to large numbers of processors.

Lecture 9(ppt): Message passing part 1. Evolution issues, networking and interconnects. Basics of MPI.

Lecture 10(ppt): More on MPI. Derived data-types, domain decomposition. Cartesian shifts and communication overheads.

Lecture 11(ppt): More on MPI. One-sided operations. Advantages over regular "handshaking".

Lecture 12(ppt): More on MPI. System-level optim ization. Mixed-mode programming: OpenMP+MPI

Lecture 13(pdf): Intro to R. History (it isn't new!) and ecosystem. Getting started with the console, and IDEs.

Lecture 14 not online

Lecture 15(pdf): More on R: Data frames, I/O, loops, graphics, models.

Lecture 16(pdf): More on R: Functions, matrices, user input & text processing, graphics II.

Lecture 17(pdf): HPC libraries. Evolution from 70s to today, benefits, drawbacks.

Lecture 18(pdf): (Not given, included for reference only) Parallel HPC libraries including scaLAPACK and PETSc. Discussion of the challenges in creating parallel libraries.

Lecture 19(pdf): Introduction to machine & statistical learning. Inference vs prediction, training and test. Assessing accuracy, bias and variance trade off. K nearest neighbour.

Lecture 20(pdf): Intro to support vector machines. Hard linear, soft-margin and non-linear approaches.

Lecture 21(pdf): Intro to artificial neural networks. McCulloch-Pitts, perceptron. Training via steepest descent. Back propagation for multilayer networks.

Lecture 22(pdf): MapReduce and Hadoop. Basics of MapReduce, mapper.py and reducer.py for word counting problem. HDFS design and fault tolerance approaches. Going to the cloud.

back