summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--all_pairs/source/adpcm_dec/adpcm_dec.c2
-rw-r--r--all_pairs/source/adpcm_enc/adpcm_enc.c2
-rw-r--r--all_pairs/source/ammunition/ammunition.c2
-rw-r--r--all_pairs/source/anagram/anagram.c2
-rw-r--r--all_pairs/source/audiobeam/audiobeam.c2
-rw-r--r--all_pairs/source/cjpeg_transupp/cjpeg_transupp.c2
-rw-r--r--all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c2
-rw-r--r--all_pairs/source/cleanupSemaphores.c4
-rw-r--r--all_pairs/source/dijkstra/dijkstra.c2
-rw-r--r--all_pairs/source/empty.c2
-rw-r--r--all_pairs/source/epic/epic.c2
-rw-r--r--all_pairs/source/extra.h52
-rw-r--r--all_pairs/source/fmref/fmref.c2
-rw-r--r--all_pairs/source/g723_enc/g723_enc.c2
-rw-r--r--all_pairs/source/gsm_dec/gsm_dec.c2
-rw-r--r--all_pairs/source/gsm_enc/gsm_enc.c2
-rw-r--r--all_pairs/source/h264_dec/h264_dec.c2
-rw-r--r--all_pairs/source/huff_dec/huff_dec.c2
-rw-r--r--all_pairs/source/huff_enc/huff_enc.c2
-rw-r--r--all_pairs/source/mpeg2/mpeg2.c2
-rw-r--r--all_pairs/source/ndes/ndes.c2
-rw-r--r--all_pairs/source/petrinet/petrinet.c2
-rw-r--r--all_pairs/source/rijndael_dec/rijndael_dec.c2
-rw-r--r--all_pairs/source/rijndael_enc/rijndael_enc.c2
-rw-r--r--all_pairs/source/statemate/statemate.c2
-rw-r--r--all_pairs/source/susan/susan.c2
-rwxr-xr-xdis/Makefile34
27 files changed, 86 insertions, 52 deletions
diff --git a/all_pairs/source/adpcm_dec/adpcm_dec.c b/all_pairs/source/adpcm_dec/adpcm_dec.c
index 6811e69..04a5746 100644
--- a/all_pairs/source/adpcm_dec/adpcm_dec.c
+++ b/all_pairs/source/adpcm_dec/adpcm_dec.c
@@ -708,7 +708,7 @@ void _Pragma( "entrypoint" ) adpcm_dec_main( void )
708int main(int argc, char **argv) 708int main(int argc, char **argv)
709{ 709{
710 SET_UP 710 SET_UP
711 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 711 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
712 START_LOOP 712 START_LOOP
713 adpcm_dec_init(); 713 adpcm_dec_init();
714 adpcm_dec_main(); 714 adpcm_dec_main();
diff --git a/all_pairs/source/adpcm_enc/adpcm_enc.c b/all_pairs/source/adpcm_enc/adpcm_enc.c
index d9fb09a..464768f 100644
--- a/all_pairs/source/adpcm_enc/adpcm_enc.c
+++ b/all_pairs/source/adpcm_enc/adpcm_enc.c
@@ -747,7 +747,7 @@ void _Pragma( "entrypoint" ) adpcm_enc_main(void)
747int main(int argc, char **argv) 747int main(int argc, char **argv)
748{ 748{
749 SET_UP 749 SET_UP
750 for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 750 for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
751 START_LOOP 751 START_LOOP
752 adpcm_enc_init(); 752 adpcm_enc_init();
753 adpcm_enc_main(); 753 adpcm_enc_main();
diff --git a/all_pairs/source/ammunition/ammunition.c b/all_pairs/source/ammunition/ammunition.c
index 224babd..269f4c0 100644
--- a/all_pairs/source/ammunition/ammunition.c
+++ b/all_pairs/source/ammunition/ammunition.c
@@ -1174,7 +1174,7 @@ void _Pragma( "entrypoint" ) ammunition_main( void )
1174int main( int argc, char **argv ) 1174int main( int argc, char **argv )
1175{ 1175{
1176 SET_UP 1176 SET_UP
1177 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 1177 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
1178 START_LOOP 1178 START_LOOP
1179 ammunition_init(); 1179 ammunition_init();
1180 ammunition_main(); 1180 ammunition_main();
diff --git a/all_pairs/source/anagram/anagram.c b/all_pairs/source/anagram/anagram.c
index 8f140a3..b458fd2 100644
--- a/all_pairs/source/anagram/anagram.c
+++ b/all_pairs/source/anagram/anagram.c
@@ -659,7 +659,7 @@ int main(int argc, char **argv)
659 SET_UP 659 SET_UP
660 //int jobsComplete; 660 //int jobsComplete;
661 //int maxJobs=100; 661 //int maxJobs=100;
662 //for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 662 //for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
663 START_LOOP 663 START_LOOP
664 anagram_init(); 664 anagram_init();
665 anagram_main(); 665 anagram_main();
diff --git a/all_pairs/source/audiobeam/audiobeam.c b/all_pairs/source/audiobeam/audiobeam.c
index ed5d656..208de80 100644
--- a/all_pairs/source/audiobeam/audiobeam.c
+++ b/all_pairs/source/audiobeam/audiobeam.c
@@ -581,7 +581,7 @@ int main( int argc, char **argv )
581 //SET_UP 581 //SET_UP
582 int jobsComplete; 582 int jobsComplete;
583 int maxJobs=100; 583 int maxJobs=100;
584 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 584 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
585 // START_LOOP 585 // START_LOOP
586 audiobeam_init(); 586 audiobeam_init();
587 audiobeam_main(); 587 audiobeam_main();
diff --git a/all_pairs/source/cjpeg_transupp/cjpeg_transupp.c b/all_pairs/source/cjpeg_transupp/cjpeg_transupp.c
index e77d15b..3f48539 100644
--- a/all_pairs/source/cjpeg_transupp/cjpeg_transupp.c
+++ b/all_pairs/source/cjpeg_transupp/cjpeg_transupp.c
@@ -707,7 +707,7 @@ void _Pragma ( "entrypoint" ) cjpeg_transupp_main( void )
707int main(int argc, char **argv) 707int main(int argc, char **argv)
708{ 708{
709 SET_UP 709 SET_UP
710 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 710 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
711 START_LOOP 711 START_LOOP
712 cjpeg_transupp_init(); 712 cjpeg_transupp_init();
713 cjpeg_transupp_main(); 713 cjpeg_transupp_main();
diff --git a/all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c b/all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c
index 7bef7ab..278725c 100644
--- a/all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c
+++ b/all_pairs/source/cjpeg_wrbmp/cjpeg_wrbmp.c
@@ -211,7 +211,7 @@ int cjpeg_wrbmp_return()
211int main(int argc, char **argv) 211int main(int argc, char **argv)
212{ 212{
213 SET_UP 213 SET_UP
214 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 214 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
215 START_LOOP 215 START_LOOP
216 cjpeg_wrbmp_init(); 216 cjpeg_wrbmp_init();
217 cjpeg_wrbmp_main(); 217 cjpeg_wrbmp_main();
diff --git a/all_pairs/source/cleanupSemaphores.c b/all_pairs/source/cleanupSemaphores.c
index 71ff989..dde2bb3 100644
--- a/all_pairs/source/cleanupSemaphores.c
+++ b/all_pairs/source/cleanupSemaphores.c
@@ -3,8 +3,4 @@
3int main(){ 3int main(){
4 sem_unlink("/firstTacleSem"); 4 sem_unlink("/firstTacleSem");
5 sem_unlink("/secondTacleSem"); 5 sem_unlink("/secondTacleSem");
6 sem_unlink("/thirdTacleSem");
7 sem_unlink("/fourthTacleSem");
8 //no longer in use; delete last line after running once
9 //sem_unlink("/cacheTacleSem");
10} 6}
diff --git a/all_pairs/source/dijkstra/dijkstra.c b/all_pairs/source/dijkstra/dijkstra.c
index af86ea6..1b6a52f 100644
--- a/all_pairs/source/dijkstra/dijkstra.c
+++ b/all_pairs/source/dijkstra/dijkstra.c
@@ -193,7 +193,7 @@ void _Pragma( "entrypoint" ) dijkstra_main( void )
193int main(int argc, char** argv ) 193int main(int argc, char** argv )
194{ 194{
195 SET_UP 195 SET_UP
196 for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 196 for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
197 START_LOOP 197 START_LOOP
198 dijkstra_init(); 198 dijkstra_init();
199 dijkstra_main(); 199 dijkstra_main();
diff --git a/all_pairs/source/empty.c b/all_pairs/source/empty.c
index e4fd214..c7c5f5d 100644
--- a/all_pairs/source/empty.c
+++ b/all_pairs/source/empty.c
@@ -3,7 +3,7 @@
3int main(int argc, char **argv) 3int main(int argc, char **argv)
4{ 4{
5 SET_UP 5 SET_UP
6 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 6 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
7 START_LOOP 7 START_LOOP
8 STOP_LOOP 8 STOP_LOOP
9 } 9 }
diff --git a/all_pairs/source/epic/epic.c b/all_pairs/source/epic/epic.c
index 13ba442..e258a4a 100644
--- a/all_pairs/source/epic/epic.c
+++ b/all_pairs/source/epic/epic.c
@@ -1130,7 +1130,7 @@ int epic_return(){
1130int main( int argc, char **argv ) 1130int main( int argc, char **argv )
1131{ 1131{
1132 SET_UP 1132 SET_UP
1133 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 1133 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
1134 START_LOOP 1134 START_LOOP
1135 epic_init(); 1135 epic_init();
1136 epic_main(); 1136 epic_main();
diff --git a/all_pairs/source/extra.h b/all_pairs/source/extra.h
index bdbd1f5..0681250 100644
--- a/all_pairs/source/extra.h
+++ b/all_pairs/source/extra.h
@@ -19,6 +19,7 @@
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE. 20 * SOFTWARE.
21 **/ 21 **/
22#define _GNU_SOURCE
22#include <fcntl.h> 23#include <fcntl.h>
23#include <limits.h> 24#include <limits.h>
24#include <semaphore.h> 25#include <semaphore.h>
@@ -30,23 +31,31 @@
30#include <sys/stat.h> 31#include <sys/stat.h>
31#include <time.h> 32#include <time.h>
32#include <unistd.h> 33#include <unistd.h>
34#include <sched.h>
35
36// This is only visible if _GNU_SOURCE is defined, and that define does not
37// come along to places where this file is included. Address this by manually
38// forcing it into the global namespace.
39extern int sched_getcpu();
33 40
34// Benchmarks use SET_UP, START_LOOP, STOP_LOOP, and WRITE_TO_FILE 41// Benchmarks use SET_UP, START_LOOP, STOP_LOOP, and WRITE_TO_FILE
35// These are macros so that we can declare and maintain additional state inside 42// These are macros so that we can declare and maintain additional state inside
36// the benchmark. 43// the benchmark.
37#define SET_UP if (argc < 8) {\ 44#define SET_UP if (argc != 8) {\
38 printf("Usage: %s <name> <runs> <my core> <other core> <other program> <runID> <lockID>", argv[0]);\ 45 printf("Usage: %s <name> <runs> <my core> <other core> <other program> <runID> <lockID>", argv[0]);\
39 exit(1);\ 46 exit(1);\
40 }\ 47 }\
41 char * thisProgram = argv[1];\ 48 char * thisProgram = argv[1];\
42 int maxJobs = atoi(argv[2]);\ 49 int maxJobs = atoi(argv[2]);\
43 char * thisCore = argv[3];\ 50 unsigned int thisCore = atoi(argv[3]);\
44 char * otherCore = argv[4];\ 51 unsigned int otherCore = atoi(argv[4]);\
52 thisCore = sched_getcpu();\
45 char * otherProgram = argv[5];\ 53 char * otherProgram = argv[5];\
46 char * runID = argv[6];\ 54 char * runID = argv[6];\
47 int lockID = atoi(argv[7]);\ 55 int lockID = atoi(argv[7]);\
48 struct timespec start, end;\ 56 struct timespec _start, _end;\
49 int jobsComplete;\ 57 int jobsComplete;\
58 int jobs_complete = -1;\
50 long * startS = malloc(sizeof(long) *maxJobs);\ 59 long * startS = malloc(sizeof(long) *maxJobs);\
51 long * startN = malloc(sizeof(long) *maxJobs);\ 60 long * startN = malloc(sizeof(long) *maxJobs);\
52 long * endS = malloc(sizeof(long) *maxJobs);\ 61 long * endS = malloc(sizeof(long) *maxJobs);\
@@ -81,14 +90,19 @@
81 perror("Error mapping shared memory");\ 90 perror("Error mapping shared memory");\
82 exit(1);\ 91 exit(1);\
83 }\ 92 }\
84 int error;\
85 int val; 93 int val;
86 94
87#define SAVE_RESULTS if (jobsComplete > -1){\ 95#define SAVE_RESULTS \
88 startS[jobsComplete]=start.tv_sec;\ 96 if(jobs_complete >= maxJobs) {\
89 startN[jobsComplete]=start.tv_nsec;\ 97 fprintf(stderr, "Max jobs setting too small! Trying to record job #%d when we only have space for %d jobs. Exiting...\n", jobs_complete, maxJobs);\
90 endS[jobsComplete]=end.tv_sec;\ 98 exit(1);\
91 endN[jobsComplete]=end.tv_nsec;} 99 }\
100 if (jobs_complete > -1){\
101 startS[jobs_complete]=_start.tv_sec;\
102 startN[jobs_complete]=_start.tv_nsec;\
103 endS[jobs_complete]=_end.tv_sec;\
104 endN[jobs_complete]=_end.tv_nsec;\
105 }
92 106
93#define WRITE_TO_FILE {\ 107#define WRITE_TO_FILE {\
94 munlockall();\ 108 munlockall();\
@@ -97,11 +111,11 @@
97 perror("Error opening file. \n");\ 111 perror("Error opening file. \n");\
98 exit(1);\ 112 exit(1);\
99 }\ 113 }\
100 for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){\ 114 for(int i = 0; i <= jobs_complete; i++){\
101 fprintf(fp, "%s %s %s %s %d %ld %ld %ld %ld %s %d \n",\ 115 fprintf(fp, "%s %s %u %u %d %ld %ld %ld %ld %s %d \n",\
102 thisProgram, otherProgram, thisCore, otherCore, maxJobs,\ 116 thisProgram, otherProgram, thisCore, otherCore, maxJobs,\
103 startS[jobsComplete], startN[jobsComplete], endS[jobsComplete], endN[jobsComplete],\ 117 startS[i], startN[i], endS[i], endN[i],\
104 runID, jobsComplete);\ 118 runID, i);\
105 }\ 119 }\
106 fclose(fp);\ 120 fclose(fp);\
107 /* Clean up the barrier synchronization shared memory */\ 121 /* Clean up the barrier synchronization shared memory */\
@@ -127,8 +141,8 @@
127 fclose(fp); 141 fclose(fp);
128 142
129// These timers should just be aliases to the hardware counters w/ some small adjustments 143// These timers should just be aliases to the hardware counters w/ some small adjustments
130#define START_TIMER clock_gettime(CLOCK_MONOTONIC, &start); 144#define START_TIMER clock_gettime(CLOCK_MONOTONIC, &_start);
131#define STOP_TIMER clock_gettime(CLOCK_MONOTONIC, &end); 145#define STOP_TIMER clock_gettime(CLOCK_MONOTONIC, &_end);
132 146
133//check value of sem 147//check value of sem
134//if sem=0, unlock 148//if sem=0, unlock
@@ -176,8 +190,8 @@
176 __sync_bool_compare_and_swap(barrier, 1, 0);\ 190 __sync_bool_compare_and_swap(barrier, 1, 0);\
177 } 191 }
178 192
179#define START_LOOP FIRST_UNLOCK FIRST_LOCK FLUSH_CACHES BARRIER_SYNC START_TIMER 193#define START_LOOP FIRST_UNLOCK FIRST_LOCK sched_yield(); FLUSH_CACHES BARRIER_SYNC START_TIMER
180#define STOP_LOOP STOP_TIMER SAVE_RESULTS 194#define STOP_LOOP STOP_TIMER jobs_complete++; SAVE_RESULTS
181 195
182 196
183/* 197/*
@@ -186,7 +200,7 @@ Intended structure
186main 200main
187SET_UP 201SET_UP
188notice that STOP LOOP negates the ++ if outout=0 202notice that STOP LOOP negates the ++ if outout=0
189for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 203for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
190 START_LOOP 204 START_LOOP
191 tacleInit(); 205 tacleInit();
192 tacleMain(); 206 tacleMain();
diff --git a/all_pairs/source/fmref/fmref.c b/all_pairs/source/fmref/fmref.c
index 6be1436..bcc7ce6 100644
--- a/all_pairs/source/fmref/fmref.c
+++ b/all_pairs/source/fmref/fmref.c
@@ -78,7 +78,7 @@ int fmref_return(void)
78int main(int argc, char **argv){ 78int main(int argc, char **argv){
79 79
80 SET_UP 80 SET_UP
81 for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 81 for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
82 START_LOOP 82 START_LOOP
83 fmref_init(); 83 fmref_init();
84 fmref_main(); 84 fmref_main();
diff --git a/all_pairs/source/g723_enc/g723_enc.c b/all_pairs/source/g723_enc/g723_enc.c
index 6f31210..331c821 100644
--- a/all_pairs/source/g723_enc/g723_enc.c
+++ b/all_pairs/source/g723_enc/g723_enc.c
@@ -875,7 +875,7 @@ int main( int argc, char **argv )
875 //SET_UP 875 //SET_UP
876 int jobsComplete; 876 int jobsComplete;
877 int maxJobs=9; 877 int maxJobs=9;
878 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 878 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
879 // START_LOOP 879 // START_LOOP
880 g723_enc_init(); 880 g723_enc_init();
881 g723_enc_main(); 881 g723_enc_main();
diff --git a/all_pairs/source/gsm_dec/gsm_dec.c b/all_pairs/source/gsm_dec/gsm_dec.c
index 7a0a1bd..06d24d5 100644
--- a/all_pairs/source/gsm_dec/gsm_dec.c
+++ b/all_pairs/source/gsm_dec/gsm_dec.c
@@ -753,7 +753,7 @@ void _Pragma( "entrypoint" ) gsm_dec_main( void )
753int main( int argc, char **argv) 753int main( int argc, char **argv)
754{ 754{
755 SET_UP 755 SET_UP
756 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 756 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
757 START_LOOP 757 START_LOOP
758 gsm_dec_init(); 758 gsm_dec_init();
759 gsm_dec_main(); 759 gsm_dec_main();
diff --git a/all_pairs/source/gsm_enc/gsm_enc.c b/all_pairs/source/gsm_enc/gsm_enc.c
index cdac899..3f051ec 100644
--- a/all_pairs/source/gsm_enc/gsm_enc.c
+++ b/all_pairs/source/gsm_enc/gsm_enc.c
@@ -2061,7 +2061,7 @@ void gsm_enc_main( void )
2061int main( int argc, char** argv ) 2061int main( int argc, char** argv )
2062{ 2062{
2063 SET_UP 2063 SET_UP
2064 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 2064 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
2065 START_LOOP 2065 START_LOOP
2066 gsm_enc_init(); 2066 gsm_enc_init();
2067 gsm_enc_main(); 2067 gsm_enc_main();
diff --git a/all_pairs/source/h264_dec/h264_dec.c b/all_pairs/source/h264_dec/h264_dec.c
index 76af705..1fed68b 100644
--- a/all_pairs/source/h264_dec/h264_dec.c
+++ b/all_pairs/source/h264_dec/h264_dec.c
@@ -598,7 +598,7 @@ void _Pragma( "entrypoint" ) h264_dec_main( void )
598int main( int argc, char** argv ) 598int main( int argc, char** argv )
599{ 599{
600 SET_UP 600 SET_UP
601 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 601 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
602 START_LOOP 602 START_LOOP
603 h264_dec_init(); 603 h264_dec_init();
604 h264_dec_main(); 604 h264_dec_main();
diff --git a/all_pairs/source/huff_dec/huff_dec.c b/all_pairs/source/huff_dec/huff_dec.c
index 48bdf4b..b83b99d 100644
--- a/all_pairs/source/huff_dec/huff_dec.c
+++ b/all_pairs/source/huff_dec/huff_dec.c
@@ -382,7 +382,7 @@ int main( int argc, char **argv )
382 //SET_UP 382 //SET_UP
383 int jobsComplete; 383 int jobsComplete;
384 int maxJobs=5; 384 int maxJobs=5;
385 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 385 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
386 // START_LOOP 386 // START_LOOP
387 huff_dec_init(); 387 huff_dec_init();
388 huff_dec_main(); 388 huff_dec_main();
diff --git a/all_pairs/source/huff_enc/huff_enc.c b/all_pairs/source/huff_enc/huff_enc.c
index 2e739e6..133fe95 100644
--- a/all_pairs/source/huff_enc/huff_enc.c
+++ b/all_pairs/source/huff_enc/huff_enc.c
@@ -578,7 +578,7 @@ void _Pragma( "entrypoint" ) huff_enc_main()
578int main( int argc, char **argv ) 578int main( int argc, char **argv )
579{ 579{
580 SET_UP 580 SET_UP
581 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 581 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
582 START_LOOP 582 START_LOOP
583 huff_enc_init(); 583 huff_enc_init();
584 huff_enc_main(); 584 huff_enc_main();
diff --git a/all_pairs/source/mpeg2/mpeg2.c b/all_pairs/source/mpeg2/mpeg2.c
index e89e1f9..a810744 100644
--- a/all_pairs/source/mpeg2/mpeg2.c
+++ b/all_pairs/source/mpeg2/mpeg2.c
@@ -13206,7 +13206,7 @@ void _Pragma ( "entrypoint" ) mpeg2_main( void )
13206int main( int argc, char **argv ) 13206int main( int argc, char **argv )
13207{ 13207{
13208 SET_UP 13208 SET_UP
13209 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 13209 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
13210 START_LOOP 13210 START_LOOP
13211 mpeg2_init(); 13211 mpeg2_init();
13212 mpeg2_main(); 13212 mpeg2_main();
diff --git a/all_pairs/source/ndes/ndes.c b/all_pairs/source/ndes/ndes.c
index e56906f..b0f494c 100644
--- a/all_pairs/source/ndes/ndes.c
+++ b/all_pairs/source/ndes/ndes.c
@@ -366,7 +366,7 @@ void _Pragma( "entrypoint" ) ndes_main()
366int main( int argc, char **argv ) 366int main( int argc, char **argv )
367{ 367{
368 SET_UP 368 SET_UP
369 for(jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 369 for(jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
370 START_LOOP 370 START_LOOP
371 ndes_init(); 371 ndes_init();
372 ndes_main(); 372 ndes_main();
diff --git a/all_pairs/source/petrinet/petrinet.c b/all_pairs/source/petrinet/petrinet.c
index 7c9e1a0..cabb40d 100644
--- a/all_pairs/source/petrinet/petrinet.c
+++ b/all_pairs/source/petrinet/petrinet.c
@@ -977,7 +977,7 @@ int main( int argc, char **argv )
977{ 977{
978 SET_UP 978 SET_UP
979 979
980 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 980 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
981 981
982 START_LOOP 982 START_LOOP
983 petrinet_main(); 983 petrinet_main();
diff --git a/all_pairs/source/rijndael_dec/rijndael_dec.c b/all_pairs/source/rijndael_dec/rijndael_dec.c
index 4082eff..93bb424 100644
--- a/all_pairs/source/rijndael_dec/rijndael_dec.c
+++ b/all_pairs/source/rijndael_dec/rijndael_dec.c
@@ -183,7 +183,7 @@ void _Pragma( "entrypoint" ) rijndael_dec_main( void )
183int main(int argc, char** argv) 183int main(int argc, char** argv)
184{ 184{
185 SET_UP 185 SET_UP
186 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 186 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
187 START_LOOP 187 START_LOOP
188 rijndael_dec_init(); 188 rijndael_dec_init();
189 rijndael_dec_main(); 189 rijndael_dec_main();
diff --git a/all_pairs/source/rijndael_enc/rijndael_enc.c b/all_pairs/source/rijndael_enc/rijndael_enc.c
index f74d595..0c10353 100644
--- a/all_pairs/source/rijndael_enc/rijndael_enc.c
+++ b/all_pairs/source/rijndael_enc/rijndael_enc.c
@@ -226,7 +226,7 @@ void _Pragma( "entrypoint" ) rijndael_enc_main( void )
226int main( int argc, char** argv ) 226int main( int argc, char** argv )
227{ 227{
228 SET_UP 228 SET_UP
229 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 229 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
230 START_LOOP 230 START_LOOP
231 rijndael_enc_init(); 231 rijndael_enc_init();
232 rijndael_enc_main(); 232 rijndael_enc_main();
diff --git a/all_pairs/source/statemate/statemate.c b/all_pairs/source/statemate/statemate.c
index 379366a..00491e5 100644
--- a/all_pairs/source/statemate/statemate.c
+++ b/all_pairs/source/statemate/statemate.c
@@ -1274,7 +1274,7 @@ void _Pragma ( "entrypoint" ) statemate_main( void )
1274int main ( int argc, char **argv ) 1274int main ( int argc, char **argv )
1275{ 1275{
1276 SET_UP 1276 SET_UP
1277 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 1277 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
1278 START_LOOP 1278 START_LOOP
1279 statemate_init(); 1279 statemate_init();
1280 statemate_main(); 1280 statemate_main();
diff --git a/all_pairs/source/susan/susan.c b/all_pairs/source/susan/susan.c
index fb990b1..4bc4cb8 100644
--- a/all_pairs/source/susan/susan.c
+++ b/all_pairs/source/susan/susan.c
@@ -2002,7 +2002,7 @@ int susan_return( void )
2002int main( int argc, char **argv ) 2002int main( int argc, char **argv )
2003{ 2003{
2004 SET_UP 2004 SET_UP
2005 for (jobsComplete=-1; jobsComplete<maxJobs; jobsComplete++){ 2005 for (jobsComplete=0; jobsComplete<maxJobs; jobsComplete++){
2006 START_LOOP 2006 START_LOOP
2007 susan_init(); 2007 susan_init();
2008 susan_main(); 2008 susan_main();
diff --git a/dis/Makefile b/dis/Makefile
index 7f3da39..957a39a 100755
--- a/dis/Makefile
+++ b/dis/Makefile
@@ -1,8 +1,18 @@
1# Copyright 2020 Joshua Bakita
2# Build the DIS benchmarks with all-pairs or unpaired instrumentation
3# (I know that this Makefile is mildly evil and breaks so many rules
4# that a good Makefile should follow. Sorry - at least I have one.)
1LIBLITMUS ?= /media/speedy/litmus/liblitmus 5LIBLITMUS ?= /media/speedy/litmus/liblitmus
2CC ?= gcc 6CC ?= gcc
3override CFLAGS += -pthread -O2 -ggdb3 -I../baseline/source 7override CFLAGS += -pthread -O2
4LDFLAGS = -lrt -lm 8LDFLAGS = -lrt -lm
5COMMON = ../baseline/source/extra.h 9
10# We need a different include path depending on the target, so use a
11# target-specific variable
12field matrix neighborhood pointer transitive update random_walk: override CFLAGS += -I../baseline/source
13field matrix neighborhood pointer transitive update random_walk: COMMON = ../baseline/source/extra.h
14field_all matrix_all neighborhood_all pointer_all transitive_all update_all: override CFLAGS += -I../all_pairs/source
15field_all matrix_all neighborhood_all pointer_all transitive_all update_all: COMMON = ../all_pairs/source/extra.h
6 16
7# Handle cases where we're also profiling with the MMDC on the i.MX6Q 17# Handle cases where we're also profiling with the MMDC on the i.MX6Q
8ifneq ($(shell grep "define MMDC 1" ../baseline/source/extra.h),) 18ifneq ($(shell grep "define MMDC 1" ../baseline/source/extra.h),)
@@ -15,12 +25,13 @@ ifneq ($(shell grep "define LITMUS 1" ../baseline/source/extra.h),)
15 LDFLAGS += -L${LIBLITMUS} -llitmus 25 LDFLAGS += -L${LIBLITMUS} -llitmus
16endif 26endif
17 27
18 28all:
19all: field matrix neighborhood pointer transitive update random_walk 29baseline: field matrix neighborhood pointer transitive update random_walk
30pairs: field_all matrix_all neighborhood_all pointer_all transitive_all update_all
20 31
21.PHONY: clean 32.PHONY: clean
22clean: 33clean:
23 rm field matrix neighborhood pointer transitive update random_walk 34 rm field_all matrix_all neighborhood_all pointer_all transitive_all update_all field matrix neighborhood pointer transitive update random_walk
24 35
25field: ${COMMON} ./Field/field.c 36field: ${COMMON} ./Field/field.c
26 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) 37 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
@@ -36,3 +47,16 @@ update: ${COMMON} ./Update/update.c
36 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) 47 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
37random_walk: ${COMMON} random_walk.c 48random_walk: ${COMMON} random_walk.c
38 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) 49 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
50
51field_all: ${COMMON} ./Field/field.c
52 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
53matrix_all: ${COMMON} ./Matrix/ver2/matrix.c
54 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
55neighborhood_all: ${COMMON} ./Neighborhood/neighborhood.c
56 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
57pointer_all: ${COMMON} ./Pointer/pointer.c
58 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
59transitive_all: ${COMMON} ./Transitive/transitive.c
60 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
61update_all: ${COMMON} ./Update/update.c
62 $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)