25
1 06/23/2 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Embed Size (px)

Citation preview

Page 1: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

1 04/18/23

Introduction to Parallel Programming using OpenCL

Zubair Nawaz (SESAME)

Giannis Ashiotis (ESRF)

Page 2: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Contents

• Why Parallel Programming

• Single core and Multicores

• GPU Architecture

• Introduction to OpenCL and pyOpenCL

• Introduction to pyFAI

• Work with pyFAI

2 04/18/23

Page 3: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Why Parallel Programming ?

3 04/18/23

Page 4: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Single Core

4 04/18/23

Page 5: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Multicore

5 04/18/23

Page 6: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

CPU Vs GPU

6 04/18/23

Page 7: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

CPU Style core

7 04/18/23Credit: Kayvon Fatahalian (Stanford)

Page 8: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Slimming Down

8 04/18/23Credit: Kayvon Fatahalian (Stanford)

Page 9: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

More Space: Double the Number of Cores

9 04/18/23Credit: Kayvon Fatahalian (Stanford)

Page 10: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

…again

10 04/18/23Credit: Kayvon Fatahalian (Stanford)

Page 11: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

And again…

11 04/18/23

Page 12: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Saving yet more space

12 04/18/23

Page 13: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Saving yet more space

13 04/18/23

Page 14: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Gracious amount of parallelism

14 04/18/23

Page 15: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Small or large device

15 04/18/23

Page 16: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Heterogeneous System

16 04/18/23

Page 17: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Installation of OpenCL, pyopencl and pyFAI

17 04/18/23

Page 18: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

INTRODUCTION OF PYFAISynchrotron Radiation Application

18 04/18/23

Page 19: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Extra path traveled by incoming waves AY

Extra path traveled by scattered waves XB

X-Ray Diffraction

Constructive interference occurs(AY − XC) = n (n is an integer)

Page 20: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

BRAGG’s EQUATION

d

dSin

The path difference between ray 1 and ray 2 = 2d Sin

For constructive interference: n = 2d Sin

Ray 1

Ray 2

Deviation = 2

Page 21: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Powder Diffraction

21 04/18/23

Page 22: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

What is a Powder?

• powder = polycrystalline solidlarge number of crystallites of mm length scale

• ideal powders (for diffraction) show random orientation of crystallites

22 04/18/23

Page 23: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Powder Diffraction

a single crystal

23 04/18/23

Tens of crystals hundreds of crystals

Page 24: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

Powder Diffraction

24 04/18/23

Page 25: 1 5/19/2015 Introduction to Parallel Programming using OpenCL Zubair Nawaz (SESAME) Giannis Ashiotis (ESRF)

References

• http://www.matter.org.uk/

25 04/18/23