Parallel programming techniques for shared-memory and message-passing systems; process synchronization, communication; example languages. Programming in C with MPI OpenMP.
CS 250/CS 280A1 (Computer Systems Foundations) or CS 270 (Computer Organization); CS 320 (Algorithms--Theory and Practice); CT 301 (C++ Fundamentals); Prerequisite course(s) must be completed with a grade of C or better.
Software/Hardware requirements: Reliable access to the Internet and email access to computer for lessons and programming assignments.
Textbooks and Materials
Sanjay Rajopadhye is Professor in the Computer Science Department. He also holds a joint appointment in the Electrical and Computer Engineering Department. He joined the faculty at CSU in 2001 and was previously a CNRS researcher at Irisa, Rennes, France, where he headed the COSI research group. Rajopadhye received the B. Tech (honors) degree in Electrical Engineering from the India Institute of Tech. , Kharagpur and a PhD in Computer Science from the University of Utah.
Rajopadhye’s interests cover parallel algorithms and architectures, embedded systems, functional programming, high performance computing on multi- and many-care architectures, automatic parallelization and optimization. He is one of the original developers of the polyhedral model, a formalism for reasoning about an important class of compute-and data-intensive programs. The model, originally developed in the context of automatic synthesis of systolic arrays from recurrence equations has found increasing application from compilation to multi- and many-core architectures.