MyPage is a personalized page based on your interests.The page is customized to help you to find content that matters you the most.


I'm not curious

High Performance Scientific Computing

Course Summary

Programming-oriented course on effectively using modern computers to solve scientific computing problems arising in the physical/engineering sciences and other fields. Provides an introduction to efficient serial and parallel computing using Fortran 90, OpenMP, MPI, and Python, and software development tools such as version control, Makefiles, an


  • +

    Course Syllabus

    The use of a variety of languages and techniques will be integrated throughout the course as much as possible, rather than taught linearly. The topics below will be covered at an introductory level, with the goal of learning enough to feel comfortable starting to use them in your everyday work. Once you've reached that level, abundant resources are available on the web to learn the more advanced features that are most relevant for you.

    • Working at the command line in Unix-like shells (e.g. Linux or a Mac OSX terminal).
    • Version control systems, particularly git, and the use of Github and Bitbucket repositories.
    • Work habits for documentation of your code and reproducibility of your results.
    • Interactive Python using IPython, and the IPython Notebook.
    • Python scripting and its uses in scientific computing.
    • Subtleties of computer arithmetic that can affect program correctness.
    • How numbers are stored: binary vs. ASCII representations, efficient I/O.
    • Fortran 90, a compiled language that is widely used in scientific computing.
    • Makefiles for building software and checking dependencies.
    • The high cost of data communication.  Registers, cache, main memory, and how this memory hierarchy affects code performance. 
    • OpenMP on top of Fortran for parallel programming of shared memory computers, such as a multicore laptop.
    •  MPI on top of Fortran for distributed memory parallel programming, such as on a cluster.
    • Parallel computing in IPython.
    • Debuggers, unit tests, regression tests, verification and validation of computer codes.
    • Graphics and visualization of computational results using Python.

  • +

    Recommended Background

    Experience writing and debugging computer programs is required :
    Preferably experience with scientific, mathematical, or statistical computing, for example in Matlab or R. (Previous knowledge of Fortran, Python, or parallel computing languages is not assumed.) Students should also be comfortable with undergraduate mathematics, particularly calculus and linear algebra, which is pervasive in scientific computing applications. Many of the examples used in lectures and assignments will require this background. Past exposure to numerical analysis is a plus. All of the software used in this course is open source and freely available. A Virtual Machine will be provided that can be used to create a Linux desktop environment (with all of the required software pre-installed) that can be run on any operating system using the free VirtualBox software. An Amazon Web Services AMI will also be provided to allow doing the course work in the cloud.

  • +

    Course Format

    The class will consist of lecture videos with integrated quiz questions. There will also be programming assignments that are not part of the lectures and optional reading material.

  • +

    Suggested Reading

    Course notes will be provided to compliment lectures. The notes and slides from lectures will also contain many references to other free resources on the web, along with some recommended books on the topics covered.


Course Fee:
Free

Course Type:

Self-Study

Course Status:

Active

Workload:

1 - 4 hours / week

Attended this course?

Back to Top

Awards & Accolades for MyTechLogy
Winner of
REDHERRING
Top 100 Asia
Finalist at SiTF Awards 2014 under the category Best Social & Community Product
Finalist at HR Vendor of the Year 2015 Awards under the category Best Learning Management System
Finalist at HR Vendor of the Year 2015 Awards under the category Best Talent Management Software
Hidden Image Url

Back to Top