Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan.

Slides:



Advertisements
Similar presentations
CSE 332: C++ overview CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning –Introductory lecture material followed by hands-on.
Advertisements

Integrating Parallel Computing into the Undergraduate Curriculum: Efforts at Texas State University Martin Burtscher Wuxu Peng Apan Qasem Hongchi Shi Dan.
Real-time Systems Lab, Computer Science and Engineering, ASU Please Standby Galileo Tech Talk at ASU Will Begin Shortly.
Project Lead the Way An Orientation American High School.
1 Undergraduate Curriculum Revision Department of Computer Science February 10, 2010.
Transitioning to Semesters CSE MS Program Prof. Gagan Agrawal Grad Studies Chair.
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
Introduction to programming with Visual Basic.NET Dr. Marty Sirkin.
Hong Lin Computer and Mathematical Sciences University of Houston – Downtown Teaching Parallel and Distributed Computing Using a Cluster Computing Portal.
CEN Student Focus GroupApril 1, 2011 CEN Program Focus Group TOPICS: –Course Availability. –Course Relevance. –Subjects not Offered. –Course issues. 1/6.
1 i206: Distributed Computing Applications & Infrastructure 2012
Goran Šuković, University of Montenegro 1/18 Faculty of Sciences Podgorica University of Montenegro 7 th Workshop on “Software Engineering Education and.
CSCE 611: Conceptual Modeling Tools for CAD Course goals: –Design and verification methodologies for large-scale digital systems using industrial tools.
Addressing software engineering issues in student software projects across different curricula Dušanka Bošković Computing and Informatics Bachelor Programme.
Developing Oral and Written Communication Skills in Undergraduate Computer Science and Information Systems Curriculum Yana Kortsarts, Adam Fischbach, Jeff.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Early Adopter Introduction to Parallel Computing: Research Intensive University: 4 th Year Elective Bo Hong Electrical and Computer Engineering Georgia.
An Integrated Approach to Teaching Computing Systems Architecture
Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst.
Introduction to CSE Grad Programs and Admissions Prof. Gagan Agrawal Grad Studies Chair.
Using a Variety of Technologies to Teach Compute Hardware Background Approach  Quizzes  Web quests  Basic programming  Raspberry Pi Results Conclusions.
Learning Unit Documents and Examples. Learning Units - basic building block of a course For iGETT a Learning Unit consists of –Three parts Instructor.
David O’Hallaron Carnegie Mellon University Processor Architecture Overview Overview Based on original lecture notes by Randy.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
CSSE 250 (First class) Dr. Yingwu Zhu Office: ENGR 530 Phone: Emai:
Advising Workshop for New Faculty CSE Department Ohio State University.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Dr. John Lowther, Associate Professor of CS Adjunct Associate Prof. of Cognitive and Learning Sciences Computer Graphics:
Information Session for Psychology I.The Psychology Curriculum A. Brief Outline of Requirements B. Planning Ahead 1. Choosing 2000s to Get 4000s 2. When.
Information Session for Psychology I.The Psychology Curriculum A. Brief Outline of Requirements B. Planning Ahead 1. Choosing 2000s to Get 4000s 2. When.
Spreading Curricular Change in PDC: Some Practical Tools This material is based on work supported by the National Science Foundation under Grant Nos. DUE / /
1 WORKSHOP ON COMPUTER SCIENCE EDUCATION Innovation of Computer Science Curriculum in Higher Education TEMPUS project CD-JEP 16160/2001.
Evaluating FERMI features for Data Mining Applications Masters Thesis Presentation Sinduja Muralidharan Advised by: Dr. Gagan Agrawal.
CSNB334 Advanced Operating Systems Course Introduction Lecturer: Abdul Rahim Ahmad.
CMSC104 Problem Solving and Computer Programming Spring 2011 Section 04 John Park.
Practical Optics Workshops (POW) A set of focused activities outside of the regular curriculum that provide graduate students opportunities to learn valuable.
CMSC104 Problem Solving and Computer Programming Spring 2009 Sections 0201 & 0301 Ms. Dawn Block.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
Introduction to CSE MS Program Prof. Gagan Agrawal Grad Studies Chair.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 21: Course Wrap-up and Look Ahead.
Multi-Semester Effort and Experience to Integrate NSF/IEEE-TCPP PDC into Multiple Department- wide Core Courses of Computer Science and Technology Department.
Software Engineering at MSOE Mark Sebern Professor & BSSE Program Director Milwaukee School of Engineering.
Incorporating Parallel & Distributed Computing Across a Liberal Arts Computer Science Curriculum Tia Newhall, Andrew Danner, Kevin Webb Swarthmore College.
CSE MS Program Prof. Gagan Agrawal Grad Studies Chair.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
1 CS/ECE 354 Fall 2013 “New, and improved!”. 2 Karen Miller Phone: CS.
Computer Engineering Proposed Changes for and beyond.
BMTS Computer and Systems Pre-requisites :CT140 –Computer Skills Nature Of the Course: This course deals about the fundamentals of Computer such.
CSE MS Program Prof. Gagan Agrawal Grad Studies Chair.
CMSC104 Problem Solving and Computer Programming Spring 2008
Accelerators to Applications
Final exam: Wednesday, March 20, 2:30pm
CMSC104 Problem Solving and Computer Programming Fall 2010 Section 01
Information Session for Psychology
Chapter 4: Threads.
The CS Undergrad Curriculum of 2017: My Biased View from Academia
CSE 332 Overview and Structure
Information Session for Psychology
CMSC 104 Problem Solving and Computer Programming Fall 2010
CSC Classes Required for TCC CS Degree
An Embedded Systems Course and Course
CMSC104 Problem Solving and Computer Programming Fall 2010
CMSC104 Problem Solving and Computer Programming Spring 2010
CMSC104 Problem Solving and Computer Programming Fall 2009 Section 2
Information Session for Psychology
Dept. of Computer & Information Sciences (Course Introduction)
CMSC104 Problem Solving and Computer Programming Spring 2010
Introduction to CSE MS Program
CS201 – Course Expectations
Presentation transcript:

