- if(pid==0) {
- init_queue();
- }
- init_memory();
- init_private();
- init_backoff();
- barrier(Barrier, procs*multi);
- if(pid==0)
- {
- t1=times(&time_val);
- }
- for(i=0;i<iterations;i++) {
- val = private.value;
- enqueue(val);
- for(j=0; j<work;) j++;
- val = dequeue();
- for(j=0; j<work;) j++;
- private.value++;
- }
- barrier(Barrier, procs*multi);
- if(pid==0)
- {
- t2=times(&time_val);
- printf("p%d m%d i%d b%d c%d s%d w%d time %.0f ms.\n",
- procs, multi, iterations*procs*multi,
- backoff_base_bits, backoff_cap_bits,
- backoff_shift_bits, work, ((t2-t1)*1000)/(double)HZ);
- fflush(stdout);
- }
-}
+ parse_args(argc, argv);
+ name = argv[0];
+ iterations = (iterations + ((procs*multi)>>1))/(procs*multi);