Gujarat Technological University: Linear Algebra and Numerical Methods, Parallel Algorithms
Gujarat Technological University: Linear Algebra and Numerical Methods, Parallel Algorithms
Gujarat Technological University: Linear Algebra and Numerical Methods, Parallel Algorithms
Master of Engineering
Subject Code: 3730209
Semester III
SUBJECT NAME: High Performance Scientific Computing
Rationale: Computation and simulation are increasingly important in all aspects of science and engineering. At
the same time writing efficient computer programs to take full advantage of current computers is becoming
increasingly difficult. Even laptops now have 4 or more processors, but using them all to solve a single problem
faster often requires rethinking the algorithm to introduce parallelism, and then programming in a language that
can express this parallelism. Writing efficient programs also requires some knowledge of machine arithmetic,
computer architecture, and memory hierarchies. High performance programming is an important aspect of high
performance scientific computing, and so the main theme of the course is the use of basic tools and techniques to
improve your efficiency as a computational scientist.
Content:
Sr. Content Total %
No. Hrs Weightage
1 Introduction: Single Processor Computing, Parallel Computing, Parallel System 3 6
Organization
2 Numerical Linear Algebra, High Performance Linear Algebra, Numerical 5 10
Treatment of Differential Equations
3 Applications: Molecular Dynamics, Sorting, Graph Analytics, N-body 7 15
Problems, Monte Carlo Methods, Computation Biology
4 Interactive Python using IPython, and the IPython Notebook, Python scripting 10 21
and its uses in scientific computing, Subtleties of computer arithmetic that can
affect program correctness
5 Fortran 90, a compiled language that is widely used in scientific computing, 10 21
Makefiles for building software and checking dependencies, Analyse the cost of
data communication. Registers, cache, main memory, and how this memory
hierarchy affects code performance.
6 OpenMP on top of Fortran for parallel programming of shared memory 13 27
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
Total 48 100%