1 public class WriteArrayObj extends Thread {
6 public WriteArrayObj() {
9 public WriteArrayObj(int lower, WriteArrayObj[] wa, int nthreads, int start) {
12 this.nthreads = nthreads;
18 barr = new Barrier("128.195.175.84");
19 //Create array objects locally
20 atomic { //Remote machine aborts come from here
21 for(int i=lower; i<nthreads*nthreads; i=i+nthreads) {
22 mywa[i] = global new WriteArrayObj();
26 Barrier.enterBarrier(barr);
28 //Write into array elements
30 for(int j=0; j<10000; j++) {
32 val = global new Integer(10);
33 for(int i=start;i<start+nthreads; i++) {
34 mywa[i].val = val.intValue();
41 public static void main(String[] args) {
45 nthreads = Integer.parseInt(args[0]);
48 int[] mid = new int[5];
49 mid[0] = (128<<24)|(195<<16)|(175<<8)|84;//dw-10
50 mid[1] = (128<<24)|(195<<16)|(175<<8)|85;//dw-11
51 mid[2] = (128<<24)|(195<<16)|(175<<8)|86;//dw-12
52 mid[3] = (128<<24)|(195<<16)|(175<<8)|87;//dw-13
53 mid[4] = (128<<24)|(195<<16)|(175<<8)|88;//dw-14
57 wao=global new WriteArrayObj[nthreads*nthreads]; //create array of objects
58 mybarr = global new BarrierServer(nthreads);
62 WriteArrayObjWrap[] wawrap = new WriteArrayObjWrap[nthreads];
65 for(int i=0;i<nthreads; i++) {
66 int start = i * nthreads;
67 wawrap[i] = new WriteArrayObjWrap(global new WriteArrayObj(i,wao, nthreads,start));
71 boolean waitfordone=true;
73 atomic { //Master aborts come from here
79 for(int i =0; i<nthreads; i++)
80 wawrap[i].wa.start(mid[i]);
82 for(int i =0; i<nthreads; i++)
85 System.printString("Finished\n");