Csinparallel.org Surviving in the Wild: Teaching and Training for the Parallel Future Dick Brown St. Olaf College SPLASH Educators’ and Trainers Symposium.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Getting Organized for the Transition to the Common Core What You Need to Know.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
NSF/TCPP Curriculum Standards Initiative in Parallel and Distributed Computing – Core Topics for Undergraduates Sushil K. Prasad, Georgia State University.
EdTPA: Task 1 Support Module Mike Vitale Mark L’Esperance College of Education East Carolina University Introduction edTPA INTERDISCIPLINARY MODULE SERIES.
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.
Parallel and Distributed Computing Early ( and Often) Steven Bogaerts (speaker), Kyle Burke, Brian Shelburne Department of Mathematics & Computer Science.
Educational Outcomes: The Role of Competencies and The Importance of Assessment.
Update from the UNC General Education Council [presented to the UNC Board of Governors’ Educational Planning, Programs, and Policies Committee on February.
CMSC 132: Object-Oriented Programming II
UGCC Report, 11/29/05 Committee: Bettati, Gutierrez, Keyser, Jiheon Kwan (undergrad rep), Leyk, Loguinov, Petersen, Welch (chair) Meetings: Fridays 2-3.
1 Dr. Frederica Darema Senior Science and Technology Advisor NSF Future Parallel Computing Systems – what to remember from the past RAMP Workshop FCRC.
Computer Science ABET Visit Update November 8, 2003.
OPL: Our Pattern Language. Background Design Patterns: Elements of Reusable Object-Oriented Software o Introduced patterns o Very influential book Pattern.
Early Adopter: ASU - Intel Collaboration in Parallel and Distributed Computing Yinong Chen, Eric Kostelich, Yann-Hang Lee, Alex Mahalov, Gil Speyer, and.
European Workshop on Microelectronics Education, May 12, 2010, Kjell JeppsonPage 1 Implementing Constructive Alignment in a CDIO-oriented Master’s Program.
CSinParallel Modules and the Topics in the Curriculum 2013 Core Libby Shoop Math, Statistics, and Computer Science Macalester College.
Csinparallel.org Patterns and Exemplars: Compelling Strategies for Teaching Parallel and Distributed Computing to CS Undergraduates Libby Shoop Joel Adams.
Jawwad A Shamsi Nouman Durrani Nadeem Kafi Systems Research Laboratories, FAST National University of Computer and Emerging Sciences, Karachi Novelties.
EduPar-13: Third NSF/TCPP Workshop on Parallel and Distributed Computing Education Sushil K Prasad Georgia State University.
Parallel and Distributed Computing in CS2013 Mehran Sahami Computer Science Department Stanford University.
Early Adopter Introduction to Parallel Computing: Research Intensive University: 4 th Year Elective Bo Hong Electrical and Computer Engineering Georgia.
Big Data and Clouds: Challenges and Opportunities NIST January Geoffrey Fox
Integrating Business Education and Computer Science to Prepare Students for the 21 st Century Barbara Ericson Advanced.
On the edge: designing online modules in EAP George Blue Julie Watson Vicky Wright
Design of a Software Development Major Alan Fekete Bob Kummerfeld (University of Sydney)
1 Programming Thinking and Method (0) Zhao Hai 赵海 Department of Computer Science and Engineering Shanghai Jiao Tong University
Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst.
NSF/TCPP Curriculum Planning workshop Behrooz Shirazi Washington State University February 2010.
Chapter 2 The process Process, Methods, and Tools
Adjustment of the Curricula for the BSc Degree “Professor of Informatics” With the Recommendations of the Bologna declaration and the Process of European.
Linking with High School Computer Science Gary Monnard St. Ambrose University For IUCSC – March 28, 2015.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
CIS4930/CDA5125 Parallel and Distributed Systems Florida State University CIS4930/CDA5125: Parallel and Distributed Systems Instructor: Xin Yuan, 168 Love,
Computational Design of the CCSM Next Generation Coupler Tom Bettge Tony Craig Brian Kauffman National Center for Atmospheric Research Boulder, Colorado.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Collaborating with iPlant.
 ENGAGE STUDENTS IN CREATIVE MULTIMEDIA CONTENT PRODUCTION A NEW MODEL OF FACULTY-IT-STUDENT COLLABORATION IN A LEARNING INTENSIVE WORLD Pandeli Glavanis,
Hands-On Exploration of Parallelism for Absolute Beginners With Scratch Steven Bogaerts Department of Mathematics & Computer Science Wittenberg University.
MIMD Distributed Memory Architectures message-passing multicomputers.
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.
10/17/2015 Stakeholders and How to Engage Them All – How to Ensure Success of This Initiative? Jie Wu Dept. of Computer and Information Sciences Temple.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Collaborating with iPlant.
The Future of the iPlant Cyberinfrastructure: Coming Attractions.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
A Planning Workshop on Curriculum Standards for Parallel and Distributed Computing Feb 5-6, Washington DC, Hilton Arlington Sushil K. Prasad Georgia State.
LIKES: Educating the Next Generation of Knowledge Society Builders Authors: Wingyan Chung, Edward A. Fox, Steven D. Sheetz, Seungwon Yang Presenter: Wingyan.
Practices of Integrating Parallel and Distributed Computing Topics into CS Curriculum at UESTC Guoming Lu University of Electronic Science and Technology.
Csinparallel.org Patternlets: A Teaching Tool for Introducing Students to Parallel Design Patterns Joel C. Adams Department of Computer Science Calvin.
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Early Adopter: Integration of Parallel Topics into the Undergraduate CS Curriculum at Calvin College Joel C. Adams Chair, Department of Computer Science.
{ Applying the NSF/TCPP Curriculum Recommendations to a Liberal Arts Curriculum Akshaye Dhawan, Ursinus College.
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.
1 "Workshop 31: Developing a Hands-on Undergraduate Parallel Programming Course with Pattern Programming SIGCSE The 44 th ACM Technical Symposium.
Edinburgh e-Science MSc Bob Mann Institute for Astronomy & NeSC University of Edinburgh.
EduHPC-15: Workshop on Education for High- Performance Computing WELCOME Sushil Prasad and Ioana Banicescu.
Incorporating Parallel & Distributed Computing Across a Liberal Arts Computer Science Curriculum Tia Newhall, Andrew Danner, Kevin Webb Swarthmore College.
NSF/TCPP Curriculum Planning Workshop Joseph JaJa Institute for Advanced Computer Studies Department of Electrical and Computer Engineering University.
- Collaborative report writing - Bridging the divide between formal and informal learning Richard Walker & Wayne Britcliffe E-Learning Development Team,
Csinparallel.org Workshop 307: CSinParallel: Using Map-Reduce to Teach Parallel Programming Concepts, Hands-On Dick Brown, St. Olaf College Libby Shoop,
FACULTY EXTERNSHIP OPPORTUNITIES IN DATA SCIENCE AND DATA ANALYTICS Facilitated by: FilAm Software Technology, Clark Freeport Zone Ecuiti, San Francisco,
Multicore Computing Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Defining the Competencies for Leadership- Class Computing Education and Training Steven I. Gordon and Judith D. Gardiner August 3, 2010.
Accelerators to Applications
Inculcating “Parallel Programming” in UG curriculum
The 25th annual IEEE International Conference on High Performance Computing, Data, and Analytics. Challenges of integrating parallel and distributed computing.
Topic Principles and Theories in Curriculum Development
Presentation transcript:

csinparallel.org Surviving in the Wild: Teaching and Training for the Parallel Future Dick Brown St. Olaf College SPLASH Educators’ and Trainers Symposium October 24, 2011

csinparallel.org Overview Review of the need for parallelism Strategies we need – What to teach – How to teach it – How to get it taught Surviving in the wild of Parallelism With interludes, to be announced…

csinparallel.org The need for parallelism Question: Why do we need parallelism at the programming level? – Hint: It’s not “because it’s there” (… although desktop applications do tend to find ways to use ever greater power per dollar) Note: I will use parallel as a generic for concurrent, parallel, distributed, cloud, accelerator (e.g., GPGPU), etc.

csinparallel.org The need for parallelism Answer: Scale

csinparallel.org The need for parallelism Answer: Scale Cloud applications + = 30,000,000,000,000,000

csinparallel.org The need for parallelism Answer: Scale Cloud applications Scientific applications: Particle-level simulation of turbulance is exascale Can’t achieve exascale performance without many cores (Berkeley “walls”), accelerators

csinparallel.org Challenges for industry Technology: – Heterogeneous computing (CPU + accelerators) – Sophisticated “on the fly” runtime systems – “Wall” of memory hierarchy vs. on-chip access

csinparallel.org Challenges for industry Technology: – Heterogeneous computing (CPU + accelerators) – Sophisticated “on the fly” runtime systems – “Wall” of memory hierarchy vs. on-chip access Examples – AMD Fusion System Architecture: CPU+GPU – Intel MIC (Many Integrated Cores): 50+ CPUs on a chip, as a cluster-like accelerator

csinparallel.org Challenges for industry Technology: – Heterogeneous computing (CPU + accelerators) – Sophisticated “on the fly” runtime systems – “Wall” of memory hierarchy vs. on-chip access Programming models: – Higher level; more “human-centric” – Scalable – Versatile

csinparallel.org Challenges for Education/Training We want to prepare our students for what they’ll need, before the demand explodes, but What are the enduring principles? Technologies, (hence) tools change rapidly! (Educators:) Change the curriculum???

csinparallel.org A wild ecosystem Industry/Academia

csinparallel.org A wild ecosystem Industry/Academia Learning curve/Rapid change

csinparallel.org A wild ecosystem Industry/Academia Learning curve/Rapid change Principles/Practices

csinparallel.org A wild ecosystem Industry/Academia Learning curve/Rapid change Principles/Practices Teaching/Research – New research discoveries in technology and programming models need to get into the curriculum yesterday

csinparallel.org A wild ecosystem Industry/Academia Learning curve/Rapid change Principles/Practices Teaching/Research We need strategy! And, it’s coming fast! – Took OOPSLA 20 years to become SPLASH… We can’t wait that long

csinparallel.org Strategies to be found What to teach How to teach it How to get it taught ITiCSE 2010 working group, Strategies for Preparing Computer Science Students for the Multicore World

csinparallel.org What to teach Parallel computing has a head start: ACM/IEEE Curriculum ’91 – 3 required hours on parallel algorithms – 3 required hours on distributed and parallel programming language constructs, with hands- on practice Ada, Concurrent Pascal, Occam, or Parlog (Was not universally embraced…)

csinparallel.org What to teach Parallel computing has a head start: ACM/IEEE Curriculum ’91 – 3 required hours on parallel algorithms – 3 required hours on distributed and parallel programming language constructs, with hands-on practice But, ten years later… ACM/IEEE Curriculum ’01 – 0 required hours of parallel algorithms – No mention of programming language constructs – Replaced by: “net-centric computing,” etc.

NSF/TCPP Curriculum Standards Initiative in Parallel and Distributed Computing – Core Topics for Undergraduates Sushil K. Prasad, IEEE TCPP Chair, Georgia State University Richard LeBlanc, Seattle University, ACM Education Council Charles Weems, University of Massachusetts, Amherst Alan Sussman, University of Maryland Arnold Rosenberg, Northeastern and Colorado State University Andrew Lumsdaine, Indiana University Curriculum Initiative Website: linked through tcpp.computer.orgtcpp.computer.org

Who are we? Chtchelkanova, Almadena - NSF Dehne, Frank - University of Carleton, Canada Gouda, Mohamed - University of Texas, Austin, NSF Gupta, Anshul - lBM T.J. Watson Research Center JaJa, Joseph - University of Maryland Kant, Krishna - NSF, Intel La Salle, Anita - NSF LeBlanc, Richard, University of Seattle Lumsdaine, Andrew - Indiana University Padua, David- University of Illinois at Urbana-Champaign Parashar, Manish- Rutgers, NSF Prasad, Sushil- Georgia State University Prasanna, Viktor- University of Southern California Robert, Yves- INRIA, France Rosenberg, Arnold- Colorado State University Sahni, Sartaj- University of Florida Shirazi, Behrooz- Washington State University Sussman, Alan - University of Maryland Weems, Chip, University of Massachussets Wu, Jie - Temple University

Specifying Curriculum Recommendations – NSF/TCPP Approach Identify topics in four existing areas: architecture, algorithms, programming, and cross-cutting topics For each topic, recommend – Bloom level – “Hours” of coverage – Suggested learning outcome – Possible core course for coverage Focus: First two years

Bloom Levels Use first three levels for recommended core topics K= Know the term/recall definition (basic literacy) C = Comprehend so as to paraphrase/illustrate A = Apply it in some way (requires operational command) N = Not in core (but may be useful in elective or advanced courses)

Example Parallel and Distributed Models and Complexity – Costs of computation Algorithms Topics Bloom #CourseLearning Outcome Algorithmic problems The important thing here is to emphasize the parallel/distributed aspects of the topic Communication broadcast C/A Data Struc/Algo represents method of exchanging information - one-to-all broadcast (by recursive doubling) multicast K/C Data Struc/Algo Illustrate macro-communications on rings, 2D- grids and trees scatter/gather C/AData Structures/Algorithms gossip N Not in core Asynchrony KCS2 asynchrony as exhibited on a distributed platform, existence of race conditions Synchronization K CS2, Data Struc/Algo aware of methods of controlling race condition, Sorting C CS2, Data Struc/Algoparallel merge sort, Selection K CS2, Data Struc/Algo min/max, know that selection can be accomplished by sorting K: know term C: paraphrase/illustrate A: apply

Programming Assume some conventional (sequential) programming experience Key is to introduce parallel programming early to students Four overall areas – Paradigms – By target machine model and by control statements – Notations – language/library constructs – Correctness – concurrency control – Performance – for different machine classes

Parallel Programming Paradigms (Selections) By target machine model – Shared memory (Bloom classification A) – Distributed memory (C) – Client/server (C) – Hybrid (K) – e.g., CUDA for CPU/GPU By control statements – Task/thread spawning (A) – Parallel Loop (C)

How to Read the Proposal Oh no! Not another class to squeeze into our curriculum!

Oh yes! Not another class to squeeze into your curriculum! How to Read the Proposal

Oh yes! Not another class to squeeze into your curriculum! Draft curriculum released Dec 2010 (tcpp.computer.org) How to Read the Proposal

csinparallel.org Enduring skills? Since the tool set is subject to change at any time, how much investment in those skills? – Many parallel languages and features have come and gone Need hands-on experience for effective learning. Anything may suddenly emerge as important – Python as a prototyping language for HPC

csinparallel.org A candidate for addition Patterns of parallel programming

csinparallel.org Patterns, a candidate for addition Background – “Gang of Four” book

csinparallel.org Patterns, a candidate for addition Background – “Gang of Four” book, 1994 – Doug Lea, Concurrent programming in Java: Design principles and patterns, 1999 – Tim Mattson, et al, Patterns for Parallel Programming, 2005 – Kurt Kreutzer and Berkeley Parlab, the Dwarves Motifs – Kreutzer and Mattson, OPL (parlab.eecs.berkeley.edu/wiki/patterns)

csinparallel.org Patterns, a candidate for addition Why patterns? They capture reusable units of expert problem-solving strategy Thus, they provide novices with a way to acquire expertise Many are supported by tools – Loop parallel, Message passing, Map-reduce, …

csinparallel.org How to teach it Agree with NSF/TCPP Initiative, that parallelism should be taught early and often – Scratch team kept concurrent scripts, because users “not surprised that a sprite can do several things at once” – Lessons of Vishkin’s “Peanut Butter Sandwich” exercise

csinparallel.org CSinParallel project Add parallelism early and often at all levels Incremental, flexible approach via modules Sharing within our community

csinparallel.org CSinParallel project Modular Approach – Short units (1-3 days) – Identified learning objectives – Self-contained – Flexible for use in various courses and curricula Make software/libraries more accessible – Parallel Platform Packages, Resources Share, discuss and help as a community –

csinparallel.org CSinParallel project Some selected module topics Introductory: – Map-Reduce computing for CS1 using WebMapReduce – Concurrent access to data structures in Java or C++ – Multicore programming with Intel’s Manycore Testing Lab Intermediate: – Introduction to parallel computing concepts – Concurrency strategies in programming languages – Parallel sorting algorithms

csinparallel.org Module: WebMapReduce

csinparallel.org Module: MTL with OpenMP Intel’s Manycore Testing Lab Module – #pragma omp parallel for num_threads(threadct) \ shared (a, n, h, integral) private(i) – reduction(+: integral)

csinparallel.org CSinParallel We seek collaborators and contributors

csinparallel.org Patterns Methodology Kreutzer and Mattson OPL not only provides a catalog of patterns, but also a software problem-solving methodology

csinparallel.org Patterns Methodology Kreutzer and Mattson OPL not only provides a catalog of patterns, but also a software problem-solving methodology Purposes: – Education – Communication – Design

csinparallel.org How to get it taught Pressures on the professor – “Oh no! Not another course to squeeze…” So, take an incremental spiral approach (agreeing with NSF/TCPP) – Small changes in curriculum in many places – Revisit challenging issues – Students come to think of parallelism as natural part of computation – Spiral approach is pedagogically effective

csinparallel.org How to get it taught Incentives Microgrants: small (e.g., $1500) amounts for contributing first steps in teaching parallelism – Intel Academic Community (intel.com/AcademicCommunity) – Educational Alliance for a Parallel Future (eapf.org)

NSF/TCPP Initiative Early Adopter Program

How to obtain Early Adopter Status? 16 Early adopters chosen for Spring term Early adopters chosen for Fall term 2011 Next round of competition: Fall 2012; Deadline November 5, 2011 – NSF/Intel funded Stipend/Honorarium – Which course(s), topics, evaluation plan?

How to obtain Early Adopter Status? Instructors for – core CS/CS courses such as CS1/2, Systems, Data Structures and Algorithms – department-wide adoption preferred – elective courses such as Algorithms, Architecture, Programming Languages, Software Engg, etc. – introductory/advanced PDC course – dept chairs, dept curriculum committee members responsible

csinparallel.org How to get it taught Other supports needed Platform availability Support community Educational elements – Learning objectives, assessment tools, etc.

csinparallel.org Surviving in the wild ecosystem – Industry/Academia – Learning curve/Rapid change – Principles/Practices – Teaching/Research

csinparallel.org Surviving in the wild ecosystem – Industry/Academia – Learning curve/Rapid change – Principles/Practices – Teaching/Research Mine from the heritage of the past Incremental approach Spiral exposition Pattern-based methods

csinparallel.org An example (go-lang.org) Mine from the heritage of the past – Hoare’s CSP; CCS  Pi Calculus [teach/research] Incremental approach – Not far from C [academic/industry] Spiral exposition – Midway steps towards explicit threads, message passing [Learning curve/rapid change] Pattern-based methods – Message passing, Fork-join, channel as Parallel Queue¨ [Principles/Practice]

csinparallel.org Questions?