1 / 11

Integrating Parallel Topics into Undergraduate CS Curriculum at Calvin College

This paper explores the integration of parallel computing topics throughout the undergraduate computer science curriculum at Calvin College, providing students with exposure to parallel thinking early on and gradually increasing the complexity of parallel concepts. The approach includes incorporating parallel topics in core courses such as intro to computing, data structures, programming languages, operating systems, and networking, as well as elective courses like high-performance computing.

darlinea
Télécharger la présentation

Integrating Parallel Topics into Undergraduate CS Curriculum at Calvin College

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Early Adopter:Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science Calvin College EduPar-11

  2. Calvin College • Is a 4-year comprehensive liberal arts college located in Grand Rapids, MI • Has about 4,000 students • Offers ABET-accredited programs in: • Computer Science (BCS) • 7.5 FTE faculty • ~100 students • Engineering (BSE) EduPar-11

  3. CS Major Curriculum Year Fall Semester Spring Semester 1 Intro to Computing Calculus I Data Structures Calculus II Data Structures Calculus II 2 Algorithms & DS Intro. Comp. Arch. Discrete Math I Algorithms & DS Intro. Comp. Arch. Discrete Math I Programming Lang. Discrete Math II Programming Lang. Discrete Math II 3 Software Engr Adv. Elective OS & Networking Statistics OS & Networking Statistics 4 Adv. Elective Sr. Practicum I Adv. Elective: HPC Sr. Practicum I Adv. Elective Sr. Practicum II Perspectives on Comp. EduPar-11

  4. CS 112: Intro to Data Structures EduPar-11 • Year 1, semester 2, core, 40 students • Topics: • Single threading vs. multithreading • Parallelizing: linear search, mergesort • Race conditions: non-thread-safe structures • Speedup, asymptotic performance analysis • Hands on: Embarrassingly parallel matrix operations (addition, transpose) via OpenMP • Reduced: Coverage of graphs

  5. CS 212: D. Structures & Algorithms EduPar-11 • Year 2, semester 1, core, 12-15 students • Topics: • Parallel vs distributed algorithms • Parallel design (data vs task decomposition) • Parallel algorithms (parallel sorting, max) • Distributed graph algorithms • Asymptotic performance analysis • Reduced: Coverage / review of elementary data structures (stacks, queues, sets)

  6. Engr 220: Intro. Architecture EduPar-11 • Year 2, semester 1, core, 12-15 students • Topics: • Flynn taxonomy (SISD, SIMD, MIMD) • Multiprocessors (shared vs distributed mem.) • Multicore, manycore processor architectures • Memory hierarchy • Multicore memory bandwidth issues • Multicore caching, coherency issues • Reduced: Assembly language coverage

  7. CS 214: Programming Languages EduPar-11 • Year 2, semester 2, core, 20 students • Topics: • Concurrency and synchronization: using • Processes / threads / tasks • Semaphores, locks, condition variables, monitors • Race conditions • Communication constructs: • Message passing vs. shared memory • Hands on: Threads in C++, Ruby; Ada tasks • Reduced: coverage of markup languages

  8. CS 232: OS & Networking EduPar-11 • Year 3, semester 2, core, 15 students • Topics: • Concurrency & synchronization: implementing • Processes, threads, … • Semaphores, locks, condition variables, monitors • Race conditions, deadlocks • Traditional vs. multicore scheduling • TCP/IP and Ethernet Networking: • Sockets, message passing, RPC, … • Classic distributed systems problems

  9. CS 232: OS & Networking (ii) EduPar-11 • Hands on: • Multiprocessing (fork), synchronization • Multithreading (POSIX), synchronization • Kernel programming • Socket programming (client-server systems) • Reduced: coverage of • Hardware review (from 1 week to 1 lecture) • Batch systems • I/O devices

  10. CS 374: High Perf. Computing EduPar-11 • Year 3 | 4, semester 1, elective, 8 students • Topics: • Multiprocessor architectures • Problem decomposition: data vs task • Parallel patterns & models • Problem types: Monte Carlo, N-body, etc. • Scalability: • Speedup, Efficiency, Amdahl’s L., Gustafson’s L. • Hands on: MPI, OpenMP, MapReduce, OpenCL

  11. Summary EduPar-11 • By “sprinkling” parallel topics throughout the core courses, students: • Are exposed to parallel thinking early (year 1) • Are exposed to parallel thinking frequently • Are gradually exposed to increasingly difficult aspects of parallelism • This provides a framework for gradually increasing the parallel content as faculty become comfortable teaching it.

More Related