CPSC 087. Parallel and Distributed Computing


This course covers a broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing. In lecture/discussion sections, students examine both classic results as well as recent research in the field. The lab portion of the course includes programming projects using different programming paradigms, and students will have the opportunity to examine one course topic in depth through an open-ended project of their own choosing. Course topics may include: multi-core, SMP, MPP, client-server, clusters, clouds, grids, peer-to-peer systems, GPU computing, scheduling, scalability, resource discovery and allocation, fault tolerance, security, parallel I/0, sockets, threads, message passing, MPI, RPC, distributed shared memory, data parallel languages, MapReduce, parallel debugging, and parallel and distributed applications.
Group 2 course.
Prerequisite: CPSC 031 and CPSC 035, and at least one course numbered above CPSC35 (or premission of the instructor) are required. 
Natural science and engineering.
Writing course.
Lab work required.
1 credit.
Fall 2023. Newhall.
Catalog chapter: Computer Science  
Department website: https://www.swarthmore.edu/computer-science


Access the class schedule to search for sections.




Print-Friendly Page (opens a new window)