BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20260627T231134Z
UID:9057af37-dff7-4f50-9bbd-1d168154707d
DTSTART:20150119T080000Z
DTEND:20150121T170000Z
DESCRIPTION:\n	Objectives\n	The purpose of this training is to provide a pe
 dagogical presentation of C-C++ shared  memory  multicore application pr
 ogramming.  These  programming lan- guages provide  access to a substan
 tial number  of multithreading programming environments and libraries\, 
  like the native threads libraries (Pthreads in Linux- Unix\, Windows thre
 ads) or basic\, general purpose libraries like Boost\, and high level prog
 ramming environments like OpenMP  or the Intel Threading Building Blocks 
 environment.  While the emphasis is put in OpenMP  as a widely adopted s
 tandard\, a broader  vision of multithreading is useful to develop a clea
 r vision of the strategic options open to developers.\n	 \n	The pedagogic
 al  objectives of this training are:\n	 \n	• To provide  a unified pr
 esentation of the basic concepts of multithreading and  shared  memory 
  programming\, underlining  the universality  of these concepts  and 
  discussing  the way in which  they  are  declined  in different pro
 gramming environments.\n\n	 \n	• To  assess  the focus\,  the streng
 ths and  the eventual weaknesses  of the different  programming environ
 ment\,  insisting  on  their  complementarity as well as on their  in
 teroperability.  Examples  are  given on the usage  of Pthreads based
   tools in an OpenMP  environment\, in order  to cope with parallel  c
 ontexts that are not easily handled  in OpenMP.\n	 \n	• To  enhance 
  programmer’s insights on  threads\,   not   multithreading lan- g
 uages\, by focusing on parallel  and concurrent patterns that occur in re
 al applications\, and  by  discussing  useful tricks\, potential pitfal
 ls and  best practices that are largely independent of the underlying  p
 rogramming en- vironment.\n	 \n	 Content\n	 \n	• Introduction to mult
 ithreading\, overview of present hardaware and  soft- ware technologies\n
 	 \n	• Introducing threads\, the relevance of multithreading\n	 \n	•
  Creating and managing  threads\n	 \n	•  Thread safe programming\n	 
 \n	• Concurrent access to shared  data: the need of mutual exclusion\n	
  \n	• Event synchronization of threads\n	 \n	• Memory  coherence  
 and  memory  consistency issues.  The  role of memory consistency mode
 ls.\n	 \n	• Pthread based library  of high level synchronization tools
 .\n	 \n	• Thread pools  as  high  level  thread management  utilit
 ies.    Task  centric programming versus thread centric programming.\n
 	 \n	• Complete overview of OpenMP\, including all the new features of 
 the latest\n	4.0 release.  In depth discussion of task centric programmin
 g in OpenMP.\n	 \n	• Full OpenMP  examples in data parallel  codes\, 
 and in pipelining  threads.\n	 \n	• Coments  on  the impact  and  
 relevance  of the Intel  Threading Building\n	Blocks (TBB)  library.\n	
  \n	 \n	Each  one of this subjects is illustrated with an  important n
 umber  of ad  hoc examples  exhibiting pitfalls and  best practices. 
  A library  of high level utilities that simplify  the programming of de
 licate  concurrency  patterns (like  control parallelism  and  pipel
 ines\,  or point to point synchronizations among individual threads) deve
 lopped  by  the author\, is made  available.    Several  real  com
 plete applications involving a substantial number  of delicate programmin
 g issues are discussed in detail.\n \n Prerequisites\n \nExperience in 
 C programming and some limited knowledge of C++.  Experience in advanced 
  C++ programing  is not  required.   Except  for the TBB  part\, on
 ly very basic C++ constructs (using objects\, simple generic programming)a
 re used\, needed to access C++ libraries.\n Trainer\nVictor Alessandrini\
 n\n	Maison de la Simulation\n\n\nhttps://events.prace-ri.eu/event/309/
SUMMARY:C-C++ Multicore Application Programming @ MdS
URL;VALUE=URI:https://events.prace-ri.eu/event/309/
END:VEVENT
END:VCALENDAR
