Skip to content

Commit b56da77

Browse files
committed
Add files from the presentation slides
Signed-off-by: Danila Fedorin <daniel.fedorin@hpe.com>
1 parent 44b7520 commit b56da77

10 files changed

+154
-0
lines changed

01-heat-1D-serial.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
config const nx = 100000;
2+
config const N = 10000;
3+
const alpha = 0.1;
4+
5+
const omega = {0..<nx},
6+
omegaHat = omega.expand(-1);
7+
8+
var u: [omega] real = 1.0;
9+
u[nx/4..3*nx/4] = 2.0;
10+
var un = u;
11+
12+
for 1..N {
13+
un <=> u;
14+
for i in omegaHat do
15+
u[i] = un[i] + alpha *
16+
(un[i-1]2*un[i] + un[i+1]);
17+
}

02-heat-1D-buggy.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
config const nx = 100000;
2+
config const N = 10000;
3+
const alpha = 0.1;
4+
5+
const omega = {0..<nx},
6+
omegaHat = omega.expand(-1);
7+
8+
var u: [omega] real = 1.0;
9+
u[nx/4..3*nx/4] = 2.0;
10+
var un = u;
11+
12+
for 1..N {
13+
un <=> u;
14+
for i in omega do
15+
u[i] = un[i] + alpha *
16+
(un[i-1]2*un[i] + un[i+1]);
17+
}

03-heat-1D.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
config const nx = 100000;
2+
config const N = 10000;
3+
const alpha = 0.1;
4+
5+
const omega = {0..<nx},
6+
omegaHat = omega.expand(-1);
7+
8+
var u: [omega] real = 1.0;
9+
u[nx/4..3*nx/4] = 2.0;
10+
var un = u;
11+
12+
for 1..N {
13+
un <=> u;
14+
forall i in omegaHat do
15+
u[i] = un[i] + alpha *
16+
(un[i-1]2*un[i] + un[i+1]);
17+
}

04-basic-on.chpl

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
writeln("Hello from locale ", here.id);
2+
3+
var A: [1..2, 1..2] real;
4+
5+
on Locales[1] {
6+
var B: [1..2, 1..2] real;
7+
8+
B = 2 * A;
9+
}

05-gpus.chpl

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
var x = 10;
2+
3+
4+
on here.gpus[0] {
5+
var A = [1, 2, 3, 4, 5, ...];
6+
forall a in A do a += 1;
7+
}
8+
9+
writeln(x);

06-heat-1D-gpu.chpl

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
config const nx = 100000;
2+
config const N = 10000;
3+
const alpha = 0.1;
4+
5+
on here.gpus[0] {
6+
const omega = {0..<nx},
7+
omegaHat = omega.expand(-1);
8+
9+
var u: [omega] real = 1.0;
10+
u[nx/4..3*nx/4] = 2.0;
11+
var un = u;
12+
13+
for 1..N {
14+
un <=> u;
15+
forall i in omegaHat do
16+
u[i] = un[i] + alpha *
17+
(un[i-1]2*un[i] + un[i+1]);
18+
}
19+
}

07-heat-1D-block.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
config const nx = 100000;
2+
config const N = 10000;
3+
const alpha = 0.1;
4+
5+
const omega = blockDist.createDomain({0..<nx}),
6+
omegaHat = omega.expand(-1);
7+
8+
var u: [omega] real = 1.0;
9+
u[nx/4..3*nx/4] = 2.0;
10+
var un = u;
11+
12+
for 1..N {
13+
un <=> u;
14+
forall i in omegaHat do
15+
u[i] = un[i] + alpha *
16+
(un[i-1]2*un[i] + un[i+1]);
17+
}

08-heat-2D.chpl

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const omega = {0..<nx, 0..<ny},
2+
omegaHat = omega.expand(-1);
3+
4+
var u: [omega] real = 1.0;
5+
u[nx/4..nx/2, ny/4..ny/2] = 2.0;
6+
var un = u;
7+
8+
for 1..N {
9+
un <=> u
10+
forall (i, j) in omegaHat do
11+
u[i, j] = un[i, j] + alpha * (
12+
un[i-1, j] + un[i, j-1] +
13+
un[i+1, j] + un[i, j+1]
14+
4 * un[i, j]);
15+
}

09-heat-2D-block.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use BlockDist;
2+
3+
const omega = blockDist.createDomain(0..<nx, 0..<ny),
4+
omegaHat = omega.expand(-1);
5+
6+
var u: [omega] real = 1.0;
7+
u[nx/4..nx/2, ny/4..ny/2] = 2.0;
8+
var un = u;
9+
10+
for 1..N {
11+
un <=> u
12+
forall (i, j) in omegaHat do
13+
u[i, j] = un[i, j] + alpha * (
14+
un[i-1, j] + un[i, j-1] +
15+
un[i+1, j] + un[i, j+1]
16+
4 * un[i, j]);
17+
}

10-heat-2D-stencil.chpl

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use StencilDist;
2+
3+
const omega = stencilDist.createDomain(0..<nx, 0..<ny),
4+
omegaHat = omega.expand(-1);
5+
6+
var u: [omega] real = 1.0;
7+
u[nx/4..nx/2, ny/4..ny/2] = 2.0;
8+
var un = u;
9+
10+
for 1..N {
11+
un <=> u
12+
forall (i, j) in omegaHat do
13+
u[i, j] = un[i, j] + alpha * (
14+
un[i-1, j] + un[i, j-1] +
15+
un[i+1, j] + un[i, j+1]
16+
4 * un[i, j]);
17+
}

0 commit comments

Comments
 (0)