BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20260708T182926Z
UID:07ff6879-967c-4c8b-a3ef-2125ff69a84b
DTSTART:20190807T080000Z
DTEND:20190809T163000Z
DESCRIPTION:If you were given a serial problem\, conceptually\, how would y
 ou go about splitting it up into many different parts that could run concu
 rrently on the latest parallel computers?\n\nThe good news is that you don
 't need to reinvent the wheel. Instead\, there are many different approach
 es (called parallel patterns) that have been developed by the community an
 d can be used in a variety of situations. These patterns apply equally wel
 l regardless of whether your problem is computational or data-driven.\n\nU
 nderstanding and being able to apply these patterns also helps in getting 
 to grips with existing parallel codes and optimising poorly performing com
 putation and data codes. Whilst the lectures take a top down approach\, fo
 cusing on the patterns themselves\, the practical exercises give the oppor
 tunity to explore the concepts by implementing pattern-based solutions to 
 problems using common HPC technologies.\n\nThe parallel patterns (known as
  a pattern language) that we cover are split into two categories.\n\nThe c
 losest to the problem area (and most abstract) are parallel algorithm stra
 tegy patterns and include:\n\n\n	Task Parallelism\n	Recursive Splitting\n	
 Geometric Decomposition\n	Pipeline\n	Discrete Event\n	Actors\n\n\nThe othe
 r 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	Active Messaging\n\n\nPatterns are de
 scribed on an abstract level and we will also discuss enhancements that ca
 n be made to improve performance/scalability but at the cost of code compl
 exity. Practical implementations of these patterns are explored in depth i
 n the hands-on exercises.\n\nProgramming exercises use C and Fortran\, wit
 h MPI and OpenMP.\n\nTrainer\n\n\nNick Brown\n\nNick is involved with the 
 MSc in High Performance Computing\, is the course organiser for the Parall
 el Design Patterns module and also supervises student dissertation project
 s.\n\nCourse Pre-requisites\n\n\n	Ability to program in C\, C++ or Fortran
 .\n	Familiarity with using MPI\n	Some familiarity with OpenMP is beneficia
 l but not essential\n\n\nPre-course setup\n\nAll course delegates will nee
 d to bring a wireless enabled laptop computer with them on the course. If 
 you have an EduRoam account please ensure this is set up beforehand.\n\nPr
 actical exercises will be done using a guest account on ARCHER. You will n
 eed to set up your laptop before the course with the required software. Se
 tup information is available at http://www.archer.ac.uk/training/courses/s
 oftware.php for Windows\, Mac and Linux.\n\nLearning outcomes\n\nOn comple
 tion of this course students should be able to:\n\n\n	Recognise different 
 strategies for structuring the parallelism of a specific problem in hand\n
 	Understand the trade-offs between different approaches to\, and specialis
 ations of\, parallelisation\n	Identify the most appropriate ways to struct
 ure code and data with respect to the parallel strategy adopted\n\n\nCours
 e Materials\n\nhttp://www.archer.ac.uk/training/course-material/2019/08/pa
 rallel-patterns-durham/\n\n \n\n \n\n \n\n \nhttps://events.prace-ri.e
 u/event/888/
SUMMARY:Parallel Design Patterns @ EPCC at Durham
URL;VALUE=URI:https://events.prace-ri.eu/event/888/
END:VEVENT
END:VCALENDAR
