Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.

Slides:



Advertisements
Similar presentations
Toward Better Research: Cross-Threads Nick Feamster, Alex Gray, Charles Isbell College of Computing Georgia Tech.
Advertisements

E-Science Data Information and Knowledge Transformation Thoughts on Education and Training for E-Science Based on edikt project experience Dr. Denise Ecklund.
Integrating Parallel Computing into the Undergraduate Curriculum: Efforts at Texas State University Martin Burtscher Wuxu Peng Apan Qasem Hongchi Shi Dan.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Hong Lin Computer and Mathematical Sciences University of Houston – Downtown Teaching Parallel and Distributed Computing Using a Cluster Computing Portal.
1 i206: Distributed Computing Applications & Infrastructure 2012
UGCC Report, 11/29/05 Committee: Bettati, Gutierrez, Keyser, Jiheon Kwan (undergrad rep), Leyk, Loguinov, Petersen, Welch (chair) Meetings: Fridays 2-3.
Course Review i206 Fall 2010 John Chuang. 2 Outline  Test 3 topics  Course review  Course evaluation.
CSCD 434 Spring 2011 Lecture 1 Course Overview. Contact Information Instructor Carol Taylor 315 CEB Phone: Office.
Early Adopter: ASU - Intel Collaboration in Parallel and Distributed Computing Yinong Chen, Eric Kostelich, Yann-Hang Lee, Alex Mahalov, Gil Speyer, and.
CSinParallel Modules and the Topics in the Curriculum 2013 Core Libby Shoop Math, Statistics, and Computer Science Macalester College.
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
Jawwad A Shamsi Nouman Durrani Nadeem Kafi Systems Research Laboratories, FAST National University of Computer and Emerging Sciences, Karachi Novelties.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Early Adopter Introduction to Parallel Computing: Research Intensive University: 4 th Year Elective Bo Hong Electrical and Computer Engineering Georgia.
1 Parallel of Hyderabad CS-726 Parallel Computing By Rajeev Wankar
Adding PDC within a Six-Course Subset of the CS Major Apan Qasem Texas State University.
Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)
NSF/TCPP Curriculum Planning workshop Behrooz Shirazi Washington State University February 2010.
Computer Science Graduate Studies in U of Memphis.
Experiences using SPARK in an Undergraduate CS Course Dr. Anthony S. Ruocco Roger Williams University Attendance made possible through.
CIS4930/CDA5125 Parallel and Distributed Systems Florida State University CIS4930/CDA5125: Parallel and Distributed Systems Instructor: Xin Yuan, 168 Love,
CSCD 434 Network Security Spring 2014 Lecture 1 Course Overview.
Hands-On Exploration of Parallelism for Absolute Beginners With Scratch Steven Bogaerts Department of Mathematics & Computer Science Wittenberg University.
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.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology.
Integrating Geological and Geophysical Data in an Introductory Physical Geology Class Andrew M. Goodliffe.
Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
{ Applying the NSF/TCPP Curriculum Recommendations to a Liberal Arts Curriculum Akshaye Dhawan, Ursinus College.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
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.
Lawrence Livermore National Laboratory S&T Principal Directorate - Computation Directorate Tools and Scalable Application Preparation Project Computation.
Princes Nora Bint Abdul Rahman University Dept. of Computer & Information Sciences CS 321 Computer Organization & Assembly Language Lecture 1 (Course Introduction)
Incorporating Parallel & Distributed Computing Across a Liberal Arts Computer Science Curriculum Tia Newhall, Andrew Danner, Kevin Webb Swarthmore College.
CSCE 315 Programming Studio Spring 2013 John Keyser.
CS533 Concepts of Operating Systems Jonathan Walpole.
Fall CSE330/CIS550: Introduction to Database Management Systems Prof. Susan Davidson Office: 278 Moore Office hours: TTh
CSci6702 Parallel Computing Andrew Rau-Chaplin
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Incorporating PDC Topics into University Level Digital Principles Class Abstract: Digital Computer Principles (CSC 115) is a university wide freshman level.
“A Learner-Centered Computational Experience in Nanotechnology for Undergraduate STEM Students” IEEE ISEC 2016 Friend Center at Princeton University March.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Geometry & Algebra 2. Currently Geometry:  Regular Geometry and Geometry Support Classes are offered. Algebra 2:  Core Algebra 2 and Regular Algebra.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
Accelerated B.S./M.S An approved Accelerated BS/MS program allows an undergraduate student to take up to 6 graduate level credits as an undergraduate.
Introduction to Operating Systems
CSC207 Fall 2016.
Parallel and Distributed Algorithms (CS 6/76501) Spring 2007
CS 21a: Intro to Computing I
CMPE419 Mobile Application Development
Inculcating “Parallel Programming” in UG curriculum
Lecture 1: Parallel Architecture Intro
Advanced Operating Systems – Fall 2009
The 25th annual IEEE International Conference on High Performance Computing, Data, and Analytics. Challenges of integrating parallel and distributed computing.
ECE 8823: GPU Architectures
Lecture on High Performance Processor Architecture (CS05162)
Chapter 4: Threads & Concurrency
Dept. of Computer & Information Sciences (Course Introduction)
CMPE419 Mobile Application Development
Presentation transcript:

Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-13) 20 May 2013, Boston, MA

