BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20260621T083156Z
UID:1839561b-b2da-484e-8b16-6a63303e1b80
DTSTART:20121001T060000Z
DTEND:20121004T160000Z
DESCRIPTION:The purpose of this training is to provide a pedagogical presen
 tation of C-C++ shared memory multicore application programming. These pro
 gramming languages provide access to a substantial number of multithreadin
 g programming environments and libraries\, like the native threads librari
 es (Pthreads in Linux-Unix\, Windows threads)\, OpenMP\, the Intel Paralle
 l Suite (Threading Building Blocks\, Cilk++\, ArBB)\, several high level l
 ibraries and\, last but not least\, the new C++ norm adopted in 2011 (C++1
 1) that integrate multithreading in the language specification.The pedagog
 ical objective of this training is to provide a unified presentation of th
 e basic concepts of multithreading and shared memory programming\, underli
 ning the universality of these concepts and discussing the way in which th
 ey are declined in the different programming environments. This training a
 ssesses the focus\, the strengths and the eventual weaknesses of the diffe
 rent programming environment\, insisting on their complementarily as well 
 as on their interoperability. Numerous examples are given on the usage of 
 TBB or Pthreads based tools in an OpenMP environment\, in order to cope wi
 th parallel contexts that are not easily handled in OpenMP.Content\n\n		In
 troduction to multithreading\, overview of present hardware and software t
 echnologies\n	\n		Creating and managing threads\n	\n		Thread safe programm
 ing\n	\n		Concurrent access to shared data: the need of mutual exclusion\n
 	\n		Event synchronization of threads\n	\n		Memory coherence and memory co
 nsistency issues. The role of memory consistency models.\n	\n		Pthreads ba
 sed library of high level synchronization tools.\n	\n		Thread pools as hig
 h level thread management utilities. Task centric programming versus thre
 ad centric programming.\n	\n		Operation of the OpenMP thread pool. In dept
 h discussion of task centric programming in OpenMP.\n	\n		OpenMP examples
  in SPMD programming : three real\, relevant applications.\n	\n		OpenMP ex
 amples in pipelining threads\, using interoperability with Pthreads tools:
  two real relevant applications\n	\n		Comments on hybrid MPI-Multicore pr
 ogramming.\n	\n		The Threading Building Blocks (TBB) library. Complementar
 ily with OpenMP and Pthreads.\n	\n		Overview of Cilk++\n	\n		Overview of A
 rBB (Array Building Blocks)\nLearning outcomesEnhanced programmer’s capa
 bilities in application code design. Enhanced programmer's insights on thr
 eads\, not multithreading languages\, by focusing on parallel and concurre
 nt patterns that occur in real applications\, and by discussing useful tri
 cks\, potential pitfalls and best practices that are largely independent o
 f the underlying programming environmentPrerequisites\n\n		Experience in C
  programming and some very limited knowledge of C++.\n	\n		C++ programming
  is not required.\n\n\nhttps://events.prace-ri.eu/event/60/
SUMMARY:C-C++ Multicore Application Programming
URL;VALUE=URI:https://events.prace-ri.eu/event/60/
END:VEVENT
END:VCALENDAR