Introducing Every CS Major to Parallel Programming: Baby Steps at Ohio State Gagan Agrawal Feng Qin P. Sadayappan

Context Ohio State Moving to Semester System in 2012 o A very significant exercise in converting all degree programs o CS undergrad programs developed almost from scratch o All CSE and CIS undergrads will do exercises in parallelism and locality

This Talk o Not About o Extensive coverage of parallelism for UGs o New pedagogy of teaching parallelism o Is About o Challenges of designing a CS Curricula o (Different) view-points of colleagues o Not everyone thinks the way systems faculty does o Some other challenges in preparing students for parallelism

Curriculum Design Process o 10 faculty, lectures, students, advising staff o Met for 1 hour per week for about 15 weeks o Various subcommittees formed o Divide core into software, foundations, and systems o Challenging/Contentious discussions

Outcome o ~50 credits of CS divided into o 6 required courses o Software I and II o Systems I and II o Foundations I and II o A junior project course o A senior capstone course o 4 pick A or B pairs o 4 other elective slots

Primary Drivers o Larger core considered undesirable o Students should be able to take several graphics or networking courses.. o Project and Capstone considered very important o Dividing core into Software, Foundations, and Systems helped divide responsibilities o SE faculty responsible for software, systems faculty responsible for systems

More Details o Software I and II o Java based o Strong component-based flavor o Strong SE bent (best practices in Java etc.) o What is Missing o Any C/C++ o Pointers and memory discussion o Any performance considerations

Systems I and II o Systems faculty in charge of it o Input: students with no C/pointer/memory background o Desired Coverage o C programming o Micro-architecture, organization, assembly programming o Operating System Topics o Multi-core hardware and software o Processor architecture and networking …

Tried to Negotiate o Asked for more systems credits o Prepared a strong argument o Multi-core hardware and software very important for everyone.. o Got no traction from others o Argument that action has shifted to applications o No option but to work within 6-7 credits

Final Outcome (Systems Courses) o Systems I o C programming (pointers) o Computer Organization and Assembly Programming o Systems II o 10 weeks of operating systems topics o Parallel programming and locality management at software level

Operating Systems at Ohio State o A required quarter long course (3 quarter credits) o Covers traditional “theory” topics o Processes, Memory, Devices o Labs for o Programming with System Calls o Multi-threaded Programming o Producer Consumer Etc. o No Kernel Programming o Elective Operating Systems Lab Course o Linux Kernel Programming

Systems II in Semesters o Keep 10 week contents as they are o Add Multi-Core application development o Build on Pthreads and Synchronization o Focus on extracting performance from simple applications o Add application level locality management o Exposure to Caches at Application Level o Relate to VM treatment in a standard OS Course o Use Bryant and O’Hallaron for new material o Computer Systems: An Application Developer’s Perspective o Also our Text for Last 8 weeks of Systems I

Was It All Natural? o Many found combination of topics strange!! o But o Met our priority of material to cover o Better than Just adding more OS Topics o Locality coverage important because architecture is now an elective o The only opportunity to introduce parallelism we had

Other Observations from the Process o Performance low in priority outside systems o SE Practices, Testing more important o Many forces against preparing students for parallelism o No pointers/memory at early stages o Encapsulation/Components emphasized o Architecture coverage very limited o Choice with Networking

Other Questions o Does it make sense to teach parallelism with Java or C#? o If sequential performance is so limited, why bother with parallelism? o Should we first teach parallelism with more abstractions? o Is Pthreads too low level? o Can you really get performance just thinking of simple iterators/ map-reduce etc.?