-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharrayAdditionExperiment.chpl
More file actions
56 lines (39 loc) · 992 Bytes
/
arrayAdditionExperiment.chpl
File metadata and controls
56 lines (39 loc) · 992 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**********************************
* Author: Siobhan Duncan
* Title: Array Addition Experiment
* Last edited: 13/11/2015
* Description
* ------------------
* From Cray's Chapel tutorials 'Data Parallelism, by example'
* Given n-elements vectors A,B and C and constant alpha,
* compute A=B+(alpha*C)
*
***********************************/
use Time;
use CyclicDist;
use BlockDist;
config const n = 500;
config const alpha = 4;
const ProblemSpace = {1..n};
const BlockProblemSpace = {1..n} dmapped Block(boundingBox=ProblemSpace);
const CyclicProblemSpace = {1..n} dmapped Cyclic;
var A,B,C: [CyclicProblemSpace] int;
var X,Y,Z: [BlockProblemSpace] int;
var myTimer: Timer;
forall i in ProblemSpace do{
A[i] = i;
B[i] = i;
C[i] = i;
X[i] = i;
Y[i] = i;
Z[i] = i;
}
//writeln("Initial Array A: ",A);
myTimer.clear();
myTimer.start();
forall i in A do
A = B + alpha * C;
myTimer.stop();
forall i in A do
X = Y + alpha * Z;
//writeln("Final Array A: ",A);