48
Evaluating Support for OpenMP Offload Features Jose Monsalve Diaz Swaroop Pophale Kyle Friedline Oscar Hernandez David E. Bernholdt Sunita Chandrasekaran

OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

  • Upload
    others

  • View
    43

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Evaluating Support for OpenMP Offload

Features

Jose Monsalve DiazSwaroop Pophale

Kyle Friedline

Oscar HernandezDavid E. BernholdtSunita Chandrasekaran

Page 2: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Outline

1. Introduction2. Problem statement and contributions3. OpenMP 4.5 offloading4. Methodology5. Experimental Setup 6. Results7. Conclusions

2P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 3: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Introduction

3P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 4: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Current Trends in HPC (Data from Top 500 list: www.top500.org)

OpenMP 1.0

OpenMP 2.0

OpenMP 2.0

OpenMP 2.5

P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 3.0

OpenMP 3.1

OpenMP 4.0

OpenMP 4.5 OpenMP 5.0

Parallel regions Tasking Device offloading 4

Page 5: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Current Trends in HPC(Data from Top 500 list: www.top500.org)

OpenMP 1.0

OpenMP 2.0

OpenMP 2.0

OpenMP 2.5

OpenMP 3.0

OpenMP 3.1

OpenMP 4.0

OpenMP 4.5 OpenMP 5.0

OpenACC 1.0

OpenACC 2.5 OpenACC 2.6

OpenACC 2.0OpenACC 2.7

5

P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 6: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Why Accelerator devices?

● Power wall

● Simpler cores and considerably larger core count

● Programs taking advantage of SIMD and SPMD models○ Better performance/Watt ratio

○ Benefit from large parallelism

But there are still programmability challenges...

6P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 7: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Problem statement and contributions

7P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 8: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Problem statement

Given the specifications of OpenMP 4.5, the multiple compiler implementations that exist, and the different systems where this

programmer model will be used. how to assess the level of compliance of implementations and systems with respect to the

specifications document?

8P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 9: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Problem statementExplanation

Programming model specifications document

“Legal” document that binds the implementation and the user

● Compiler developers guide their products based on the specifications documents. They must respect them to claim support

● Users do not need to learn implementation specific aspects of the programming model. They use the specifications

● What about the system that the user is running on?

9P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 10: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Problem statementExplanation

Programming Model Specifications

Compiler implementer

Programming Model User

System where User is running

Uses specs as guide

for implementation

Uses specs as guide for programming

Uses vendor’s compiler to

support programming model

Uses system as

programming platform

10

P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 11: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Problem statementExplanation

Compiler implementer

Uses specs as guide

for implementation

Programming Model Specifications

Programming Model User

System where User is running

Uses specs as guide for programming

Uses vendor’s compiler to

support programming model

Uses system as

programming platform

How to guarantee an implementation compliance with the specs?

How to guarantee a system compliance with the compiler and programming model?

11P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 12: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Contributions of this work

We are the “lawyers” of the OpenMP 4.5 Specifications:

● Identify extent of OpenMP offload support (target directives) in OpenMP 4.5 implementations such as GCC, Clang/LLVM, IBM XL and Cray CCE

● Analyze support for common code kernels identified across a range of DOE applications and test their support across all accessible OpenMP 4.5 implementations

● Identify and report inconsistencies or bugs in specific implementations to their respective compiler developers

● Present performance data for different directives across different OpenMP 4.5 implementations

12P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 13: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

OpenMP 4.5 Offloading

13P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 14: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

OpenMP 4.5 Machine model

Host Memory

INTERCONNECT

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

14P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 15: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

OpenMP 4.5 Offloading Code Execution Model

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Code

15P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 16: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Code

16P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Code Execution Model

Page 17: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Code

Code

17P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Code Execution Model

Page 18: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Data

18P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Data management model

Page 19: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Data

19P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Data management model

Page 20: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Data

Data

20P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Data management model

Page 21: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Data

21P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Data management model

Page 22: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Host Memory

Target D

evice nTarget

Device 1

………

Host Device memory

Device memory

Data

22P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

OpenMP 4.5 Offloading Data management model

Page 23: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

OpenMP Offloading programming modelTARGET DEVICE

#omp target

#omp parallel for

#omp simd

#omp teams

#omp distribute

TARGET OFFLOADING

Thread team

#omp target// target region

#omp teams // distributed among teams

#omp distribute for (i:0:N)

P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

#omp parallel for for (j:0:M)

#omp simd for (k:0:L) { … }

SIMD Lane

23

Page 24: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Methodology

24P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 25: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Validation of OpenMP 4.5 offloading featuresWorkflow

25P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 26: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Validation of OpenMP 4.5 offloading featuresExample C Code

int num_dev = omp_get_num_devices(); int h_matrix [N*num_dev];

