This course aims to provide a systems perspective towards achieving the maximum possible performance out of a particular computing system for a particular problem.

This course is an introduction to parallel computing and aims at teaching basic models of parallel programming including the principles of parallel algorithm design, modern processors and parallel computer architectures, programming models for shared and distributed-memory systems, optimization and performance analysis, OpenMP, message passing programming models along with some important scientific and engineering algorithms/parallel patterns.

Major part of the course includes lectures and Lab Component for actual implementation after learning the basics of Parallel programming and HPC.

Course format

3 hours lecture per week. + 3 hours lab per week.

Course Placement

HPC is a core course offered to third year students of B.Tech Hons. ICT with Minor in Computational Science program. 

References:

Let’s HPC: A web-based platform to aid parallel, distributed and high performance computing education (https://doi.org/10.1016/j.jpdc.2018.03.001)

  1.       An Introduction to Parallel Programming; Elsevier; by Peter S. Pacheco.
  2.       Scientific Parallel Computing; Princeton University Press ; by Babak Bagheri Terry Clark L Ridgway Scott Bagheri Clark Scott
  3.       PARALLEL PROGRAMMING; Barry Wilkinson, Pearson Education.
  4.       Introduction to High Performance Computing for Scientists and Engineers; G. Hager & G. Wellein. CRC Press.
  5.       Algorithms Sequential & Parallel: A Unified Approach,  by Millers Russ; Cengage, ISBN 9788131525050
  6.        Parallel Programming in C with MPI and OpenMP; by Michael J. Quinn ; McGraw-Hill Higher Education
  7.       Parallel Computing Theory and Practice. By Michael J. Quinn; McGraw Hill Education (India).

Course Placement

Modeling and Simulation is a core course offered to third year students of B.Tech Hons. ICT (Minor in Computational Science) program. It may be the foundation for domain based specialization electives such as Computational Finance, Computational and systems Biology and Computational Physics, Computational Social Science etc.


Course format

  • 3 hours of lecture per week.

  • 3 hours lab per week.


Prerequisites

Introductory Calculus, Probability and Statistics, Introductory Computational Physics and Numerical and computational methods. Some experience with scientific computing and programming in Python would be beneficial.


Course Content

This course introduces students to fundamentals of creating mathematical models of physical systems and implementation on computers to analyze the system both to gain insight and make predictions. The different mathematical approaches to modelling that are covered in the course can be characterized into differential and difference equation based models, probability based models which includes stochastic differential equations, cellular automata and event based approaches, and matrix based models. The course is interdisciplinary in nature and looks at many systems from physics, biology, finance, engineering etc. from a modeling perspective. Each topic is followed by many examples from different disciplines. The students test and create models of these systems in the lab and report on it following the complete modelling approach.


Approach to be followed

system → Analyze the problem (determine problem's objective)→Formulate model (Gather data, make assumptions, determine equations/functions) → Solve model (Computer implementation) →Verify and interpret solutions → make predictions.

Text Books

  • Angela B. Shiflet & George W. Shiflet. Introduction to Computational Science: Modeling and Simulation for the Sciences. Princeton University Press, 2006.

  • Sheldon M. Ross, Simulation, Academic Press, 2006.

  • Taylor & Karlin , An Introduction to Stochastic Modeling, Academic Press, 1998.


Assessment method/Grading

Written exam: Two mid-semester examinations and a final exam: 70% (20+20+30)

Lab207: Lab Assignment, Viva, report submission. The final lab will be on extensive simulation and will be treated as a project. Weightage of lab component 30%. Any instance of copying or plagiarism will result in 0 for this component.

Grading: Grading will be relative. Any student scoring less than 35% will receive a F grade.
Attendance: 80% attendance in both theory and lab is mandatory.


Course Outcome

After successful completion of the course the students would be able to create a relevant model for a multitude of problems from science and engineering, by extracting the necessary and relevent information regarding the problem. They would also be able to define the different modeling terms by analyzing the system or the data that is present. They would be able to implement the model on the computer and from the results check for the validity of the model and correcness of the assumptions present in the model. The should be able to analyze the outcomes (mostly through visualizations) and make predictions. They would also be able to understand the limitations of their model and nuances in computer modeling of sytems.








Course Content/Lecture schedule*


SI. No.

Description

1

Overview of Computational Science


1.1

The Modeling Process.


1.2

Model Classification


1.3

Steps in the modeling Process.

2

System Dynamics Model (Compartment Models)


2.1

Unconstrained growth models.


2.2

Constrained Growth.


2.3

Applications: Radioactive decay, Drug dosage, population dynamics, growth of technologies, SI models for epidemic spread etc.


2.4

System of Equations:


2.5

Models from Epidemiology: epidemic spread models (SIR, SEIR, SEIZ etc.), predator-prey models, Modeling spread of infectious diseas such as SARS, Malaria


2.7

Models from Social Science: Rumor spread, Models for Innovation Diffusion etc.

3

Stochastic models (Monte Carlo simulations)


3.1

Review of basic probability


3.2

Generating random numbers from different distributions on computer.


3.3

Brownian motion and random walk in 1D, discrete and continous time stochastic differential equation with applications.


3.4

Symmetric and asymmetric random walk, markovian and non markovian random walk


3.5

Markov Chains, Continuous Time Markov Chains, Birth and death processes, limiting time behavior.

4

Agent based Simulation (ABM)


4.1

Cellular Automata simulation of random walk


4.2

Ising Model for ferromagnetic Systems with applications to social science, metropolis algorithm


4.3

Applications: Modeling opinion formation on 2D lattice, segregation models, Rumor spread models etc.


* The number of topics covered will depend on the overall enthusiasm and commitment of the class.