summaryrefslogtreecommitdiff
path: root/omegalib/examples/hpf.out
diff options
context:
space:
mode:
Diffstat (limited to 'omegalib/examples/hpf.out')
-rw-r--r--omegalib/examples/hpf.out59
1 files changed, 0 insertions, 59 deletions
diff --git a/omegalib/examples/hpf.out b/omegalib/examples/hpf.out
deleted file mode 100644
index 3ee21e7..0000000
--- a/omegalib/examples/hpf.out
+++ /dev/null
@@ -1,59 +0,0 @@
->>> # Example taken from
->>> # @INPROCEEDINGS{delft,
->>> # author = {Corinne Ancourt and Fabien Coelho and Fran\c{c}ois Irigoin
->>> # and Ronan Keryell},
->>> # title = {A Linear Algebra Framework for Static HPF Code Distribution},
->>> # booktitle = {Proceedings of the Fourth International Workshop
->>> # on Compilers for Parallel Computers},
->>> # year = 1993,
->>> # month = dec,
->>> # pages = {117-132},
->>> # publisher = {Delft University of Technology}
->>> # }
->>> #
->>> # Generate local code for this HPF code fragment
->>> # !HPF$ template T(0:150,0:150)
->>> # !HPF$ align Y(I,J) with T(3*I,3*J)
->>> A := { [i,j] -> [3i,3j] };
->>> # !HPF$ processors P(0:3, 0:3)
->>> # !HPF$ distribute
->>> # !HPF$ T(cyclic(4), cyclic(4)) onto P
->>> D := { [t1,t2] -> [p1,p2,c1,c2,o1,o2] :
->>> t1 = 16c1+4p1+o1
->>> && t2 = 16c2+4p2+o2
->>> && 0 <= p1,p2 <= 3
->>> && 0 <= o1,o2 <= 3 };
->>> #
->>> # do I = 0, 14
->>> # Y(I,I) = 1.0
->>> # enddo
->>> #
->>> I := { [i] : 0 <= i <= 14 };
->>> Y := { [i] -> [i,i] };
->>> R := D(A(Y(I)));
->>> R;
-{[p1,p1,c1,c1,o1,o1]: exists ( alpha : p1+o1+c1 = 3alpha && 0 <= p1 <= 3, -c1+4 && 0 <= o1 <= 3 && 0 <= c1 <= 2)}
->>>
->>> symbolic P1,P2;
->>> selectLocal := {[P1,P2,c1,c2,o1,o2] -> [c1,c2,o1,o2]};
->>> # We want to iteration the chunk and offset values
->>> # of Y touched by this statement.
->>> # the code given in the above paper is:
->>> # do u3 = 0, 2
->>> # do u4 = 0, 2
->>> # do u5 = max(max(0,intDiv(2+4*p1+16*u3,3)),intDiv(2+4*p2+16*u4),3),
->>> # min(min(14,intDiv(3+4*p1+16*u3,3)),intDiv(3+4*p2+16*u4,3))
->>> # u6 = intDiv(3*u5-4*p1-16*u3,3)
->>> # s1[u3,u4,u5,u6]
->>> #
->>> # We generate:
->>> codegen selectLocal(R);
-if (P1 == P2 && P1 >= 0 && P1 <= 3) {
- for(t1 = 0; t1 <= min(-P1+4,2); t1++) {
- for(t3 = intMod(-P1-t1,3); t3 <= 3; t3 += 3) {
- s0(t1,t1,t3,t3);
- }
- }
-}
-
->>>