public static void enterBarrier(Barrier b) {
int tmp;
- boolean retry=true;
+ boolean retry=true, ret1=false, ret2=true;;
do {
atomic {
if(b.numthreads > 1)
b.cleared=true;
b.entercount--;
- return;
+ //return;
+ ret1 = true;
}
retry=false;
}
}
} while(retry);
-
- while(true) {
+ if (ret1) return;
+ while(ret2) {
atomic {
if (b.cleared) {
b.entercount--;
int count = b.entercount;
if (count==0)
b.cleared=false;
- return;
+ //return;
+ ret2=false;
}
}
}
if (timers.containsKey(name)) {
System.printString("JGFInstrumentor.addTimer: warning - timer " + name +
- " already exists");
+ " already exists\n");
}
else {
timers.put(name, new JGFTimer(name));
if (timers.containsKey(name)) {
System.printString("JGFInstrumentor.addTimer: warning - timer " + name +
- " already exists");
+ " already exists\n");
}
else {
timers.put(name, new JGFTimer(name,opname));
if (timers.containsKey(name)) {
System.printString("JGFInstrumentor.addTimer: warning - timer " + name +
- " already exists");
+ " already exists\n");
}
else {
timers.put(name, new JGFTimer(name,opname,size));
}
else {
System.printString("JGFInstrumentor.startTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
}
else {
System.printString("JGFInstrumentor.stopTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
}
else {
System.printString("JGFInstrumentor.addOpsToTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
}
else {
System.printString("JGFInstrumentor.addTimeToTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
else {
System.printString("JGFInstrumentor.readTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
time = 0.0;
}
return time;
}
else {
System.printString("JGFInstrumentor.resetTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
}
else {
System.printString("JGFInstrumentor.printTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
}
else {
System.printString("JGFInstrumentor.printTimer: failed - timer " + name +
- " does not exist");
+ " does not exist\n");
}
}
header = base + "3 - Size B";
}
- System.printString(header);
+ System.printString(header+"\n");
if (nthreads == 1) {
- System.printString("Executing on " + nthreads + " thread");
+ System.printString("Executing on " + nthreads + " thread\n");
}
else {
- System.printString("Executing on " + nthreads + " threads");
+ System.printString("Executing on " + nthreads + " threads\n");
}
- System.printString("");
+ System.printString("\n");
}
}
if(argv.length != 0 ) {
nthreads = Integer.parseInt(argv[0]);
} else {
- System.printString("The no of threads has not been specified, defaulting to 1");
- System.printString(" ");
+ System.printString("The no of threads has not been specified, defaulting to 1\n");
+ System.printString(" \n");
nthreads = 1;
}
JGFInstrumentor.printHeader(2,0,nthreads);
JGFLUFactBench lub;
atomic {
- //lub = global new JGFLUFactBench(nthreads, instr);
lub = global new JGFLUFactBench(nthreads);
}
int size = 0;
- //lub.JGFrun(0);
JGFInstrumentor.addTimer("Section2:LUFact:Kernel", "Mflops", size, instr.timers);
atomic {
lub.JGFsetsize(size);
lub.JGFinitialise();
}
JGFLUFactBench.JGFkernel(lub);
+ System.printString("End of JGFkernel\n");
int retval;
atomic {
retval = lub.JGFvalidate();
}
+ System.printString("End of JGFvalidate\n");
if(retval == 1) {
- System.printString("Validation failed");
+ System.printString("Validation failed\n");
}
//JGFLUFactBench.JGFvalidate(lub);
public void start(){
- if (on) System.printString("Warning timer " + " was already turned on");
+ if (on) System.printString("Warning timer " + " was already turned on\n");
on = true;
start_time = System.currentTimeMillis();
}
public void stop(){
time += (double) (System.currentTimeMillis()-start_time) / 1000.;
- if (!on) System.printString("Warning timer " + " wasn't turned on");
+ if (!on) System.printString("Warning timer " + " wasn't turned on\n");
calls++;
on = false;
}
}
public void longprint(){
- System.printString("Timer Calls Time(s) Performance("+opname+"/s)");
- System.printString(name + " " + calls + " " + (long)time + " " + (long)this.perf());
+ System.printString("Timer Calls Time(s) Performance("+opname+"/s)\n");
+ System.printString(name + " " + calls + " " + (long)time + " " + (long)this.perf() + "\n");
}
public void print(){
if (opname.equals("")) {
- System.printString(name + " " + (long)time + " (s)");
+ System.printString(name + " " + (long)time + " (s)\n");
}
else {
if(size == 0) {
- System.printString(name + ":SizeA" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
+ System.printString(name + ":SizeA" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)\n");
} else if (size == 1) {
- System.printString(name + ":SizeB" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
+ System.printString(name + ":SizeB" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)\n");
} else if (size == 2) {
- System.printString(name + ":SizeC" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
+ System.printString(name + ":SizeC" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)\n");
} else{
- System.printString(name + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
+ System.printString(name + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)\n");
}
}
}
while ( name.length() < 40 ) name = name + " ";
System.printString(name + "\t" + (long)this.perf() + "\t"
- + " ("+opname+"/s)");
+ + " ("+opname+"/s)\n");
}
}
}
// synchronise threads
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
+
// zero pivot implies this column already triangularized
boolean b;
atomic {
}
if (b) {
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
// interchange if necessary
atomic {
if(lid == 0 ) {
}
// synchronise threads
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
// compute multipliers
atomic {
t = -1.0/col_k[k];
}
// synchronise threads
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
// row elimination with column indexing
atomic {
slice = ((nlocal-kp1) + nthreads-1)/nthreads;
}
// synchronise threads
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
} else {
info = k;
}
Barrier.enterBarrier(tmpbr);
+ System.clearPrefetchCache();
}
}