# HG changeset patch # User Merten Sach # Date 1331662151 -3600 # Node ID 08b37152b48d1a610bc2a0d186cbfd2e069b5ede # Parent 29b273cf3b1ff248d4c4b8d7b8de04221eafba56 cleanup diff -r 29b273cf3b1f -r 08b37152b48d main.c --- a/main.c Tue Mar 13 12:25:48 2012 +0100 +++ b/main.c Tue Mar 13 19:09:11 2012 +0100 @@ -219,7 +219,7 @@ if(msg == (BROADCAST_ACK) && threadData->broadcasterStatus == RECEIVING_ACK) { threadData->receivedACKs++; - if(threadData->receivedACKs == NUM_CORES/2)//chose next broadcaster + if(threadData->receivedACKs == NUM_CORES-2)//chose next broadcaster { do{ receiverID = randomNumber(&seed1, &seed2) % NUM_CORES; @@ -237,7 +237,7 @@ threadData->terminate = TRUE; return; } - // + //I'm the next broadcaster! threadData->broadcasterStatus = BROADCASTING; } @@ -247,8 +247,6 @@ worker_TLF(void* _params, VirtProcr* animatingPr) { unsigned int msgCounter; - unsigned int broadcaster; - uint32_t wait_iterations; WorkerParams* params = (WorkerParams*)_params; unsigned int totalWorkCycles = 0, totalBadCycles = 0; unsigned int totalSyncCycles = 0, totalBadSyncCycles = 0; @@ -279,21 +277,18 @@ msgHandler, params); - lossyCom__endpointID_t receiverID; msgCounter = 0; while(msgCounter <= num_msg_to_send) { - int i; - if(params->broadcasterStatus == BROADCASTING) { if(msgCounter == num_msg_to_send)//send termination msg { - lossyCom__sendMsg(&comEndpoint,BROADCAST_ID, TERMINATE); + lossyCom__broadcastMsg(&comEndpoint, TERMINATE); break; }else{ //generate and send random message params->receivedACKs = 0; - lossyCom__sendMsg(&comEndpoint, BROADCAST_ID, BROADCAST); + lossyCom__broadcastMsg(&comEndpoint, BROADCAST); global_broadcast_counter++; if(global_broadcast_counter % 1000 == 0){ printf("broadcast count: %d\n", global_broadcast_counter); @@ -320,6 +315,7 @@ else {totalBadCycles += numCycles; } #endif + //wait for all threads to finish barrier_wait(params->barrier, animatingPr); params->totalWorkCycles = totalWorkCycles; @@ -344,7 +340,7 @@ /* this is run after the VMS is set up*/ void benchmark(void *_params, VirtProcr *animatingPr) { - int i, cpuID, idx; + int i; struct barrier_t barr; BenchParams *params; @@ -368,12 +364,13 @@ // init random number generator for wait and msg content seed1 = rand()%1000; seed2 = rand()%1000; - + +#ifdef MEASURE_PERF //save cycles before execution of threads, to get total exe cycles measurement_t *startExeCycles, *endExeCycles; startExeCycles = params->startExeCycles; -#ifdef MEASURE_PERF + int nread = read(cycles_counter_main_fd, &(startExeCycles->cycles), sizeof(startExeCycles->cycles)); if(nread<0) perror("Error reading cycles counter");