1 /**************************************************************************
3 * Java Grande Forum Benchmark Suite - Thread Version 1.0 *
7 * Java Grande Benchmarking Project *
11 * Edinburgh Parallel Computing Centre *
13 * email: epcc-javagrande@epcc.ed.ac.uk *
16 * This version copyright (c) The University of Edinburgh, 2001. *
17 * All rights reserved. *
19 **************************************************************************/
20 public class JGFSORBench {
29 public JGFSORBench(int nthreads){
30 this.nthreads = nthreads;
31 datasizes = new int[4];
36 JACOBI_NUM_ITER = 100;
37 RANDOM_SEED = 10101010;
41 public void JGFsetsize(int size){
45 public static void JGFkernel(JGFSORBench sor) {
46 int numthreads, datasize;
51 numthreads = sor.nthreads;
52 datasize = sor.datasizes[sor.size];
53 G = new double[datasize][datasize];
54 num_iterations = sor.JACOBI_NUM_ITER;
55 RANDOM_SEED = sor.RANDOM_SEED;
58 double omega_over_four = omega * 0.25;
59 double one_minus_omega = 1.0 - omega;
61 // update interior points
63 SORWrap sorWrap = new SORWrap(new SORRunner(0,omega,G,num_iterations,numthreads, RANDOM_SEED));
66 for (int i=1; i<G.length-1; i++) {
67 for (int j=1; j<G.length-1; j++) {
68 sor.Gtotal += G[i][j];
74 public int JGFvalidate(){
77 refval = new double[4];
78 refval[0] = 0.498574406322512;
79 refval[1] = 1.1234778980135105;
80 refval[2] = 1.9954895063582696;
81 // refval[3] = 2.654895063582696;
82 // refval[3] = 31.984487737222523;
84 double dev = Math.abs(Gtotal - refval[size]);
86 System.out.println("Validation failed");
87 System.out.println("Gtotal = " + Gtotal + " dev=" + dev + " sizeParam=" + size);
89 System.out.println("Validataion Success! dev="+dev);