BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/Chicago
X-LIC-LOCATION:America/Chicago
BEGIN:DAYLIGHT
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
TZNAME:CDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20181221T160726Z
LOCATION:D175
DTSTART;TZID=America/Chicago:20181111T113600
DTEND;TZID=America/Chicago:20181111T120000
UID:submissions.supercomputing.org_SC18_sess155_ws_waccpd105@linklings.com
SUMMARY:OpenACC Routine Directive Propagation Using Interprocedural Analys
 is
DESCRIPTION:Workshop\nAccelerators, Heterogeneous Systems, Parallel Progra
 mming Languages, Libraries, and Models, Workshop Reg Pass\n\nOpenACC Routi
 ne Directive Propagation Using Interprocedural Analysis\n\nShivam, Wolfe\n
 \nAccelerator programming today requires the programmer to specify what da
 ta to place in device memory, and what code to run on the accelerator devi
 ce. When programming with OpenACC, directives and clauses are used to tell
  the compiler what data to copy to and from the device, and what code to c
 ompile for and run on the device. In particular, the programmer inserts di
 rectives around code regions, typically loops, to identify compute constru
 cts to be compiled for and run on the device. If the compute construct cal
 ls a procedure, that procedure also needs to marked for device compilation
 , as does any routine called in that procedure, and so on transitively. In
  addition, the marking needs to include the kind of parallelism that is ex
 ploited within the procedure, or within routines called by the procedure. 
 When using separate compilation, the marking where the procedure is define
 d must be replicated in any file where it is called. This causes much frus
 tration when first porting existing programs to GPU programming using Open
 ACC.\n\nThis paper presents an approach to partially automate this process
 . The approach relies on interprocedural analysis (IPA) to analyze OpenACC
  regions and procedure definitions, and to propagate the necessary informa
 tion forward and backward across procedure calls spanning all the linked f
 iles, generating the required accelerator code through recompilation at li
 nk time. This approach can also perform correctness checks to prevent comp
 ilation or runtime errors. This method is implemented in the PGI OpenACC c
 ompiler.
URL:https://sc18.supercomputing.org/presentation/?id=ws_waccpd105&sess=ses
 s155
END:VEVENT
END:VCALENDAR

