BEGIN:VCALENDAR VERSION:2.0 PRODID:-//CERN//INDICO//EN BEGIN:VEVENT SUMMARY:Parallel Design Patterns @ EPCC at University of Oxford DTSTART;VALUE=DATE-TIME:20181106T090000Z DTEND;VALUE=DATE-TIME:20181108T173000Z DTSTAMP;VALUE=DATE-TIME:20200603T222020Z DESCRIPTION:If you were given a serial problem\, conceptually\, how would you go about splitting it up into many different parts that could run conc urrently on the latest parallel computers?\n\nThe good news is that you do n't need to reinvent the wheel. Instead\, there are many different approac hes (called parallel patterns) that have been developed by the community a nd can be used in a variety of situations. These patterns apply equally we ll regardless of whether your problem is computational or data-driven.\n\n Understanding and being able to apply these patterns also helps in getting to grips with existing parallel codes and optimising poorly performing co mputation and data codes. Whilst the lectures take a top down approach\, f ocusing on the patterns themselves\, the practical exercises give the oppo rtunity to explore the concepts by implementing pattern-based solutions to problems using common HPC technologies.\n\nThe parallel patterns (known a s a pattern language) that we cover are split into two categories.\n\nThe closest to the problem area (and most abstract) are parallel algorithm str ategy patterns and include:\n\n\n Task Parallelism\n Recursive Split ting\n Geometric Decomposition\n Pipeline\n Discrete Event\n A ctors\n\n\nThe other category of patterns is closer to the implementation and drives how the programmer should structure their code and data. These are implementation strategy patterns\, and include:\n\n\n Master/Worker \n Loop Parallelism\n Fork/Join\n Shared Data and Queues\n Act ive Messaging\n\n\nPatterns are described on an abstract level and we will also discuss enhancements that can be made to improve performance/scalabi lity but at the cost of code complexity. Practical implementations of thes e patterns are explored in depth in the hands-on exercises.\n\nProgramming exercises use C and Fortran\, with MPI and OpenMP.\n\nTrainer\n\n\nNick B rown\n\nNick is involved with the MSc in High Performance Computing\, is t he course organiser for the Parallel Design Patterns module and also super vises student dissertation projects.\n\nCourse Pre-requisites\n\n\n Abi lity to program in C\, C++ or Fortran.\n Familiarity with using MPI\n Some familiarity with OpenMP is beneficial but not essential\n\n\nPre-co urse setup\n\nAll course delegates will need to bring a wireless enabled l aptop computer with them on the course. If you have an EduRoam account ple ase ensure this is set up beforehand.\n\nPractical exercises will be done using a guest account on ARCHER. You will need to set up your laptop befor e the course with the required software. Setup information is available at for Windows\, Mac a nd Linux.\n\nLearning outcomes\n\nOn completion of this course students sh ould be able to:\n\n\n Recognise different strategies for structuring t he parallelism of a specific problem in hand\n Understand the trade-off s between different approaches to\, and specialisations of\, parallelisati on\n Identify the most appropriate ways to structure code and data with respect to the parallel strategy adopted\n\n\nCourse Materials\n\nCourse materials page rallel-patterns-oxford/\n\nCourse Chat\n\n rallel-Design-Patterns--AQgdLWtTX3_4FR2f~mVmN9UZAg-NeYWacO313M3iWpSFS8Mh\n \n \n\n LOCATION:University of Oxford Conference Room URL: END:VEVENT END:VCALENDAR