Adaptor programmer's guide

  • 格式:pdf
  • 大小:540.49 KB
  • 文档页数:79

1

2

3

4

5

6

7

8

9

10

11

12

1314

15

16

17

18

19

20

21

22

23

24

25

2627

28

29

30

31

32

33

34

35

36

37

38

39

45

46

47

48

49

50

51

52444341

4240P1P2P3P4P1P2P3P4

1

2

3

4

5

6

7

8

9

10

11

12

1345

46

47

48

49

50

51

52444315

16

17

18

19

20

21

22

23

24

25

26

2729

30

31

32

33

34

35

36

37

38

39

40

41

142842-

-

-

-

(a) DISTRIBUTE A (BLOCK)(b) DISTRIBUTE A (BLOCK(14))P1P2P4

1

5

9

13

17

21

2510

14

18

22

2662

2930

3334

50493738P3

7

11

15

19

23

27

31

353

39

414342

454647

514

8

12

16

20

24

28

32

5236

40

44

48P1P2P4P3

1

2

3

46

7

8

1011

12

13

14

151716

1918

20

21

2322

2426

2527

28

29

3031

32

33

34

353637

38

39

40

41

42

43

44

4547

48

49

5051

5259

46

--

--

-

--

-

(a) DISTRIBUTE A (CYCLIC)(b) DISTRIBUTE A (CYCLIC(5))

P

2P

1

P

319202122232425264142434445461112131415161718272930313233343536373928384052515049484710987654321

DISTRIBUTE A (ARBITRARY (6, LENGTH = [10,8,8,12,6,6], MAP = [1,2,3,2,3,1])

P1

P2

P3

P4P1P2P3P4P1

P2

P3

P4

P1

P2

P3

P4P1P2P3P4P1P2P3P4

(b) DISTRIBUTE A(*,BLOCK)(c) DISTRIBUTE A(CYCLIC,*)(d) DISTRIBUTE A(*,CYCLIC)(a) DISTRIBUTE A(BLOCK,*)P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1P

2

P

3P

4P

1P

2

P

3P

4P

1P

2

P

3P

4P

1P

2

P

3P

4

(c) DISTRIBUTE A(BLOCK,CYCLIC)P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

P

1

P

2P

3

P

4

(d) DISTRIBUTE A(CYCLIC,CYCLIC)P

1

P

2P

3

P

4

(a) DISTRIBUTE A(BLOCK,BLOCK)(b) DISTRIBUTE A(CYCLIC,BLOCK)!HPF$ TEMPLATE T(N)

REAL A(N,N), B(N,N)

!HPF$ ALIGN A(I,J) WITH T(J)

!HPF$ ALIGN B(I,J) WITH T(I)123...N

123...

NA

T

123...N1

2

3

...

N

TB

12312312345678

0123456789...123456789...X2X1

12345678TT

X1

X2!HPF$ TEMPLATE T(0:N+1)

REAL X1(N)

REAL X2(N)

!HPF$ ALIGN X1(I) WITH T(I-1)

!HPF$ ALIGN X2(I) WITH T(I+1) REAL X2(N) REAL X1(N)

!HPF$ ALIGN X1(I) WITH T(2*I)!HPF$ TEMPLATE T(1:2*N)

!HPF$ ALIGN X2(I) WITH T(2*I-1)123...N

123...N1

2

3

...

N1

2

3

...

N123...N

1

2

3

...

N!HPF$ TEMPLATE T(N,N)

REAL A(N), B(N)

!HPF$ ALIGN A(I) WITH T(I,3)

!HPF$ ALIGN B(I) WITH T(3,I)

BATT

123...N1

2

3

...

N123...N

T

A123...N

123...N1

2

3

...

NT

B!HPF$ TEMPLATE T(N,N)

REAL A(N), B(N)

!HPF$ ALIGN A(I) WITH T(I,*)

!HPF$ ALIGN B(I) WITH T(*,I)

b(1)

a(1)

d(1)

c(1)b(2)

a(2)

d(2)

c(2)b(3)

a(3)

d(3)

c(3)b(1)b(2)b(3)

a(1)a(2)a(3)

d(1)d(2)d(3)

c(1)c(2)c(3)b(1)b(2)

a(1)a(2)

d(1)d(2)

c(1)c(2)BeginBeginBegin

EndEndEndb(3)

a(3)

d(3)

c(3)FORALL I=1,3

END FORALLDO I=1,3

END DOALLDO I=1,3

END DO c(I) = d(I) a(I) = b(I)

c(I) = d(I) a(I) = b(I)

c(I) = d(I) a(I) = b(I)!HPF$ INDEPENDENT