BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20210402T160544Z
LOCATION:Track 6
DTSTART;TZID=America/New_York:20201112T143000
DTEND;TZID=America/New_York:20201112T151000
UID:submissions.supercomputing.org_SC20_sess212_ws_llvmf103@linklings.com
SUMMARY:Extending the LLVM/Clang Framework for OpenMP Metadirective Suppor
 t
DESCRIPTION:Workshop\n\nExtending the LLVM/Clang Framework for OpenMP Meta
 directive Support\n\nMishra, Malik, Chapman\n\nOpenMP 5.0 introduces many 
 new directives to meet the demand of emerging high performance computing s
 ystems. Among these new directives, the metadirective and declare variant 
 directives are important to control the execution behavior of a given appl
 ication by compile-time adaptation based on the OpenMP context. The metadi
 rective directive allows the selection of OpenMP directives based on the e
 nclosing OpenMP context as well as on user-defined conditions. The declare
  variant directive declares a specialized variant of a base function and s
 pecifies the context in which that specialized variant is used. Support fo
 r these directives are available in few compilers with some limitations. S
 upport for metadirective is not available in Clang. This paper presents ou
 r implementation of the metadirective directive in Clang. In this paper, w
 e present an implementation which supports the OpenMP 5.0 metadirective sp
 ecification. However, in addition, this work also implements a dynamic ext
 ension to the user-specified conditions. A dynamic evaluation of user-defi
 ned conditions provides programmers more freedom to express a range of ada
 ptive algorithms that improve overall performance of a given application. 
 For example, a program can estimate the cost of execution, with respect to
  time taken or energy consumption, of a kernel based on some dynamic or st
 atic variables and decide whether or not to offload the kernel to GPU usin
 g the metadirective. Since there is a significant lack of knowledge about 
 the usage and performance analysis of metadirective, the work also studies
  its impact on application characteristics. To achieve this, we have modif
 ied several benchmark codes in the Rodinia benchmark suite. The Rodinia be
 nchmark includes applications and kernels which target multi-core CPU and 
 GPU platforms which helps programmers study the emerging computing platfor
 ms. Our modification to the Rodinia benchmarks enables the application dev
 eloper to study the behavior of metadirective. Our analysis reveal that th
 e main advantage of the dynamic implementation of metadirective is that it
  adds minimal to no overhead to the user application, in addition to allow
 ing flexibility to the programmers to introduce portability and adaptabili
 ty to their code. Our modification of the Rodinia benchmark suite provides
  several guidelines for programmers to achieve better performance with met
 adirective.\n\nRegistration Category: Workshop Reg Pass
END:VEVENT
END:VCALENDAR

