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);
27 //Write into array elements
29 for(int j=0; j<10000; j++) {
31 val = global new Integer(10);
32 for(int i=start;i<start+nthreads; i++) {
33 mywa[i].val = val.intValue();
39 public static void main(String[] args) {
43 nthreads = Integer.parseInt(args[0]);
46 int[] mid = new int[5];
47 mid[0] = (128<<24)|(195<<16)|(175<<8)|84;//dw-10
48 mid[1] = (128<<24)|(195<<16)|(175<<8)|85;//dw-11
49 mid[2] = (128<<24)|(195<<16)|(175<<8)|86;//dw-12
50 mid[3] = (128<<24)|(195<<16)|(175<<8)|87;//dw-13
51 mid[4] = (128<<24)|(195<<16)|(175<<8)|88;//dw-14
55 wao=global new WriteArrayObj[nthreads*nthreads]; //create array of objects
56 mybarr = global new BarrierServer(nthreads);
60 WriteArrayObjWrap[] wawrap = new WriteArrayObjWrap[nthreads];
63 for(int i=0;i<nthreads; i++) {
64 int start = i * nthreads;
65 wawrap[i] = new WriteArrayObjWrap(global new WriteArrayObj(i,wao, nthreads,start));
69 boolean waitfordone=true;
71 atomic { //Master aborts come from here
77 for(int i =0; i<nthreads; i++)
78 wawrap[i].wa.start(mid[i]);
80 for(int i =0; i<nthreads; i++)
83 System.printString("Finished\n");