!HPF DISTRIBUTE x( BLOCK(SHADOW = 1 ) )
-
is designed to help compiler by specifying that it should set up a guard ring each side of BLOCK in each processor. In example Guard ring has extent 1
-
If x has dimension 100 and 4 processors, we allocate storage for
-
x(1..26) in Processor 1
-
x(24..51) in Processor 2
-
x(49..76) in Processor 3
-
x(74..100) in Processor 4
|
!HPF DISTRIBUTE x( BLOCK( /26,24,24,26/ ) )
-
is designed to specify general BLOCK distribution with in above example
-
x(1..26) in Processor 1
-
x(26..50) in Processor 2
-
x(51..76) in Processor 3
-
x(77..100) in Processor 4
|
!HPF DISTRIBUTE x( INDIRECT(map_array) )
-
is designed to allow an arbitary user array to specify location of x(i)
-
the processor number in map_array(i) would be typically be calculated by your favorite load balancing routine!
|