Parallelism is Everywhere – So How Do We Make It Accessible? Daniel Ernst Department of Computer Science The University of Wisconsin – Eau Claire Parallelism.
Download ReportTranscript Parallelism is Everywhere – So How Do We Make It Accessible? Daniel Ernst Department of Computer Science The University of Wisconsin – Eau Claire Parallelism.
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst Department of Computer Science The University of Wisconsin – Eau Claire Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
A Little Background …
• “Grew Up” (Graduate School) in Computer Architecture – Efficient, fast, low-power processors (2 ISCA, 1 MICRO papers, +) • “Dabbled” in supercomputing – (Becoming a bigger part of my job now…) • Became a CS educator • Now – Trying to make sense of how these are all coming together Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Moore’s Dividend
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Where Did All The Performance Go?
Software Development, c. 1950-2005
“What Andy giveth, Bill taketh away.” Parallelism is Everywhere – So How Do We Make It Accessible?
Figure by Jim Larus [CACM 09] Daniel Ernst The University of Wisconsin-Eau Claire
Can Multi-Core Supplant Moore’s “Dividend”?
(for individual programs) • Double number of cores instead of speed • NO, at least not without major innovation – Sequential code base will not scale without lots of help – Lack of parallel algorithms (and/or poor knowledge of them) – Difficult (or at least different) programming challenges – Fewer abstractions currently available Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Parallel Algorithms
“In the context of sequential algorithms, it is standard practice to design more complex algorithms that outperform simpler ones (for example, by implementing a balanced tree instead of a list). For non-blocking algorithms, however, implementing more complex data structures has been prohibitively difficult.” [Herlihy, Luchangco, Moir, Scherer, PODC 2003]
(Discussing a concurrent red-black tree)
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Sequential to Parallel – A History
• Existing code is sequential • We tried parallel compilers in the ‘80s-’90s – Can get good code for a few specific cases, but not generally • We tried to get the hardware to extract parallelism in 90’s-00’s – Dynamic mechanisms cannot find more than 2–4x parallelism • The issue is with how programmers fundamentally think about problems – Not language specific • If we’re training programmers to think only in sequence, how well will they be prepared for dealing with explicit parallelism?
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Fundamental Take-aways
• Explicit parallelism is important, and is getting more so – Being able to identify it will be an increasingly marketable skill • Understanding the underlying architectures is also becoming more important – Necessary to have at least basic understanding to extract reasonable amounts of parallelism – Hybrid machines will make this critical if you want good performance • ESPECIALLY before the tools catch up (but still after) Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Programming Futures
• There is a lack of consensus on the parallel programming model – Data parallelism (Vector) – Unstructured (thread) parallelism • (Edward Lee – “ The Problem with Threads ”) • Speculative threading?
– Message passing • Lots of ongoing research with not much resolved • Moral: Everyone in the CS field needs to be
prepared to learn
about new parallel programming methods and tools.
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
State of the Game
Educators This Talk Industry
This (slightly modified) graph shamelessly stolen from Jim Larus Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
An Opportunistic Approach
• Typically, he/she who develops functionality to use fully use the
hardware capabilities “wins”
– Google, facebook, intel, Microsoft, etc. all took advantage of technological inflection points • So, if we don’t know what to teach yet, how do we prepare our students to be leaders?
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Some Context
• UW – Eau Claire “Founded in 1916, UW-Eau Claire is one of the Midwest’s top public universities. UW-Eau Claire provides students with small classes led by talented professors, cutting-edge programs, hands-on research and life-enhancing study abroad opportunities.
Motto: Excellence. Our measure, our motto, our goal. • What that actually means: – Approx. 11k students, only 500 are grad students – Focus is undergraduate engagement • Teaching excellence • Undergraduate research Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
UW – Eau Claire Computer Science
• ABET Accredited comprehensive CS major • 6 faculty (+1 vacancy), 1 part-time academic staff • Approximately 40-50 graduates per year in 3 majors: – Comprehensive CS – Software Engineering – Computer Engineering (CS degree with CE emphasis) • We’re filthy rich (sort of) • Constituencies / Industrial Partners / Landing Spots – Healthcare, insurance (Marshfield Clinic, NW Mutual) – Some systems development (Cray/IBM) Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
UW – Eau Claire Computer Science
• Focus is on keeping an innovative curriculum – A majority of our scholarship is within this scope – SIGCSE-related activity is large • total of 31 papers and 7 panels presented in SIGCSE sponsored conferences and journals since 2002 – The department has recently been nominated three times as the University of Wisconsin Teaching Department of the Year (2001, 2002, 2003) • Curricular Basics: – Java early, C/C++ later, plus a full PL course – Full P&H Comp Org.
– Late: strong software engineering coursework along with robust systems classes (OS/Networks)
Not for the casual student
Parallelism is Everywhere – Daniel Ernst So How Do We Make It Accessible?
The University of Wisconsin-Eau Claire
Parallelism in the Curriculum – Current
• Many (most?) schools treat parallel computing as an independent topic, addressed in the senior year as an elective.
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Curricular Goals at UW-EC
Students should gain: – a generic understanding of computational concurrency and parallelism.
• see parallelism in problems • be able to exploit it in a reasonable way – exposure to parallelism as an orthogonal method with respect to other standard curricular items.
• Don’t just teach parallelism by itself – integrate it in with other elements as simply another tool in the programming box.
• Teaching it in context can lower time overhead, as well – confidence in using parallelism as a tool.
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Principles for Implementation
• Simplicity – Keep to easy (deterministic) and natural concepts • Ubiquity – More than a “1-shot” issue • Accessibility – Don’t make the learning curve steeper than it has to be Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Simplicity
Keeping Parallelism Simple
• First, tweak the underlying concept of a computer – A “collection of brains” • The concepts behind basic parallelism are simple – Sharing work • Different tasks • Split up data • Especially if they’re given a more natural context Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Simplicity
Natural Parallelism/Concurrency
• We have very natural allies in the educational graphics/animation toolsets – Alice, Scratch, etc.
• These tools make basic concurrency natural and largely deterministic – easier to debug!
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Simplicity
Another Natural Example – Swarm Intelligence
• “Creative” Monte Carlo solution to TSP – Instantiate multiple agents to probabilistically discover the shortest trip – “Threads as Entities” • Each agent (“ant”) operates in its own thread – ants leave pheromone trails along arcs to influence later ants • Arc information needs to be synchronized • Orthogonal topics: – Monte Carlo – heuristics Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Simplicity
Other “Clean” Parallel Examples
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Ubiquity
Parallelism Everywhere
Parallelism the Norm
• Unlike the past, sequential code written today is likely to only see very small (if any) gains from hardware upgrades. – As the number of cores increases, non-parallel performance will become relatively more unacceptable in practice.
• Exploiting parallelism needs to be a first-class citizen – (or at least second-class) – not an item studied once and then not used again.
– Ubiquitous Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Ubiquity
An Integrated Model at UW-EC
• CS1 –
Decomposition and Assignment
– Introduce methods for recognizing obvious parallelism – Practice with simple, natural, and integrated examples • CS2 –
Basic Orchestration
– Continued practice with obvious parallelism – Introduce communication • Algorithms –
Parallelism Limits
– Extend algorithm analysis to parallel algorithms – Introduce more complicated communication patterns • Operating Systems –
Synchronization Constructs
– “The usual topics “ Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Ubiquity
After a Reality Check…
• CS2 –
Decomposition and Assignment
– Introduce methods for recognizing obvious parallelism – Practice with simple, natural, and integrated examples • CS2/Algorithms –
Basic Orchestration
– Continued practice with obvious parallelism – Introduce communication • Algorithms/OS –
Parallelism Limits
– Extend algorithm analysis to parallel algorithms – Introduce more complicated communication patterns • Operating Systems –
Synchronization Constructs
– “The usual topics “ Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Ubiquity
CS2 Possibilities – Image Mosaic
• “Nifty Assignment” (Pattis, SIGCSE 2005) – create an image out of tiles of smaller images – tiles are independent (unless you want it to look good!) • Basic parallelism is easy, but good quality needs synchronization – Payoff!
• Can vary synchronization difficulty • Orthogonal topics: – searching/sorting/matching Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Ubiquity
The Role of Architecture
• Understanding how a program “lays out” on a machine.
– What is it capable of?
– What are the bottlenecks?
• My take thus far: – Decreased emphasis on assembly programming – Slightly decreased emphasis on microarchitecture • (Depending on program needs) – Increased emphasis on system-level view (interaction between processor and memory) Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Accessibility
Keeping Parallelism Accessible
• For each individual curriculum, the choice of language/platform has a significant effect on accessibility.
• At UW-EC, we are largely a “Java shop”, with some C/C++ – To keep learning curve gentle, we try to operate within that framework – Java.util.concurrent / OpenMP • Taking the time to introduce a new platform eats far too much time and can lead to projection of learning difficulties* – (and they’re just going to change, anyways)
The concepts are more important than the platform
Parallelism is Everywhere – So How Do We Make It Accessible?
*YMMV Daniel Ernst The University of Wisconsin-Eau Claire
Accessibility
The Delicate Balance
While we want to have student learning to be as platform-agnostic as possible… …they also need to learn real skills for the workforce… …and they need to practice with the concepts somehow!
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Current Challenges
1. General Workload – – Especially given the ubiquity argument, there’s a lot of material that needs to be created/re-worked in new contexts How do we motivate instructors?
2. Faculty Readiness – – At least anecdotally, the percentage of faculty who feel comfortable teaching parallel computing is painfully small How can we help with faculty accessibility?
3. Future Uncertainty – Given that we’re not quite sure what future programming models will look like – what topics should we be teaching?
Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Current Challenges (More?!?)
4. Availability of Tools/Language Support for Parallelism – • • • • There are very few language/toolset combinations that collectively fulfill the major criteria for curricular languages: Language used in industry (or related to one) Supports OO Good support for “easy” parallelism Not syntactic suicide Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
The Reality of Implementation
• If change is really going to be cross-curriculum, it requires that there is significant buy-in from every faculty/staff member that teaches any course that includes the new material.
• This is a serious professional development challenge Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
EAPF – Addressing The Challenges
Educational Alliance for a Parallel Future
• Combined effort of Industry: – Intel, nVidia, AMD, Microsoft, etc.
• and Academia – Members range from research (UIUC/Berkeley) to supercomputing experts to small college educators • Goals: – Increase awareness – Encourage and support innovation in training and tools • Keep an eye out for more… Parallelism is Everywhere – So How Do We Make It Accessible?
Daniel Ernst The University of Wisconsin-Eau Claire
Parallelism is Everywhere – So How Do We Make It Accessible?
Thank You!
Q & A
Daniel Ernst The University of Wisconsin-Eau Claire