New Course: Introduction to Collaborative Scientific Programming

Term: Spring 2010
Course Number: ENGR 2402
Time: Tuesday & Thursday 12:30 – 1:50 PM
Room: 229 Benedum Hall
Credits: 3.0
Instructors: R. Christie (haggis AT, A. Gothandaraman (akila AT, K. Wong (kimwong AT & L. Yilmaz (leventyilmaz AT

Description: This class aims to provide students with the skills necessary to utilize high performance computing (HPC) in their research. A rigorous treatment of C/C++ language with relevance to scientific programming is complemented by practical introduction to using Linux command-line and development tools. As the next generation scientific software become more and more complex, being able to build upon existing code-base and the ability to work as a team for concurrent code development is a must. The course work and assignments are designed for a unique, practical experience in these aspects by requiring the students to utilize high-performance software libraries and collaborative code development tools. The class lectures are held in a computer laboratory and include interactive demonstrations. Students will be provided accounts on a supercomputing cluster. Simulation techniques from molecular dynamics (MD), Monte Carlo (MC), electronic structure methods, and computational transport phenomena (via PDEs) are used to illustrate many of the computational issues encountered in the physical sciences and engineering. A practical introduction to parallel programming using OpenMP and MPI is given towards the end.

Prerequisites: Prior programming or permission of an instructor is required.