Date

Topic

Materials

08/27/2013

Computational Science
Linux

Intro to Computational Science slides
Intro to Linux slides Exercises matmult.c
Textbook Preface and Introduction

08/29/2013 
Linux Details
Shell Scripting

Linux Details slides
Shell Scripting slides Shell Scripting practice
Textbook Chapter 18

09/03/2013 
Fortran Intro 
Fortran Background
Examples: factorial.f90 sieve.f90

09/052013 
Fortran90 Details
Make

Fortran90 Tutorial at MTU
Fortran90 Tutorial at Rice
Make at Software Carpentry
Textbook Chapter 20
Makefile for a simple Fortran project

09/10/2013 
Introduction to C 
Practical Programming in C at MIT
Introduction to C slides by Fred Kuhns
C Exercises

09/12/2013 
Introduction to C++ 
C++ Background slides
C++ Tutorial at cpluscplus.com
Introduction to C++ at MIT
ObjectOriented Programming videos at Software Carpentry

09/17/2013
(no formal class meeting;
work on your own)

Introduction to Python 
Watch Python videos at Software Carpentry
Do the exercises at http://www.codeacademy.com/learn (Click on Python)

9/19/2013 
Source Code Control 
Textbook Chapter 21
Watch Version Control videos at Software Carpentry
Source Code Control with Subversion by Umayanganie Munipala

09/24/2013 
Von Nuemann architecture, modern floating point units, pipelining, ILP 
Textbook Chapter 1 sections 1.11.2
CPU Design and Its Effects on Performance by Dr. Arunagiri

09/26/2013 
Multicore architectures
locality and data reuse

Textbook Chapter 1 sections 1.4 1.5
Multicore slides by Dr. Arunagiri

10/01/2013 
Power consumption of microprocessors and roofline model

Textbook Chapter 1 sections 1.61.7
Roofline Model by Dr. Arunagiri
The presentations referenced in the lectures are Power Consumption of Microprocessors and Roofline Model.

10/03/2013 
Memory hierarchies

Textbook Chapter 1 section 1.3
Slides

10/08/2013 
Introduction to Parallel Computing 
Textbook Chapter 2 sections 2.12.3
Slides

10/10/2013

More on memory hierarchy 
Slides 
10/15/2013 
Shared memory programming with OpenMP 
Textbook Chapter 2 section 2.5.2
Slides
Cyberinfrastructure Tutor
Parallel Computing Explained
Introduction to OpenMP

10/17/2013 
Distributed memory programming with MPI 
omp_pi_wrong.f
Cyberinfrastructure Tutor
Introduction to MPI
MPI Example 1 example1.c

10/22/2013 
More MPI
Hybrid MPI+OpenMP Programming

Intro to MPI at Dartmouth
Hybrid and PGAS
Example code: hellohybrid.c
Example code: jacobi_mpiomp.f90
Input file: indata
Example code: mmmupc.c

10/24/2013 
Introduction to GPU Programmiing
Midterm Review

Introduction to GPU Programming slides
Introduction to OpenACC slides

10/29/2013 
Midterm Exam 

10/31/2013 
Amdahl's Law
Profiling
Using compiler optimization

Amdahl's Law slides
Gprof tutorial
jacobi.c
GCC Intro

11/05/2013 
Serial code optimization 
Slides
Matrix multiply slides
Vectorization slides
GCC Autovectorization webpage

11/07/2013 
Block matrix algorithms
PAPI

Automatic Blocking of Nested Loops by Schreiber and Dongarra
Intro to PAPI slides
PAPI website

11/12/2013 
Computer Arithmetic
Computational Linear Algebra

Computer arithmetic slides
Computational linear algebra slides
Dense linear algebra libraries

11/14/2013 
Sparse Linear Algebra
Iterative Methods

sparse slides
iterative method slides

11/19/2013 
No class  work on projects 

11/21/2013 
No class  work on projects 

11/26/2013 
More sparse linear algebra
PETSc

Direct and Iterative methods
Conjugate Gradients without the Agonizing Pain by Jonathan Skewchuk
PETSc tutorial
PETSc heat equation example

12/03/2013 
Heat Equation project 

12/05/2013 
Fast Fourier Transform
Review for Final

FFT slides
Final exam review guide

Comments (0)
You don't have permission to comment on this page.