teaching parallel programming for it students why when
play

Teaching Parallel Programming for IT Students ... Why, When, and - PowerPoint PPT Presentation

Teaching Parallel Programming for IT Students ... Why, When, and How? Ahmed Wagueeh Software Architect Ahmedx.wagueeh@intel.com Intel Corporation Agenda Why? When? How? Why? Why is it NOW important to teach parallel programming?!


  1. Teaching Parallel Programming for IT Students ... Why, When, and How? Ahmed Wagueeh Software Architect Ahmedx.wagueeh@intel.com Intel  Corporation

  2. Agenda Why? When? How?

  3. Why? Why is it NOW important to teach parallel programming?! Answer: it has ALWAYS been important to teach PP, but it just getting much more important Why Parallel Programming is getting more important? Answer: Because of Multi-Core processors, which shortly will be Many Core processors

  4. Why? “[Multi - core processing is creating]…the biggest sea change in software development since the object-oriented programming revolution.” Herb Sutter, Microsoft

  5. Why? Then, what we need to change to reflect this big change? Answer: it is how we deal with teaching PP And why industry moved to Multi-core? Answer: Performance, but actually there was no other option

  6. Why? Performance Gain with Multi-Core Processors 450 400 350 Performance 300 250 200 150 100 50 0 2010 2007 2008 2009 2011 2012 1 Core 2 Cores 4 Cores 6 Cores Source: PC Semiconductor Market Briefing: Re-Architecting the PC and the Migration of Value, June 2008

  7. Why? Power vs. frequency for single core architecture 359 309 Dropping Frequency 259 = Large Drop Power Power (w) 209 159 Growth in power 109 is unsustainable 59 9 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4 Frequency (GHz)

  8. Why? What if we just ignored it? Source: published SPECInt data

  9. Why? What if we just ignored it? 51

  10. When? What is it the best time to introduce Parallel Programming to IT students? Answer: from day 1

  11. When? “There is no question anymore whether we should start teaching parallel algorithms and programming at all levels. The question is when. IMHO we will deserve malpractice suits if we defer this teaching by too much. Currently, we produce 22-years old dinosaurs trained for 50-years career dominated by parallelism through programming yesterday’s computers. In fact, we don’t only under-teach: we mis-teach bad serial habits that will make it much more difficult to switch to parallelism later” Prof. Uzi Vishkin, University of Maryland

  12. When? Almost each and every CS/CE/IT curriculum needs revisiting to include or reflect parallel concepts

  13. When? Data Structure Non-blocking data structure Parallel Search and Sort Algorithms Algorithm Design Parallel Algorithms Design Scalability Metric Parallel Algorithm Complexity

  14. When? Software Engineering Parallel Design Patterns Compilers Design Operating Systems Computer Architecture Database Systems Numerical Analysis Digital Image Processing Security Data Mining, etc. (name it and it is there)

  15. How? Revise existing curriculums, year by year, and update them to include PP concepts Introduce PP to students as early as possible Start with simple, but powerful practices to demonstrate huge effect of parallelism on performance Commit to standards, not products

  16. How? St. Petersperg State University Project Cooperation to develop 7 introductory exercises that demonstrate basic concepts of PP Vector operations, matrix manipulation, and numerical analysis are some of the few problems solved using PP with emphasis on performance boost and issues that may affect it 2 labs are already finished, which covers basic vector operations using OS specific APIs and OpenMP standard library These labs will be available for academic use through Intel Academic Community site (http://academiccommunity.intel.com/)

  17. Thank You And please Think Parallel

Recommend


More recommend