for (int dev = 0; dev < num_dev; ++dev) {#pragma omp target data map(from: h_matrix[dev*N:N]) device(dev) {#pragma omp target map(from: h_matrix[dev*N:N]) device(dev) { for (int i = 0; i < N; ++i) h_matrix[dev*N + i] = dev; } // end target } // end target data } // end for loop

// checking results for (int dev = 0; dev < num_dev; ++dev) { for (int i = dev*N ; i < (dev+1)*N; ++i) OMPVV_TEST(errors, dev != h_matrix[i])); }

Checking data mapping and code offloading on multiple

devices

26P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

123456789

10111213141516171819

Get number of available devices

Map data from selected device to host

Create target region on selected device

Computation offloaded to selected device

Compare results with expected

Page 27: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Comparing runtime overhead

OMPVV_INIT_TEST;for ( i = 0 ; i < NUM_REP ; i ++) { OMPVV_START_TIMER;#pragma omp . . . OMPVV_TEST_LOAD; // if necessary OMPVV_STOP_TIMER; OMPVV_REGISTER_TEST;}OMPVV_PRINT_RESULT;

pseudocode

target exit data map if truetarget exit data map fromtarget exit data map devicetarget exit data map dependtarget exit data map deletetarget enter data map totarget enter data map if truetarget enter data map devicetarget enter data map dependtarget enter data map alloctarget data map tofromtarget data iftarget data devicetarget privatetarget map tofromtarget map totarget map fromtarget is device ptrtarget iftarget firstprivatetarget devicetarget dependtarget defaultmaptarget

27P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 28: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Experimental setup

28P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 29: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Experimental setupSummit’s Node

29P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 30: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Results

30P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])* new results since paper publication

Page 31: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Summary of compiler supported features

31P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

**

Page 32: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Example of problematic featuresXL and defaultmap

Specifications (Section 2.15.5 - page 216):

Test:

enum { VAL1 = 1, VAL2, VAL3, VAL4} scalar_enum = VAL1#pragma omp target { scalar_enum = VAL4; }OMPVV_TEST_AND_SET_VERBOSE(errors, scalar_enum != VAL1);

32P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Failed condition

Page 33: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target directive

33P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 34: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target directive

34P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 35: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target data directive

35P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 36: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target enter/exit data directive

36P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 37: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target enter/exit data directive

37P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 38: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target update directive

38P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 39: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Target update directive

39P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

**

Page 40: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Conclusions

40P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

Page 41: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Conclusions

41P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])

● We have shown how use of accelerators and heterogeneous systems are the current trend in HPC and most likely will continue to increase.

● As a result programming models are fastly adapting to these new architectural features.

● We have shown the importance of a proper methodology to assess support and status of current compiler implementations (GCC, Clang/LLVM, IBM XL and Cray CCE) and the latest DOE Systems.

● We have shown a possible methodology, and the results of applying it to the OpenMP 4.5 specifications, emphasizing offloading features identified in DOE applications.

● As the development continues, we have seen compiler developers fastly adapting and responding to bug reports. We appreciate their effort and responsiveness.

Page 42: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Visit our websitehttps://crpl.cis.udel.edu/ompvvsollve/

Work supported by the U.S. Department of Energy, Office of Science, the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration

under contract number DE-AC05-00OR22725. 42

Contact information:Jose Monsalve ([email protected])Swaroop Pophale ([email protected])Kyle Friedline ([email protected]) Oscar Hernandez ([email protected]) Sunita Chandrasekaran ([email protected])

Page 43: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Copyright

Gavel taken from(Chris Potter - Modifier: Ibrahim.ID): https://commons.wikimedia.org/wiki/File:3D_png_Judges_Gavel.png

Logos under CC0:

● https://pixabay.com/en/papers-stack-heap-documents-576385/● https://pixabay.com/en/gear-wheel-gearwheel-gear-cogs-310906/● https://pixabay.com/en/user-top-view-office-keyboard-154199/● https://pixabay.com/en/brain-cognition-design-art-2029391/● https://pixabay.com/en/computer-workstation-server-monitor-158743/● https://pixabay.com/en/cpu-processor-intel-amd-chip-152656/● https://pixabay.com/en/microprocessor-processor-cpu-chip-152599/● https://pixabay.com/en/computer-cyber-circuitry-circuits-3163436/● https://pixabay.com/en/ram-computer-memory-module-148579/●

43

Page 44: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Back up slides

44

Page 45: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Top 500: Average number of cores per socket

45

Page 46: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Top 500: Number of systems with accelerators

46

Page 47: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Top 500: Number of systems with accelerators

Nvidia vs Intel

47

Page 48: OpenMP Offload Evaluating Support for Features · OpenMP 1.0 OpenMP 2.0 OpenMP 2.0 OpenMP 2.5 OpenMP 3.0 OpenMP 3.1 OpenMP 4.0 OpenMP 4.5 OpenMP 5.0 OpenACC 1.0 OpenACC 2.5 OpenACC

Validation of OpenMP 4.5 offloading features

Design and write tests for OpenMP 4.5 Offloading features:

1. Study the specifications2. Formulate testing methodology3. Write initial test implementation4. Discuss tests with team5. Make corrections, report bugs or request clarifications6. Run and report test result on multiple compilers available to us

a. Main focus on DOE Systems

48P2S2 2018 - University of Oregon at Eugene, OR - Presented by: Jose Monsalve ([email protected])