.. Math417 master file, created by
   sphinx-quickstart on Wed Aug  9 12:41:44 2017.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

High Performance Scientific Computing
==========================================================================

General information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


- **Instructor:** `Mohammad Motamed`__

- **Disclaimer:** These notes on high performance scientific
  computing are being developed for the course Math/CS 471 at
  the University of New Mexico, Fall 2020. As a work
  in progress, these pages will be modified and supplemented over
  time. It is not intended to be a complete textbook on the subject,
  by any means. The goal is to get the student started with a few key
  concepts and then encourage further reading elsewhere. 
  
- **License:** These notes are being made freely available and are
  released under the `Creative Commons CC BY`__ license. Interested
  students and researchers are welcome to use the materils and quote from them as long as
  they give appropriate attribution. 

  
- **Description:** This is an introductory course in
  scientific computing, the third pillar of the scientific method. The
  course will attempt to expose you to a number of different concepts,
  ideas, and technologies, including introduction to hardware,
  software, and programming for large-scale scientific computing;
  overview of multicore, cluster, and supercomputer architectures;
  Fortran 90/95 programming language; Perl scripting language;
  parallel computing paradigms and languages; performance evaluation;
  stability of numerical methods; error analysis and convergence;
  ODE/PDE applications such as diffusion, heat transfer, and wave
  propagation; Monte Carlo simulations; and scientific software
  development.

 

- **Syllabus:** An inital version of the syllabus can be found
  `here`__. Check it regularly for possible updates.

  

- **Required background:**

  * `UNM Prerequisites`: Llinear algebra (Math 314 or 321), and ODEs
    (Math 316), and programming skills. 

  * `Required`: Experience writing and debugging computer programs is
    required. Students should also be comfortable with undergraduate
    mathematics, particularly calculus and linear algebra.
    

  * `Recommended`: Experience with mathematical/statistical computing,
    for example in Matlab or R, is preferred. Past exposure to
    numerical analysis and computation is a plus. Previous knowledge
    of Fortran or parallel computing languages is not assumed.

  
Course schedule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. toctree::
   :maxdepth: 1
   
   schedule
  
Course topics
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. toctree::
   :maxdepth: 1
   
   sc
   unix
   reproducibility
   vc
   bitbucket
   git
   perl
   perl_lab
   newton
   fortran
   makefiles
   fd
   ode
   parallel
   stampede2
   openmp
   pde
   mpi


   
Homework assignments
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. toctree::
   :maxdepth: 1

   hw1
   hw2
   hw3
   hw4
   hw5
   hw6
   hw7


   
__ http://math.unm.edu/~motamed/
__ https://creativecommons.org/licenses/by/4.0/
__ http://math.unm.edu/~motamed/Teaching/Fall20/HPSC/syllabus_v1.pdf