diff options
author | Derick Huth <derickhuth@gmail.com> | 2014-10-06 12:42:34 -0600 |
---|---|---|
committer | Derick Huth <derickhuth@gmail.com> | 2014-10-06 12:42:34 -0600 |
commit | 8d73c8fcc75556c1df71dd39dd99783f8f86fc3e (patch) | |
tree | 157d627863d76a4c256a27cae27ce2e8566c7ea0 /omega/examples/old_test/lu_spmd.oc-rt | |
parent | e87b55ad69f0ac6211daae741b32c8ee9dcbe470 (diff) | |
parent | 8c646f24570079eac53e58fcf42d0d4fbc437ee3 (diff) | |
download | chill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.tar.gz chill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.tar.bz2 chill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.zip |
Merge pull request #2 from dhuth/master
Moved omega into chill.
Diffstat (limited to 'omega/examples/old_test/lu_spmd.oc-rt')
-rw-r--r-- | omega/examples/old_test/lu_spmd.oc-rt | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/omega/examples/old_test/lu_spmd.oc-rt b/omega/examples/old_test/lu_spmd.oc-rt new file mode 100644 index 0000000..f221d8e --- /dev/null +++ b/omega/examples/old_test/lu_spmd.oc-rt @@ -0,0 +1,58 @@ +>>> symbolic n,lb,ub; +>>> I1 := {[k,i] : 1 <= k < i <= n && lb <= k <= ub}; +>>> I2 := {[k,i,j] : 1 <= k <= i,j <= n && lb <= j <= ub}; +>>> p := {[k,i] : 1, lb <= k <= ub < n && k < i <= n}; +>>> w := {[k,i,j,k,i] : 1 <= k <= i,j <= n && k < lb = j <= ub}; +>>> +>>> T1 := {[k,i] -> [k,i,0,0,0,0,0,0]}; +>>> T2 := {[k,i,j] -> [k,i,1,j,0,0,0,0]}; +>>> Tp := {[k,i] -> [k,i,0,0,1,0,0,0]}; +>>> Tw := {[k,i,j,t1,t2] -> [k,i,1,j,-1,t1,t2,0]}; +>>> +>>> known := {[*,*,*,*,*,*,*,*] : 1 <= lb && ub <= n}; +>>> known2 := {[*,*,*,*,*,*,*,*] : 1 <= lb <= ub <= n}; +>>> +>>> codegen 0 T1:I1,T2:I2,Tp:p,Tw:w given known; +if (lb <= ub) { + for(t1 = 1; t1 <= ub; t1++) { + for(t2 = t1; t2 <= n; t2++) { + if (t1 >= lb && t2 >= t1+1) { + s1(t1,t2); + } + if (ub <= n-1 && t2 >= t1+1 && t1 >= lb) { + s3(t1,t2); + } + for(t4 = max(lb,t1); t4 <= ub; t4++) { + if (t4 >= t1+1 && t4 <= lb) { + s4(t1,t2,t4,t1,t2); + } + s2(t1,t2,t4); + } + } + } +} + +>>> codegen 1 T1:I1,T2:I2,Tp:p,Tw:w given known; +if (lb <= ub) { + for(t1 = 1; t1 <= ub; t1++) { + for(t2 = t1; t2 <= n; t2++) { + if (t1 >= lb && t2 >= t1+1) { + s1(t1,t2); + } + if (ub <= n-1 && t2 >= t1+1 && t1 >= lb) { + s3(t1,t2); + } + for(t4 = max(lb,t1); t4 <= ub; t4++) { + if (t4 >= t1+1 && t4 <= lb) { + s4(t1,t2,t4,t1,t2); + } + s2(t1,t2,t4); + } + } + } +} + +>>> # codegen 2 T1:I1,T2:I2,Tp:p,Tw:w given known; +>>> # codegen 1 T1:I1,T2:I2,Tp:p,Tw:w given known2; +>>> # codegen 2 T1:I1,T2:I2,Tp:p,Tw:w given known2; + |