Motivation and Goals P&D computing increasingly important Expose all CS majors to P&D concepts Prepare students for parallel research Encourage “Parallel Thinking” Multi-level approach Early exposure in entry level courses Repetition: multiple upper level courses Frequency: Course options every semester Breadth: Theory, Systems and Applications Depth: Focused/advanced parallel topics

Challenges Swarthmore is a small liberal arts college Major includes only nine CS courses Three intro, one capstone, five upper-level Students must take 20 of 32 course outside major Upper level courses offered every other year Curriculum cannot be very vertical Flat pre-requisite structure Adding parallel material could reduce coverage of other topics

Our Approach Add new course: Intro to Computer Systems Core topics for systems courses More time for parallel topics in upper level Blend parallel concepts into related topics Don’t isolate study of parallelism Restructure pre-requisites slightly Make new course requirement for systems courses, and graphics Require students to take at least course each in theory, systems, and applications areas.

CS1 & CS2 Math Intro to Comp. Systems Theory (1 of 2) Systems (All) Applications (1 of 7) New Curriculum Overview Contains TCPP material

Introduction to Computer Systems (CS31) New required intro sequence course (Fall’12) New prerequisite to ~1/2 of upper-level courses Main curricular Goals: 1.Understand how a program in HLL is run by computer (like a vertical slice through the computer) computer architecture, compilers, assembly, OS (processes, VM) 2.Understand system costs associated performance memory hierarchy, scalability, Amdahl’s law 3.Introduction to parallel computing and parallel systems focus on shared memory parallelism SMP, multicore, threads, synchronization, pthread programming

Algorithms (CS41) Explore multiple models of computation RAM, I/O (out-of-core), PRAM/BSP Analyze Merge Sort in RAM, I/O, and PRAM Analytic techniques similar (Big-Oh) Measure of complexity changes Thinking Parallel Work, Span, Speedup, Scalability Small in class lab exercises designing, analyzing parallel algorithms.

Computer Graphics (CS40) Core Concepts in Graphics Shader based GLSL/OpenGL Three weeks of CUDA Many core architecture Block/Thread level parallelism Patterns: map, scatter, gather, stencil, reduce Shared memory, synchronization Applications/Interopability Programmable GPU for Graphics and non- graphics applications.

Parallel & Distributed Computing (CS 87) Very broad coverage of two big fields ~1/3 systems, ~1/3 PL, ~1/3 algorithms architecture, algorithms, programming interfaces and languages, systems, lots of analysis of system components to algorithms, scalability,... 1/2 lecture-based, 1/2 seminar-style Lecture more in 1 st half, mostly on parallel 2 nd half: Research paper reading and class discussion 5 labs in 1st half practice w/ parallel & distributed programming before project TCP/IP Sockets, MPI, pthreads, CUDA, OpenMP, (next time add Hadoop) using XSEDE, tools for running experiments Independent project in 2nd half Research, propose, carry-out, written report, presentation & demo Independent project is opportunity for depth

Soon: Operating Systems (CS45) Covers standard undergraduate OS content CS31 Pre-req makes room for adding parallel and distributed systems topics: Remove: introduction to C programming, some intro OS topics Will know parts of program memory & machine org. Have had an intro to processes, intro to virtual memory Add: distributed systems Have only briefly mentioned in past offerings Add: more parallel systems issues/support More room for in-depth coverage than in past

Soon: Compilers & Databases Both newly require CS31 Compilers (new version offered ??): More quickly cover parts of program memory and assembly code, the stack Make room for: support for parallel languages and/or optimizations for parallel targets Databases (new version Spring’14): Remove: intro to C++, intro to arch & systems Make room for: expanded coverage of parallel and distributed topics (parallel join algorithms, distributed transactions, DHT, …)

Evaluation and Future Plans Student Assessment More parallel assignments, quizzes, exams Extended projects on parallel topics Curricular Assessment Are students exposed to parallel topics? Can students apply parallel topics? Are students thinking in parallel? Coalescing topics into 31 Assess what should be in systems core Adding parallelism to more courses Systems courses in short term Push to CS1/CS2 ?

Course Webpages goo.gl/JjVi2 CS31: Introduction to Computer Systems CS41: Algorithms CS40: Graphics CS87: Parallel and Distributed Computing Acknowledgements NSF/IEEE-TCPP Early Adopter Program