Changes between Version 55 and Version 56 of DataParallel/VectPragma
 Timestamp:
 Dec 7, 2012 5:10:28 AM (2 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

DataParallel/VectPragma
v55 v56 16 16 Given a function `f`, the vectoriser generates a vectorised version `f_v`, which comprises the original, scalar version of the function and a second version lifted into array space. The lifted version operates on arrays of inputs and produces arrays of results in one parallel computation. The original function name is, then, rebound to use the scalar version referred to by `f_v`. This differs from the original in that it uses vectorised versions for any embedded parallel array computations. 17 17 18 We have got two exceptions to this rule. Firstly, if the body of a function `f` is scalar —i.e., it does not involve any parallel array computations — then we leave it as is and omit the generation of `f_v`. Whether a function is scalar is determined by the rules described in the '''Vectorisation Avoidance''' paper.18 We have got two exceptions to this rule. Firstly, if the body of a function `f` is scalar —i.e., it does not involve any parallel array computations and has scalar argument and result types— then we leave it as is and omit the generation of `f_v`. Whether a function is scalar is determined by the rules described in the '''Vectorisation Avoidance''' paper. 19 19 20 20 Secondly, if a variable `f` is accompanied by a pragma of the form