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

Slides:



Advertisements
Similar presentations
Distributed Systems CS
Advertisements

Integrating Parallel Computing into the Undergraduate Curriculum: Efforts at Texas State University Martin Burtscher Wuxu Peng Apan Qasem Hongchi Shi Dan.
If Parallelism Is The New Normal, How Do We Prepare Our Students (And Ourselves)? Joel Adams Department of Computer Science Calvin College.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Scalable Data Clustering with GPUs Andrew D. Pangborn Thesis Defense Rochester Institute of Technology Computer Engineering Department Friday, May 14 th.
Taxanomy of parallel machines. Taxonomy of parallel machines Memory – Shared mem. – Distributed mem. Control – SIMD – MIMD.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Introductory Courses in High Performance Computing at Illinois David Padua.
Hong Lin Computer and Mathematical Sciences University of Houston – Downtown Teaching Parallel and Distributed Computing Using a Cluster Computing Portal.
Parallel and Distributed Computing Early ( and Often) Steven Bogaerts (speaker), Kyle Burke, Brian Shelburne Department of Mathematics & Computer Science.
Multiprocessors CSE 4711 Multiprocessors - Flynn’s Taxonomy (1966) Single Instruction stream, Single Data stream (SISD) –Conventional uniprocessor –Although.
Review for Test 2 i206 Fall 2010 John Chuang. 2 Topics  Operating System and Memory Hierarchy  Algorithm analysis and Big-O Notation  Data structures.
Multiprocessors CSE 471 Aut 011 Multiprocessors - Flynn’s Taxonomy (1966) Single Instruction stream, Single Data stream (SISD) –Conventional uniprocessor.
Cloud Computing Lecture #1 Parallel and Distributed Computing Jimmy Lin The iSchool University of Maryland Monday, January 28, 2008 This work is licensed.
CS Distributed Computing Systems Chin-Chih Chang, An Introduction to Threads.
1 Computer Science, University of Warwick Architecture Classifications A taxonomy of parallel architectures: in 1972, Flynn categorised HPC architectures.
Parallel Computer Architecture: Essentials for Both Computer Scientists and Engineers Edward F. Gehringer †* Yan.
Early Adopter: ASU - Intel Collaboration in Parallel and Distributed Computing Yinong Chen, Eric Kostelich, Yann-Hang Lee, Alex Mahalov, Gil Speyer, and.
CS 470/570:Introduction to Parallel and Distributed Computing.
Introduction to Parallel Processing 3.1 Basic concepts 3.2 Types and levels of parallelism 3.3 Classification of parallel architecture 3.4 Basic parallel.
Early Adopter Introduction to Parallel Computing: Research Intensive University: 4 th Year Elective Bo Hong Electrical and Computer Engineering Georgia.
Computer System Architectures Computer System Software
Adding PDC within a Six-Course Subset of the CS Major Apan Qasem Texas State University.
Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst.
Scalable Data Clustering with GPUs Andrew D. Pangborn Thesis Defense Rochester Institute of Technology Computer Engineering Department Friday, May 14 th.
18-447: Computer Architecture Lecture 30B: Multiprocessors Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 4/22/2013.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
Structure of Study Programmes Bachelor of Computer Science Bachelor of Information Technology Master of Computer Science Master of Information Technology.
{ Concordia University Texas Philip Schielke.  Small Liberal Arts college in NW Austin  Founded in 1926  Part of Concordia University System of the.
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
Chapter 2 Parallel Architecture. Moore’s Law The number of transistors on a chip doubles every years. – Has been valid for over 40 years – Can’t.
Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE / /
Early Adopter: Integrating Concepts from Parallel and Distributed Computing into the Undergraduate Curriculum Eileen Kraemer Computer Science Department.
Course Wrap-Up Miodrag Bolic CEG4136. What was covered Interconnection network topologies and performance Shared-memory architectures Message passing.
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Motions for Permanent Undergraduate Course Numbers Brian L. Evans On Behalf of the ECE Curriculum Committee September 21, 2015.
Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology.
Widespread Integration of Parallelism Steven Bogaerts.
Definitions Speed-up Efficiency Cost Diameter Dilation Deadlock Embedding Scalability Big Oh notation Latency Hiding Termination problem Bernstein’s conditions.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
CSC 7600 Lecture 28 : Final Exam Review Spring 2010 HIGH PERFORMANCE COMPUTING: MODELS, METHODS, & MEANS FINAL EXAM REVIEW Daniel Kogler, Chirag Dekate.
Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan.
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
Fall-11: Early Adoption of NSF/TCPP PDC Curriculum at Texas Tech University and Beyond Yong Chen Yu Zhuang Noe Lopez-Benitez May 10 th, 2013.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
Incorporating Parallel & Distributed Computing Across a Liberal Arts Computer Science Curriculum Tia Newhall, Andrew Danner, Kevin Webb Swarthmore College.
Contemporary Languages in Parallel Computing Raymond Hummel.
CS533 Concepts of Operating Systems Jonathan Walpole.
Computer Science and Engineering Copyright by Hesham El-Rewini Advanced Computer Architecture CSE 8383 May 2, 2006 Session 29.
Lecture 27 Multiprocessor Scheduling. Last lecture: VMM Two old problems: CPU virtualization and memory virtualization I/O virtualization Today Issues.
Parallel Computing Presented by Justin Reschke
LECTURE #1 INTRODUCTON TO PARALLEL COMPUTING. 1.What is parallel computing? 2.Why we need parallel computing? 3.Why parallel computing is more difficult?
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
Intro to Parallel and Distributed Processing Some material adapted from slides by Christophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet, Google.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
Lecture 5 Approaches to Concurrency: The Multiprocessor
Accelerators to Applications
Computer Science Courses
Inculcating “Parallel Programming” in UG curriculum
Teaching Parallel Computing with OpenMP on the Raspberry Pi
Multi-Processing in High Performance Computer Architecture:
Symmetric Multiprocessing (SMP)
Multiprocessors - Flynn’s taxonomy (1966)
COMS Prelim 1 Review Session
EE 4xx: Computer Architecture and Performance Programming
Introduction, background, jargon
Computer Science Courses in the Major
Presentation transcript:

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

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) o 7.5 FTE faculty o ~100 students –Engineering (BSE) 2EduPar-11

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

CS 112: Intro to Data Structures 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 4EduPar-11

CS 212: D. Structures & Algorithms Year 2, semester 1, core, 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) 5EduPar-11

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

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

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

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

CS 374: High Perf. Computing 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: o Speedup, Efficiency, Amdahl’s L., Gustafson’s L. –Hands on: MPI, OpenMP, MapReduce, OpenCL 10EduPar-11

Summary 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. 11EduPar-11