Lecture 0:
Introduction
Lecture 1:
Machines and Computation
Lecture 2:
Fortran Introduction for Matlab
Programmers.
Matlab/F90 Example files:
- timer used in F90 routines:
get_time.f90,
- dot-product example:
dot_prod.m,
dot_prod.f90,
- computing pi example:
pi_comp.m,
pi_comp.f90,
- matrix-vector product example (from Lab 3):
matvec.m,
matvec.f90,
- equilibrium chemical network example:
chemistry.m,
chem_solver.m,
chemistry.f90,
chem_solver.f90
Lecture 2.5:
"Best Practices" for Scientific Computing
Lecture 3:
Shared-Memory Parallel Programming with
OpenMP.
In-class demo results:
- omp schedule example:
omp_schedule_example.f90
- axpy example:
axpy.f90,
axpy_omp.f90,
get_time.f90,
Makefile (you may
need to change this for your computer).
- dot-prod example:
dot_prod.f90,
dot_prod_omp.f90,
dot_prod_omp2.f90,
get_time.f90,
Makefile (may
need to change).
- computing pi example:
pi_comp.f90,
pi_comp_omp.f90,
get_time.f90,
Makefile (may need
to change).
- matrix-vector product example:
matvec.f90,
matvec2.f90
(optimized),
get_time.f90,
Makefile (may
need to change).
- equilibrium chemistry example:
chemistry.f90,
chem_solver.f90,
chemistry_omp.f90,
get_time.f90,
Makefile
(may need to change).
- global minimization example:
glob_min.f90,
glob_min_omp.f90,
glob_min2.f90,
get_time.f90,
Makefile
(may need to change).
- omp overheads example:
omp_overheads.f90
Lecture 4:
Distributed-Memory Parallel Programming
with MPI
In-class demo results:
- simple MPI program:
simple.f90
- dot-prod example:
dot_prod.f90,
dot_prod_mpi.f90,
dot_prod_mpi2.f90,
get_time.f90,
Makefile (may
need to change).
- computing pi example:
pi_comp.f90,
pi_comp_mpi.f90,
get_time.f90,
Makefile (may need
to change).
- matrix-vector product example:
matvec.f90,
matvec_mpi.f90,
matvec_mpi2.f90,
matvec_mpi3.f90,
get_time.f90,
Makefile (may
need to change).
- equilibrium chemistry example:
chem_solver.f90,
chemistry.f90,
chemistry_mpi.f90
(static parallelism),
chemistry_mpi2.f90
(master/worker, 1 item/task),
chemistry_mpi3.f90
(master/worker, multiple items/task),
get_time.f90,
Makefile
(may need to change).
- 2D linear wave equation example:
advection.m,
input.txt,
advection.f90,
get_time.f90
input_serial.txt
plot_solution.m
advection_mpi.f90,
input_parallel.txt,
Makefile
(may need to change).
|