11.07.2015 Views

A Compiler for Parallel Exeuction of Numerical Python Programs on ...

A Compiler for Parallel Exeuction of Numerical Python Programs on ...

A Compiler for Parallel Exeuction of Numerical Python Programs on ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

solve <str<strong>on</strong>g>for</str<strong>on</strong>g> unknown parameters <str<strong>on</strong>g>of</str<strong>on</strong>g> E using an integer programming solver. The equati<strong>on</strong>s arederived as follows:1. E can be c<strong>on</strong>strained such that the m-th comp<strong>on</strong>ent <str<strong>on</strong>g>of</str<strong>on</strong>g> E must be a superset <str<strong>on</strong>g>of</str<strong>on</strong>g>RCSLMAD L m . The idea is to assume that <str<strong>on</strong>g>for</str<strong>on</strong>g> each V ɛD, there exists a point V ′ ɛD ′such that V ′ = V + {t m1 , t m2 , ..., t mn } and that E(m)(V ′ ) = L m (V ). The values t mkare assumed to be unknown integer c<strong>on</strong>stants. The following equati<strong>on</strong>s can be stated:d∑d∑b m + p k ∗ i k = b ′ m + p k ∗ (i k + t mk ) (5.51)k=1k=1u ′ 1 ≥ u k + t m1 (5.52)u ′ 2 ≥ u 2 + t m2 (5.53).u ′ d ≥ u d + t md (5.54)t m1 ≥ 0 (5.55)t m2 ≥ 0 (5.56).t mk ≥ 0 (5.57)If suitable integer values are found <str<strong>on</strong>g>for</str<strong>on</strong>g> the unknowns t mk and u ′ kthat satisfy the abovec<strong>on</strong>straints, then E is a superset <str<strong>on</strong>g>of</str<strong>on</strong>g> the uni<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> the RCSLMADs by c<strong>on</strong>structi<strong>on</strong>.2. Each comp<strong>on</strong>ent <str<strong>on</strong>g>of</str<strong>on</strong>g> E must be an RCSLMAD and must there<str<strong>on</strong>g>for</str<strong>on</strong>g>e satisfy c<strong>on</strong>straintsrelating the upper bounds and strides.For each integer k such that 2 ≤ k ≤ dd∑p ′ k ≥ p d + (p j ∗ (u ′ j − 1)) (5.58)j=k+13. From the definiti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> an ERL, the difference between any pair <str<strong>on</strong>g>of</str<strong>on</strong>g> bases (b ′ x, b ′ y shouldbe less than stride p d in the last dimensi<strong>on</strong>.For {(x, y)|1 ≤ x ≤ n, 1 ≤ y ≤ n, x ≠ y}b x − b y ≤ p d − 1 (5.59)These inequalities <str<strong>on</strong>g>for</str<strong>on</strong>g>ms a set <str<strong>on</strong>g>of</str<strong>on</strong>g> (n − 1) 2 c<strong>on</strong>straints necessary <str<strong>on</strong>g>for</str<strong>on</strong>g> ensuring that E isan ERL.Thus a total <str<strong>on</strong>g>of</str<strong>on</strong>g> n equality c<strong>on</strong>straints and n ∗ d + (d − 1) + (n − 1) 2 inequality c<strong>on</strong>straintscan be derived <str<strong>on</strong>g>for</str<strong>on</strong>g> a total <str<strong>on</strong>g>of</str<strong>on</strong>g> n + d + n ∗ d unknowns. The unknown variables are u ′ k , b′ m45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!