The course aims to introducing students to the basic concepts of parallel processing. Course contents: Parallel Computing Concepts. Basics of Parallel Machine Architectures (Shared-memory Multiprocessors, Distributed-memory Multicomputers), Interconnection Networks. Parallel Computation Models, Simulations among Models, Brent’s Scheduling Principle. Basic Parallel Algorithmic Techniques for Shared and Distributed Memory Machines. Design of Parallel Algorithms for Shared and Distributed Memory Machines. Introduction to Distributed Memory Parallel Programming using MPI.