changeset 2:96deb7b4502e

working, k=4
author Sean Halle <seanhalle@yahoo.com>
date Sat, 29 Mar 2014 06:02:18 -0700
parents 1b61e0c00512
children
files PR_defs__turn_on_and_off.h Reo__Matrix_Mult/Circuit.c Reo__Matrix_Mult/Circuit.h Reo__Matrix_Mult/DivideWork.c Reo__Matrix_Mult/Producer_and_Consumer.c Reo__Matrix_Mult/Reo__Matrix_Mult.h Reo__Matrix_Mult/SeedVP.c main.c nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk nb__Reo_matrix_mult/nbproject/Makefile-Release.mk nb__Reo_matrix_mult/nbproject/Makefile-impl.mk nb__Reo_matrix_mult/nbproject/Makefile-variables.mk nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash nb__Reo_matrix_mult/nbproject/configurations.xml nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk nb__Reo_matrix_mult/nbproject/private/configurations.xml nb__Reo_matrix_mult/nbproject/private/private.xml nb__Reo_matrix_mult/nbproject/project.xml
diffstat 19 files changed, 1643 insertions(+), 187 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/PR_defs__turn_on_and_off.h	Sat Mar 29 06:02:18 2014 -0700
     1.3 @@ -0,0 +1,90 @@
     1.4 +/*
     1.5 + *  Copyright 2009 OpenSourceResearchInstitute.org
     1.6 + *  Licensed under GNU General Public License version 2
     1.7 + *
     1.8 + * Author: seanhalle@yahoo.com
     1.9 + * 
    1.10 + */
    1.11 +
    1.12 +#ifndef _PR_DEFS_TURN_ON_AND_OFF_H
    1.13 +#define _PR_DEFS_TURN_ON_AND_OFF_H
    1.14 +#define _GNU_SOURCE
    1.15 +
    1.16 +
    1.17 +
    1.18 +
    1.19 +//======================  Turn Debug things on and off  =====================
    1.20 +/*When DEBUG__TURN_ON_SEQUENTIAL_MODE is defined, PR does sequential exe in the main thread
    1.21 + * It still does co-routines and all the mechanisms are the same, it just
    1.22 + * has only a single thread and animates Slvs one at a time
    1.23 + */
    1.24 +//#define DEBUG__TURN_ON_SEQUENTIAL_MODE
    1.25 +   //check for sequential mode and redefine num cores to be 1 so that lang
    1.26 +   // code doesn't have to do special #ifdef for sequential mode
    1.27 +#ifdef DEBUG__TURN_ON_SEQUENTIAL_MODE
    1.28 +   #ifdef NUM_CORES
    1.29 +      #undef  NUM_CORES
    1.30 +   #endif
    1.31 +   #define NUM_CORES 1
    1.32 +#endif
    1.33 +
    1.34 +/*turns on the probe-instrumentation in the application -- when not
    1.35 + * defined, the calls to the probe functions turn into comments
    1.36 + */
    1.37 +//#define DEBUG__TURN_ON_DEBUG_PRINT
    1.38 +
    1.39 +/*These defines turn types of bug messages on and off
    1.40 + */
    1.41 +#define dbgAppFlow   TRUE /* Top level flow of application code -- general*/
    1.42 +#define dbgProbes    FALSE /* for issues inside probes themselves*/
    1.43 +#define dbgMaster    FALSE /* obsolete*/
    1.44 +#define dbgRqstHdlr  TRUE /* in request handler code*/
    1.45 +#define dbgSS        FALSE /* in request handler code*/
    1.46 +#define dbgInfra     FALSE /* in request handler code*/
    1.47 +
    1.48 +//#define DEBUG__TURN_ON_ERROR_MSGS
    1.49 +
    1.50 +//==================  Turn Probe Things on and off ====================
    1.51 +/*Probes are used in the application as a cheap, convenient, and fast way
    1.52 + * to collect statistics.  Define this to enable them, else the probe
    1.53 + * statements in the application code all turn into empty whitespace
    1.54 + * in the pre-processor
    1.55 + */
    1.56 +//#define PROBES__TURN_ON_STATS_PROBES
    1.57 +
    1.58 +/*When PROBES__TURN_ON_STATS_PROBES is defined, turn on one of these to choose
    1.59 + * what kind of measurement the probes store
    1.60 + */
    1.61 +//#define PROBES__USE_TSC_PROBES
    1.62 +#define PROBES__USE_TIME_OF_DAY_PROBES
    1.63 +//#define PROBES__USE_PERF_CTR_PROBES
    1.64 +
    1.65 +
    1.66 +//==============  Turn Internal Measurement Things on and off ===============
    1.67 +
    1.68 +//#define MEAS__TURN_ON_SUSP_MEAS
    1.69 +//#define MEAS__TURN_ON_MASTER_MEAS
    1.70 +//#define MEAS__TURN_ON_MASTER_LOCK_MEAS
    1.71 +//#define MEAS__TURN_ON_MALLOC_MEAS
    1.72 +//#define MEAS__TURN_ON_PLUGIN_MEAS
    1.73 +//#define MEAS__TURN_ON_SYSTEM_MEAS
    1.74 +   /*turn on/off subtraction of create measurements from plugin meas*/
    1.75 +//#define MEAS__TURN_ON_EXCLUDE_CREATION_TIME 
    1.76 +
    1.77 +
    1.78 +//#define HOLISTIC__TURN_ON_PERF_COUNTERS
    1.79 +//#define HOLISTIC__TURN_ON_OBSERVE_UCC
    1.80 +//#define HOLISTIC__TURN_ON_DETECT_CONSTRAINT_GRAPH
    1.81 +
    1.82 +//===================  Turn on or off system options  =======================
    1.83 +//
    1.84 +/*Defining SYS__TURN_ON_WORK_STEALING causes the core controller behavior
    1.85 + * to change.  When it detects too many back-to-back masters, then it 
    1.86 + * searches the other core controllers, looking for work it can steal from
    1.87 + * them.
    1.88 + */
    1.89 +//#define SYS__TURN_ON_WORK_STEALING
    1.90 +
    1.91 +//===========================================================================
    1.92 +#endif	/*  */
    1.93 +
     2.1 --- a/Reo__Matrix_Mult/Circuit.c	Wed Feb 19 09:27:10 2014 -0800
     2.2 +++ b/Reo__Matrix_Mult/Circuit.c	Sat Mar 29 06:02:18 2014 -0700
     2.3 @@ -6,12 +6,12 @@
     2.4  VReoCircuit *create_circuit(SlaveVP *animVP) {
     2.5  
     2.6  	/* Declare variables. */
     2.7 -	VReoCircuit  *circuit;
     2.8 -	VReoBridge   *bridge, *bridges, **boundaryBridges;
     2.9 -	VReoIsland   *islands, *island;
    2.10 +	VReoCircuit *circuit;
    2.11 +	VReoBridge *bridge, *bridges, **boundaryBridges;
    2.12 +	VReoIsland *islands, *island;
    2.13  	VReoO1island *o1islands, *o1island;
    2.14  	VReoCheckerFn *bridgeReaderCheckerFns, *bridgeWriterCheckerFns;
    2.15 -	VReoDoerFn   *bridgeReaderDoerFns, *bridgeWriterDoerFns;
    2.16 +	VReoDoerFn *bridgeReaderDoerFns, *bridgeWriterDoerFns;
    2.17  	PrivQueueStruc *offerQ0, *offerQ1;
    2.18  	VReoPartnerQStruct *partnerQStruct0, *partnerQStruct1;
    2.19  
    2.20 @@ -29,8 +29,6 @@
    2.21  	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
    2.22  	bridge->buffer = NULL;
    2.23  	bridge->bridgeIsFull = FALSE;
    2.24 -        bridge->writerType   = None;
    2.25 -        bridge->readerType   = None;
    2.26  	bridge->waitingReaderVP = NULL;
    2.27  	bridge->waitingWriterVP = NULL;
    2.28  	bridge->readerPartnerQStruct = NULL;
    2.29 @@ -54,6 +52,24 @@
    2.30  	bridge->readerPartnerQStruct = NULL;
    2.31  	bridge->writerPartnerQStruct = NULL;
    2.32  
    2.33 +	/* Initialize bridge In_2. */
    2.34 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
    2.35 +	bridge->buffer = NULL;
    2.36 +	bridge->bridgeIsFull = FALSE;
    2.37 +	bridge->waitingReaderVP = NULL;
    2.38 +	bridge->waitingWriterVP = NULL;
    2.39 +	bridge->readerPartnerQStruct = NULL;
    2.40 +	bridge->writerPartnerQStruct = NULL;
    2.41 +
    2.42 +	/* Initialize bridge In_3. */
    2.43 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
    2.44 +	bridge->buffer = NULL;
    2.45 +	bridge->bridgeIsFull = FALSE;
    2.46 +	bridge->waitingReaderVP = NULL;
    2.47 +	bridge->waitingWriterVP = NULL;
    2.48 +	bridge->readerPartnerQStruct = NULL;
    2.49 +	bridge->writerPartnerQStruct = NULL;
    2.50 +
    2.51  	/* Initialize bridge Out_0. */
    2.52  	bridge = &(bridges[CKT_BRIDGE_Out_0]);
    2.53  	bridge->buffer = NULL;
    2.54 @@ -75,8 +91,7 @@
    2.55  	/* Initialize bridge FIFO0. */
    2.56  	bridge = &(bridges[CKT_BRIDGE_FIFO0]);
    2.57  	bridge->buffer = NULL;
    2.58 -	bridge->bridgeIsFull = FALSE;
    2.59 -   bridge->waitingReaderVP = NULL;
    2.60 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.61  	bridge->waitingWriterVP = NULL;
    2.62  	bridge->readerPartnerQStruct = NULL;
    2.63  	bridge->writerPartnerQStruct = NULL;
    2.64 @@ -93,8 +108,7 @@
    2.65  	/* Initialize bridge FIFO2. */
    2.66  	bridge = &(bridges[CKT_BRIDGE_FIFO2]);
    2.67  	bridge->buffer = NULL;
    2.68 -	bridge->bridgeIsFull = FALSE;
    2.69 -   bridge->waitingReaderVP = NULL;
    2.70 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.71  	bridge->waitingWriterVP = NULL;
    2.72  	bridge->readerPartnerQStruct = NULL;
    2.73  	bridge->writerPartnerQStruct = NULL;
    2.74 @@ -108,13 +122,49 @@
    2.75  	bridge->readerPartnerQStruct = NULL;
    2.76  	bridge->writerPartnerQStruct = NULL;
    2.77  
    2.78 +	/* Initialize bridge FIFO4. */
    2.79 +	bridge = &(bridges[CKT_BRIDGE_FIFO4]);
    2.80 +	bridge->buffer = NULL;
    2.81 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.82 +	bridge->waitingWriterVP = NULL;
    2.83 +	bridge->readerPartnerQStruct = NULL;
    2.84 +	bridge->writerPartnerQStruct = NULL;
    2.85 +
    2.86 +	/* Initialize bridge FIFO5. */
    2.87 +	bridge = &(bridges[CKT_BRIDGE_FIFO5]);
    2.88 +	bridge->buffer = malloc(1);
    2.89 +	bridge->bridgeIsFull = TRUE;
    2.90 +	bridge->waitingReaderVP = NULL;
    2.91 +	bridge->waitingWriterVP = NULL;
    2.92 +	bridge->readerPartnerQStruct = NULL;
    2.93 +	bridge->writerPartnerQStruct = NULL;
    2.94 +
    2.95 +	/* Initialize bridge FIFO6. */
    2.96 +	bridge = &(bridges[CKT_BRIDGE_FIFO6]);
    2.97 +	bridge->buffer = NULL;
    2.98 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.99 +	bridge->waitingWriterVP = NULL;
   2.100 +	bridge->readerPartnerQStruct = NULL;
   2.101 +	bridge->writerPartnerQStruct = NULL;
   2.102 +
   2.103 +	/* Initialize bridge FIFO7. */
   2.104 +	bridge = &(bridges[CKT_BRIDGE_FIFO7]);
   2.105 +	bridge->buffer = malloc(1);
   2.106 +	bridge->bridgeIsFull = TRUE;
   2.107 +	bridge->waitingReaderVP = NULL;
   2.108 +	bridge->waitingWriterVP = NULL;
   2.109 +	bridge->readerPartnerQStruct = NULL;
   2.110 +	bridge->writerPartnerQStruct = NULL;
   2.111 +
   2.112  	/* Initialize boundary bridges. */
   2.113  	boundaryBridges = PR_WL__malloc(NUM_BOUNDARY_BRIDGES * sizeof(VReoBridge*));
   2.114  	boundaryBridges[0] = &(bridges[CKT_BRIDGE_Broad_0]);
   2.115  	boundaryBridges[1] = &(bridges[CKT_BRIDGE_In_0]);
   2.116  	boundaryBridges[2] = &(bridges[CKT_BRIDGE_In_1]);
   2.117 -	boundaryBridges[3] = &(bridges[CKT_BRIDGE_Out_0]);
   2.118 -	boundaryBridges[4] = &(bridges[CKT_BRIDGE_Out_1]);
   2.119 +	boundaryBridges[3] = &(bridges[CKT_BRIDGE_In_2]);
   2.120 +	boundaryBridges[4] = &(bridges[CKT_BRIDGE_In_3]);
   2.121 +	boundaryBridges[5] = &(bridges[CKT_BRIDGE_Out_0]);
   2.122 +	boundaryBridges[6] = &(bridges[CKT_BRIDGE_Out_1]);
   2.123  
   2.124  	//
   2.125  	// INITIALIZE ISLANDS
   2.126 @@ -124,7 +174,7 @@
   2.127  	island = &(islands[CKT_I0]);
   2.128  
   2.129  	island->numCheckerFns = 1;
   2.130 -	island->numBridges = 4;
   2.131 +	island->numBridges = 6;
   2.132  
   2.133  	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.134  	island->checkerFns[0] = &Checker_0__I0;
   2.135 @@ -136,7 +186,9 @@
   2.136  	island->bridges[I0_BRIDGE_Broad_0] = &(bridges[CKT_BRIDGE_Broad_0]);
   2.137  	island->bridges[I0_BRIDGE_Broad_0Output1] = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   2.138  	island->bridges[I0_BRIDGE_Broad_0Output2] = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   2.139 +	island->bridges[I0_BRIDGE_Broad_0Output3] = &(bridges[CKT_BRIDGE_Broad_0Output3]);
   2.140  	island->bridges[I0_BRIDGE_Out_1] = &(bridges[CKT_BRIDGE_Out_1]);
   2.141 +	island->bridges[I0_BRIDGE_Broad_0Output4] = &(bridges[CKT_BRIDGE_Broad_0Output4]);
   2.142  
   2.143  	/* 
   2.144  	 * Initialize Island 0: register Island 0 as a reader on 
   2.145 @@ -144,8 +196,8 @@
   2.146  	 */
   2.147  	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoCheckerFn *) );
   2.148  	bridgeReaderDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoDoerFn *) );
   2.149 -	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.150 -	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.151 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.152 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.153  
   2.154  	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
   2.155  	bridge->reader = &(islands[CKT_I0]);
   2.156 @@ -160,8 +212,8 @@
   2.157  	 */
   2.158  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoCheckerFn *) );
   2.159  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoDoerFn *) );
   2.160 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.161 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.162 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.163 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.164  
   2.165  	bridge = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   2.166  	bridge->writer = &(islands[CKT_I0]);
   2.167 @@ -176,8 +228,8 @@
   2.168  	 */
   2.169  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoCheckerFn *) );
   2.170  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoDoerFn *) );
   2.171 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.172 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.173 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.174 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.175  
   2.176  	bridge = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   2.177  	bridge->writer = &(islands[CKT_I0]);
   2.178 @@ -188,12 +240,28 @@
   2.179  
   2.180  	/* 
   2.181  	 * Initialize Island 0: register Island 0 as a writer on 
   2.182 +	 * bridge Broad_0Output3.
   2.183 +	 */
   2.184 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoCheckerFn *) );
   2.185 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoDoerFn *) );
   2.186 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.187 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.188 +
   2.189 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output3]);
   2.190 +	bridge->writer = &(islands[CKT_I0]);
   2.191 +	bridge->writerType = Island;
   2.192 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3;
   2.193 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.194 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.195 +
   2.196 +	/* 
   2.197 +	 * Initialize Island 0: register Island 0 as a writer on 
   2.198  	 * bridge Out_1.
   2.199  	 */
   2.200  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoCheckerFn *) );
   2.201  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoDoerFn *) );
   2.202 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.203 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.204 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.205 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.206  
   2.207  	bridge = &(bridges[CKT_BRIDGE_Out_1]);
   2.208  	bridge->writer = &(islands[CKT_I0]);
   2.209 @@ -202,6 +270,22 @@
   2.210  	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.211  	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.212  
   2.213 +	/* 
   2.214 +	 * Initialize Island 0: register Island 0 as a writer on 
   2.215 +	 * bridge Broad_0Output4.
   2.216 +	 */
   2.217 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoCheckerFn *) );
   2.218 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoDoerFn *) );
   2.219 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.220 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.221 +
   2.222 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output4]);
   2.223 +	bridge->writer = &(islands[CKT_I0]);
   2.224 +	bridge->writerType = Island;
   2.225 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4;
   2.226 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.227 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.228 +
   2.229  	/* Initialize Island 1. */
   2.230  	island = &(islands[CKT_I1]);
   2.231  
   2.232 @@ -332,11 +416,143 @@
   2.233  	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.234  	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.235  
   2.236 +	/* Initialize Island 3. */
   2.237 +	island = &(islands[CKT_I3]);
   2.238 +
   2.239 +	island->numCheckerFns = 1;
   2.240 +	island->numBridges = 3;
   2.241 +
   2.242 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.243 +	island->checkerFns[0] = &Checker_0__I3;
   2.244 +
   2.245 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   2.246 +	island->doerFns[0] = &Doer_0__I3;
   2.247 +
   2.248 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   2.249 +	island->bridges[I3_BRIDGE_In_2] = &(bridges[CKT_BRIDGE_In_2]);
   2.250 +	island->bridges[I3_BRIDGE_X_2Input0] = &(bridges[CKT_BRIDGE_X_2Input0]);
   2.251 +	island->bridges[I3_BRIDGE_In_2Output0] = &(bridges[CKT_BRIDGE_In_2Output0]);
   2.252 +
   2.253 +	/* 
   2.254 +	 * Initialize Island 3: register Island 3 as a reader on 
   2.255 +	 * bridge In_2. 
   2.256 +	 */
   2.257 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoCheckerFn *) );
   2.258 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoDoerFn *) );
   2.259 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.260 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.261 +
   2.262 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
   2.263 +	bridge->reader = &(islands[CKT_I3]);
   2.264 +	bridge->readerType = Island;
   2.265 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2;
   2.266 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.267 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.268 +
   2.269 +	/* 
   2.270 +	 * Initialize Island 3: register Island 3 as a reader on 
   2.271 +	 * bridge X_2Input0. 
   2.272 +	 */
   2.273 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoCheckerFn *) );
   2.274 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoDoerFn *) );
   2.275 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.276 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.277 +
   2.278 +	bridge = &(bridges[CKT_BRIDGE_X_2Input0]);
   2.279 +	bridge->reader = &(islands[CKT_I3]);
   2.280 +	bridge->readerType = Island;
   2.281 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0;
   2.282 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.283 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.284 +
   2.285 +	/* 
   2.286 +	 * Initialize Island 3: register Island 3 as a writer on 
   2.287 +	 * bridge In_2Output0.
   2.288 +	 */
   2.289 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoCheckerFn *) );
   2.290 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoDoerFn *) );
   2.291 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.292 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.293 +
   2.294 +	bridge = &(bridges[CKT_BRIDGE_In_2Output0]);
   2.295 +	bridge->writer = &(islands[CKT_I3]);
   2.296 +	bridge->writerType = Island;
   2.297 +	bridge->numWriterCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0;
   2.298 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.299 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.300 +
   2.301 +	/* Initialize Island 4. */
   2.302 +	island = &(islands[CKT_I4]);
   2.303 +
   2.304 +	island->numCheckerFns = 1;
   2.305 +	island->numBridges = 3;
   2.306 +
   2.307 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.308 +	island->checkerFns[0] = &Checker_0__I4;
   2.309 +
   2.310 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   2.311 +	island->doerFns[0] = &Doer_0__I4;
   2.312 +
   2.313 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   2.314 +	island->bridges[I4_BRIDGE_In_3] = &(bridges[CKT_BRIDGE_In_3]);
   2.315 +	island->bridges[I4_BRIDGE_X_3Input0] = &(bridges[CKT_BRIDGE_X_3Input0]);
   2.316 +	island->bridges[I4_BRIDGE_In_3Output0] = &(bridges[CKT_BRIDGE_In_3Output0]);
   2.317 +
   2.318 +	/* 
   2.319 +	 * Initialize Island 4: register Island 4 as a reader on 
   2.320 +	 * bridge In_3. 
   2.321 +	 */
   2.322 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoCheckerFn *) );
   2.323 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoDoerFn *) );
   2.324 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.325 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.326 +
   2.327 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
   2.328 +	bridge->reader = &(islands[CKT_I4]);
   2.329 +	bridge->readerType = Island;
   2.330 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3;
   2.331 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.332 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.333 +
   2.334 +	/* 
   2.335 +	 * Initialize Island 4: register Island 4 as a reader on 
   2.336 +	 * bridge X_3Input0. 
   2.337 +	 */
   2.338 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoCheckerFn *) );
   2.339 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoDoerFn *) );
   2.340 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.341 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.342 +
   2.343 +	bridge = &(bridges[CKT_BRIDGE_X_3Input0]);
   2.344 +	bridge->reader = &(islands[CKT_I4]);
   2.345 +	bridge->readerType = Island;
   2.346 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0;
   2.347 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.348 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.349 +
   2.350 +	/* 
   2.351 +	 * Initialize Island 4: register Island 4 as a writer on 
   2.352 +	 * bridge In_3Output0.
   2.353 +	 */
   2.354 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoCheckerFn *) );
   2.355 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoDoerFn *) );
   2.356 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.357 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.358 +
   2.359 +	bridge = &(bridges[CKT_BRIDGE_In_3Output0]);
   2.360 +	bridge->writer = &(islands[CKT_I4]);
   2.361 +	bridge->writerType = Island;
   2.362 +	bridge->numWriterCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0;
   2.363 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.364 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.365 +
   2.366  	/* Initialize O1Island 0. */
   2.367  	o1island = &(o1islands[CKT_O1I0]);
   2.368  
   2.369 -	o1island->numBridges = 3;
   2.370 +	o1island->numBridges = 5;
   2.371  	o1island->bridges = PR_WL__malloc(o1island->numBridges * sizeof(VReoBridge *));
   2.372 +	o1island->bridges[O1I0_BRIDGE_Out_0Input3] = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.373 +	o1island->bridges[O1I0_BRIDGE_Out_0Input2] = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.374  	o1island->bridges[O1I0_BRIDGE_Out_0Input1] = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.375  	o1island->bridges[O1I0_BRIDGE_Out_0Input0] = &(bridges[CKT_BRIDGE_Out_0Input0]);
   2.376  	o1island->bridges[O1I0_BRIDGE_Out_0] = &(bridges[CKT_BRIDGE_Out_0]);
   2.377 @@ -364,6 +580,26 @@
   2.378  
   2.379  	/* 
   2.380  	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.381 +	 * bridge Out_0Input3. 
   2.382 +	 */
   2.383 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.384 +	bridge->reader = &(o1island);
   2.385 +	bridge->readerType = O1island;
   2.386 +	bridge->readerPartnerQStruct = partnerQStruct0;
   2.387 +	bridge->readerOfferQ = offerQ0;
   2.388 +
   2.389 +	/* 
   2.390 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.391 +	 * bridge Out_0Input2. 
   2.392 +	 */
   2.393 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.394 +	bridge->reader = &(o1island);
   2.395 +	bridge->readerType = O1island;
   2.396 +	bridge->readerPartnerQStruct = partnerQStruct0;
   2.397 +	bridge->readerOfferQ = offerQ0;
   2.398 +
   2.399 +	/* 
   2.400 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.401  	 * bridge Out_0Input1. 
   2.402  	 */
   2.403  	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.404 @@ -397,6 +633,16 @@
   2.405  	//
   2.406  
   2.407  	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.408 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.409 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.410 +		writePrivQ( bridge, bridge->readerOfferQ );
   2.411 +
   2.412 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.413 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.414 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.415 +		writePrivQ( bridge, bridge->readerOfferQ );
   2.416 +
   2.417 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.418  	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.419  	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.420  		writePrivQ( bridge, bridge->readerOfferQ );
   2.421 @@ -432,6 +678,7 @@
   2.422  void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums,
   2.423                                      SlaveVP *animVP) 
   2.424   {
   2.425 +
   2.426  	/* Declare variables. */
   2.427  	VReoBridge **boundaryBridges, *bridges, **bridgesForVP;
   2.428  	SlaveVP **VPs;
   2.429 @@ -446,16 +693,16 @@
   2.430  	/* Allocate memory for VPs. */
   2.431  	VPs = PR_WL__malloc(NUM_VPs * sizeof(SlaveVP *));
   2.432  
   2.433 -	/* Create Producer VP 0. */
   2.434 +	/* Create Producer VP 0 (Producer 0). */
   2.435  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.436  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0];
   2.437  
   2.438 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.439 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.440  	prodParams->inBridges = NULL;
   2.441  	prodParams->outBridges = bridgesForVP;
   2.442 -        prodParams->initData  = initDatums[CKT_VP_PROD0];
   2.443 +        prodParams->initData  = NULL; //this is special broadcast producer
   2.444  
   2.445 -	VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.446 +	VPs[CKT_VP_PROD0] = VReo__create_VP(&broadcast_producer_Fn, prodParams, circuit, animVP);
   2.447  
   2.448  	boundaryBridges[CKT_VP_PROD0]->writer = VPs[CKT_VP_PROD0];
   2.449  	boundaryBridges[CKT_VP_PROD0]->writerType = VP;
   2.450 @@ -464,10 +711,10 @@
   2.451  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.452  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1];
   2.453  
   2.454 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.455 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.456  	prodParams->inBridges = NULL;
   2.457  	prodParams->outBridges = bridgesForVP;
   2.458 -   prodParams->initData  = initDatums[CKT_VP_PROD1];
   2.459 +   prodParams->initData  = initDatums[0]; //gets first work unit
   2.460  
   2.461  	VPs[CKT_VP_PROD1] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.462  
   2.463 @@ -478,49 +725,44 @@
   2.464  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.465  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2];
   2.466  
   2.467 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.468 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.469  	prodParams->inBridges = NULL;
   2.470  	prodParams->outBridges = bridgesForVP;
   2.471 -   prodParams->initData  = initDatums[CKT_VP_PROD2];
   2.472 +   prodParams->initData  = initDatums[1]; //second work-unit
   2.473  
   2.474  	VPs[CKT_VP_PROD2] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.475  
   2.476  	boundaryBridges[CKT_VP_PROD2]->writer = VPs[CKT_VP_PROD2];
   2.477  	boundaryBridges[CKT_VP_PROD2]->writerType = VP;
   2.478  
   2.479 -//	/* Create Consumer VP 0. */
   2.480 -//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   2.481 -//	
   2.482 -//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.483 -//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS0];
   2.484 -//	
   2.485 -//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   2.486 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   2.487 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   2.488 -//	
   2.489 -//	consParams->inBridges = bridgesForVP;
   2.490 -//	consParams->outBridges = NULL;
   2.491 -//	
   2.492 -//	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.493 -//	boundaryBridges[CKT_VP_CONS0]->reader = VPs[CKT_VP_CONS0];
   2.494 -//	boundaryBridges[CKT_VP_CONS0]->readerType = VP;
   2.495 +	/* Create Producer VP 3. */
   2.496 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.497 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD3];
   2.498  
   2.499 -//	/* Create Consumer VP 1. */
   2.500 -//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   2.501 -//	
   2.502 -//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.503 -//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS1];
   2.504 -//	
   2.505 -//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   2.506 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   2.507 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   2.508 -//	
   2.509 -//	consParams->inBridges = bridgesForVP;
   2.510 -//	consParams->outBridges = NULL;
   2.511 -//	
   2.512 -//	VPs[CKT_VP_CONS1] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.513 -//	boundaryBridges[CKT_VP_CONS1]->reader = VPs[CKT_VP_CONS1];
   2.514 -//	boundaryBridges[CKT_VP_CONS1]->readerType = VP;
   2.515 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.516 +	prodParams->inBridges = NULL;
   2.517 +	prodParams->outBridges = bridgesForVP;
   2.518 +   prodParams->initData  = initDatums[2];  //third work unit
   2.519 +
   2.520 +	VPs[CKT_VP_PROD3] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.521 +
   2.522 +	boundaryBridges[CKT_VP_PROD3]->writer = VPs[CKT_VP_PROD3];
   2.523 +	boundaryBridges[CKT_VP_PROD3]->writerType = VP;
   2.524 +
   2.525 +	/* Create Producer VP 4. */
   2.526 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.527 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD4];
   2.528 +
   2.529 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.530 +	prodParams->inBridges = NULL;
   2.531 +	prodParams->outBridges = bridgesForVP;
   2.532 +   prodParams->initData  = initDatums[3]; //fourth work-unit
   2.533 +
   2.534 +	VPs[CKT_VP_PROD4] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.535 +
   2.536 +	boundaryBridges[CKT_VP_PROD4]->writer = VPs[CKT_VP_PROD4];
   2.537 +	boundaryBridges[CKT_VP_PROD4]->writerType = VP;
   2.538 +
   2.539  
   2.540  	/* Create Consumer VP. */
   2.541  	consParams = PR_WL__malloc(sizeof(VPParams));
   2.542 @@ -529,9 +771,8 @@
   2.543  	bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
   2.544  	bridgesForVP[1] = &(bridges[CKT_BRIDGE_Out_1]);
   2.545  
   2.546 -	consParams->inBridges  = bridgesForVP;
   2.547 +	consParams->inBridges = bridgesForVP;
   2.548  	consParams->outBridges = NULL;
   2.549 -   consParams->initData   = initDatums[CKT_VP_CONS0];
   2.550  
   2.551  	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.552  
   2.553 @@ -549,14 +790,16 @@
   2.554  /* Checkers for Island 0. */
   2.555  
   2.556  bool32 Checker_0__I0( VReoIsland *island ) {
   2.557 -	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   2.558 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
   2.559  	bool32 satisfied;
   2.560  
   2.561  	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   2.562  	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   2.563 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
   2.564  	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   2.565  	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   2.566 -	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Out_1;
   2.567 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
   2.568 +	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Broad_0Output3 && READY_FOR_WRITE_BRIDGE_Out_1 && READY_FOR_WRITE_BRIDGE_Broad_0Output4;
   2.569  	return satisfied;
   2.570  }
   2.571  
   2.572 @@ -586,6 +829,32 @@
   2.573  	return satisfied;
   2.574  }
   2.575  
   2.576 +/* Checkers for Island 3. */
   2.577 +
   2.578 +bool32 Checker_0__I3( VReoIsland *island ) {
   2.579 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
   2.580 +	bool32 satisfied;
   2.581 +
   2.582 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
   2.583 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
   2.584 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
   2.585 +	satisfied = READY_FOR_READ_BRIDGE_In_2 && READY_FOR_READ_BRIDGE_X_2Input0 && READY_FOR_WRITE_BRIDGE_In_2Output0;
   2.586 +	return satisfied;
   2.587 +}
   2.588 +
   2.589 +/* Checkers for Island 4. */
   2.590 +
   2.591 +bool32 Checker_0__I4( VReoIsland *island ) {
   2.592 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
   2.593 +	bool32 satisfied;
   2.594 +
   2.595 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
   2.596 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
   2.597 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
   2.598 +	satisfied = READY_FOR_READ_BRIDGE_In_3 && READY_FOR_READ_BRIDGE_X_3Input0 && READY_FOR_WRITE_BRIDGE_In_3Output0;
   2.599 +	return satisfied;
   2.600 +}
   2.601 +
   2.602  //==============================================================================
   2.603  
   2.604  /* Declaration of auxiliary doers. */
   2.605 @@ -593,41 +862,61 @@
   2.606  void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge );
   2.607  void Auxdoer_for_bridge_In_0( VReoBridge *bridge );
   2.608  void Auxdoer_for_bridge_In_1( VReoBridge *bridge );
   2.609 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge );
   2.610 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge );
   2.611  void Auxdoer_for_bridge_Out_0( VReoBridge *bridge );
   2.612  void Auxdoer_for_bridge_Out_1( VReoBridge *bridge );
   2.613  void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge );
   2.614 -void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
   2.615 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge );
   2.616  
   2.617  void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge );
   2.618  void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge );
   2.619  
   2.620  void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge );
   2.621 -void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
   2.622 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge );
   2.623  
   2.624  void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge );
   2.625  void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge );
   2.626  
   2.627 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge );
   2.628 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
   2.629 +
   2.630 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge );
   2.631 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge );
   2.632 +
   2.633 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge );
   2.634 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
   2.635 +
   2.636 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge );
   2.637 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge );
   2.638 +
   2.639  /* Doers for Island 0. */
   2.640  
   2.641  void Doer_0__I0( VReoIsland *island ) {
   2.642 -	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   2.643 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
   2.644  
   2.645  	/* Initialize bridges. */
   2.646  	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   2.647  	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   2.648 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
   2.649  	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   2.650  	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   2.651 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
   2.652  
   2.653  	/* Distribute data. */
   2.654  	bridgeBroad_0Output1->buffer = bridgeBroad_0->buffer;
   2.655  	bridgeBroad_0Output2->buffer = bridgeBroad_0->buffer;
   2.656 +	bridgeBroad_0Output3->buffer = bridgeBroad_0->buffer;
   2.657  	bridgeOut_1->buffer = bridgeBroad_0->buffer;
   2.658 +	bridgeBroad_0Output4->buffer = bridgeBroad_0->buffer;
   2.659  
   2.660  	/* Update bridge status. */
   2.661  	bridgeBroad_0->bridgeIsFull = FALSE;
   2.662  	bridgeBroad_0Output1->bridgeIsFull = TRUE;
   2.663  	bridgeBroad_0Output2->bridgeIsFull = TRUE;
   2.664 +	bridgeBroad_0Output3->bridgeIsFull = TRUE;
   2.665  	bridgeOut_1->bridgeIsFull = TRUE;
   2.666 +	bridgeBroad_0Output4->bridgeIsFull = TRUE;
   2.667  
   2.668  	/* Prepare reader VPs. */
   2.669  	PR_PI__make_slave_ready_for_lang(bridgeOut_1->waitingReaderVP, VReo_MAGIC_NUMBER);
   2.670 @@ -642,8 +931,10 @@
   2.671  	/* Call auxiliary doers to complete this transition. */
   2.672  	Auxdoer_for_bridge_Broad_0Output1(bridgeBroad_0Output1);
   2.673  	Auxdoer_for_bridge_Broad_0Output2(bridgeBroad_0Output2);
   2.674 +	Auxdoer_for_bridge_Broad_0Output3(bridgeBroad_0Output3);
   2.675  	Auxdoer_for_bridge_Out_1(bridgeOut_1);
   2.676  	Auxdoer_for_bridge_Broad_0(bridgeBroad_0);
   2.677 +	Auxdoer_for_bridge_Broad_0Output4(bridgeBroad_0Output4);
   2.678  }
   2.679  
   2.680  /* Doers for Island 1. */
   2.681 @@ -706,6 +997,66 @@
   2.682  	Auxdoer_for_bridge_X_1Input0(bridgeX_1Input0);
   2.683  }
   2.684  
   2.685 +/* Doers for Island 3. */
   2.686 +
   2.687 +void Doer_0__I3( VReoIsland *island ) {
   2.688 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
   2.689 +
   2.690 +	/* Initialize bridges. */
   2.691 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
   2.692 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
   2.693 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
   2.694 +
   2.695 +	/* Distribute data. */
   2.696 +	bridgeIn_2Output0->buffer = bridgeIn_2->buffer;
   2.697 +
   2.698 +	/* Update bridge status. */
   2.699 +	bridgeIn_2->bridgeIsFull = FALSE;
   2.700 +	bridgeX_2Input0->bridgeIsFull = FALSE;
   2.701 +	bridgeIn_2Output0->bridgeIsFull = TRUE;
   2.702 +
   2.703 +	/* Prepare reader VPs. */
   2.704 +
   2.705 +	/* Prepare writer VPs. */
   2.706 +	PR_PI__make_slave_ready_for_lang(bridgeIn_2->waitingWriterVP, VReo_MAGIC_NUMBER);
   2.707 +	bridgeIn_2->waitingWriterVP = NULL;
   2.708 +
   2.709 +	/* Call auxiliary doers to complete this transition. */
   2.710 +	Auxdoer_for_bridge_In_2(bridgeIn_2);
   2.711 +	Auxdoer_for_bridge_X_2Input0(bridgeX_2Input0);
   2.712 +	Auxdoer_for_bridge_In_2Output0(bridgeIn_2Output0);
   2.713 +}
   2.714 +
   2.715 +/* Doers for Island 4. */
   2.716 +
   2.717 +void Doer_0__I4( VReoIsland *island ) {
   2.718 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
   2.719 +
   2.720 +	/* Initialize bridges. */
   2.721 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
   2.722 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
   2.723 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
   2.724 +
   2.725 +	/* Distribute data. */
   2.726 +	bridgeIn_3Output0->buffer = bridgeIn_3->buffer;
   2.727 +
   2.728 +	/* Update bridge status. */
   2.729 +	bridgeIn_3->bridgeIsFull = FALSE;
   2.730 +	bridgeX_3Input0->bridgeIsFull = FALSE;
   2.731 +	bridgeIn_3Output0->bridgeIsFull = TRUE;
   2.732 +
   2.733 +	/* Prepare reader VPs. */
   2.734 +
   2.735 +	/* Prepare writer VPs. */
   2.736 +	PR_PI__make_slave_ready_for_lang(bridgeIn_3->waitingWriterVP, VReo_MAGIC_NUMBER);
   2.737 +	bridgeIn_3->waitingWriterVP = NULL;
   2.738 +
   2.739 +	/* Call auxiliary doers to complete this transition. */
   2.740 +	Auxdoer_for_bridge_In_3(bridgeIn_3);
   2.741 +	Auxdoer_for_bridge_X_3Input0(bridgeX_3Input0);
   2.742 +	Auxdoer_for_bridge_In_3Output0(bridgeIn_3Output0);
   2.743 +}
   2.744 +
   2.745  //==============================================================================
   2.746  
   2.747  /* Auxiliary doers for input bridges. */
   2.748 @@ -722,6 +1073,14 @@
   2.749  	;
   2.750  }
   2.751  
   2.752 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge ) {
   2.753 +	;
   2.754 +}
   2.755 +
   2.756 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge ) {
   2.757 +	;
   2.758 +}
   2.759 +
   2.760  /* Auxiliary doers for output bridges. */
   2.761  
   2.762  void Auxdoer_for_bridge_Out_0( VReoBridge *bridge ) {
   2.763 @@ -759,7 +1118,7 @@
   2.764      	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.765      }
   2.766  }
   2.767 -void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
   2.768 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge ) {
   2.769  	int32 numCheckerFns;
   2.770  	VReoIsland *islandOnOtherSide;
   2.771  	VReoCheckerFn *checkerFns;
   2.772 @@ -861,7 +1220,7 @@
   2.773      	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.774      }
   2.775  }
   2.776 -void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
   2.777 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge ) {
   2.778  	int32 numCheckerFns;
   2.779  	VReoIsland *islandOnOtherSide;
   2.780  	VReoCheckerFn *checkerFns;
   2.781 @@ -936,4 +1295,208 @@
   2.782  
   2.783  		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.784      }
   2.785 +}
   2.786 +
   2.787 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge ) {
   2.788 +	int32 numCheckerFns;
   2.789 +	VReoIsland *islandOnOtherSide;
   2.790 +	VReoCheckerFn *checkerFns;
   2.791 +	VReoDoerFn *doerFns;
   2.792 +
   2.793 +	VReoO1island *o1islandOnOtherSide;
   2.794 +	VReoPartnerQStruct *partnerQstruct;
   2.795 +
   2.796 +	if (bridge->readerType == Island) {
   2.797 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.798 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.799 +		checkerFns = bridge->readerCheckerFns;
   2.800 +		doerFns = bridge->readerDoerFns;
   2.801 +
   2.802 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.803 +    }
   2.804 +
   2.805 +    else if (bridge->readerType == O1island) { 
   2.806 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.807 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.808 +
   2.809 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.810 +    }
   2.811 +}
   2.812 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
   2.813 +	int32 numCheckerFns;
   2.814 +	VReoIsland *islandOnOtherSide;
   2.815 +	VReoCheckerFn *checkerFns;
   2.816 +	VReoDoerFn *doerFns;
   2.817 +
   2.818 +	VReoO1island *o1islandOnOtherSide;
   2.819 +	VReoPartnerQStruct *partnerQstruct;
   2.820 +
   2.821 +	if (bridge->writerType == Island) {
   2.822 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.823 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.824 +		checkerFns = bridge->writerCheckerFns;
   2.825 +		doerFns = bridge->writerDoerFns;
   2.826 +
   2.827 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.828 +    }
   2.829 +
   2.830 +	else if (bridge->writerType == O1island) { 
   2.831 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.832 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.833 +
   2.834 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.835 +    }
   2.836 +}
   2.837 +
   2.838 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge ) {
   2.839 +	int32 numCheckerFns;
   2.840 +	VReoIsland *islandOnOtherSide;
   2.841 +	VReoCheckerFn *checkerFns;
   2.842 +	VReoDoerFn *doerFns;
   2.843 +
   2.844 +	VReoO1island *o1islandOnOtherSide;
   2.845 +	VReoPartnerQStruct *partnerQstruct;
   2.846 +
   2.847 +	if (bridge->readerType == Island) {
   2.848 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.849 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.850 +		checkerFns = bridge->readerCheckerFns;
   2.851 +		doerFns = bridge->readerDoerFns;
   2.852 +
   2.853 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.854 +    }
   2.855 +
   2.856 +    else if (bridge->readerType == O1island) { 
   2.857 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.858 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.859 +
   2.860 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.861 +    }
   2.862 +}
   2.863 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge ) {
   2.864 +	int32 numCheckerFns;
   2.865 +	VReoIsland *islandOnOtherSide;
   2.866 +	VReoCheckerFn *checkerFns;
   2.867 +	VReoDoerFn *doerFns;
   2.868 +
   2.869 +	VReoO1island *o1islandOnOtherSide;
   2.870 +	VReoPartnerQStruct *partnerQstruct;
   2.871 +
   2.872 +	if (bridge->writerType == Island) {
   2.873 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.874 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.875 +		checkerFns = bridge->writerCheckerFns;
   2.876 +		doerFns = bridge->writerDoerFns;
   2.877 +
   2.878 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.879 +    }
   2.880 +
   2.881 +	else if (bridge->writerType == O1island) { 
   2.882 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.883 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.884 +
   2.885 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.886 +    }
   2.887 +}
   2.888 +
   2.889 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge ) {
   2.890 +	int32 numCheckerFns;
   2.891 +	VReoIsland *islandOnOtherSide;
   2.892 +	VReoCheckerFn *checkerFns;
   2.893 +	VReoDoerFn *doerFns;
   2.894 +
   2.895 +	VReoO1island *o1islandOnOtherSide;
   2.896 +	VReoPartnerQStruct *partnerQstruct;
   2.897 +
   2.898 +	if (bridge->readerType == Island) {
   2.899 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.900 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.901 +		checkerFns = bridge->readerCheckerFns;
   2.902 +		doerFns = bridge->readerDoerFns;
   2.903 +
   2.904 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.905 +    }
   2.906 +
   2.907 +    else if (bridge->readerType == O1island) { 
   2.908 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.909 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.910 +
   2.911 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.912 +    }
   2.913 +}
   2.914 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
   2.915 +	int32 numCheckerFns;
   2.916 +	VReoIsland *islandOnOtherSide;
   2.917 +	VReoCheckerFn *checkerFns;
   2.918 +	VReoDoerFn *doerFns;
   2.919 +
   2.920 +	VReoO1island *o1islandOnOtherSide;
   2.921 +	VReoPartnerQStruct *partnerQstruct;
   2.922 +
   2.923 +	if (bridge->writerType == Island) {
   2.924 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.925 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.926 +		checkerFns = bridge->writerCheckerFns;
   2.927 +		doerFns = bridge->writerDoerFns;
   2.928 +
   2.929 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.930 +    }
   2.931 +
   2.932 +	else if (bridge->writerType == O1island) { 
   2.933 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.934 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.935 +
   2.936 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.937 +    }
   2.938 +}
   2.939 +
   2.940 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge ) {
   2.941 +	int32 numCheckerFns;
   2.942 +	VReoIsland *islandOnOtherSide;
   2.943 +	VReoCheckerFn *checkerFns;
   2.944 +	VReoDoerFn *doerFns;
   2.945 +
   2.946 +	VReoO1island *o1islandOnOtherSide;
   2.947 +	VReoPartnerQStruct *partnerQstruct;
   2.948 +
   2.949 +	if (bridge->readerType == Island) {
   2.950 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.951 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.952 +		checkerFns = bridge->readerCheckerFns;
   2.953 +		doerFns = bridge->readerDoerFns;
   2.954 +
   2.955 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.956 +    }
   2.957 +
   2.958 +    else if (bridge->readerType == O1island) { 
   2.959 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.960 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.961 +
   2.962 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.963 +    }
   2.964 +}
   2.965 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge ) {
   2.966 +	int32 numCheckerFns;
   2.967 +	VReoIsland *islandOnOtherSide;
   2.968 +	VReoCheckerFn *checkerFns;
   2.969 +	VReoDoerFn *doerFns;
   2.970 +
   2.971 +	VReoO1island *o1islandOnOtherSide;
   2.972 +	VReoPartnerQStruct *partnerQstruct;
   2.973 +
   2.974 +	if (bridge->writerType == Island) {
   2.975 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.976 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.977 +		checkerFns = bridge->writerCheckerFns;
   2.978 +		doerFns = bridge->writerDoerFns;
   2.979 +
   2.980 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.981 +    }
   2.982 +
   2.983 +	else if (bridge->writerType == O1island) { 
   2.984 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.985 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.986 +
   2.987 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.988 +    }
   2.989  }
   2.990 \ No newline at end of file
     3.1 --- a/Reo__Matrix_Mult/Circuit.h	Wed Feb 19 09:27:10 2014 -0800
     3.2 +++ b/Reo__Matrix_Mult/Circuit.h	Sat Mar 29 06:02:18 2014 -0700
     3.3 @@ -5,33 +5,35 @@
     3.4  //#include "VReo_impl/VReo.h"
     3.5  #include <PR__include/PR__structs__common.h>
     3.6  #include <PR__include/langlets/vreo_wrapper_library.h>
     3.7 -#include <PR__include/prqueue.h>
     3.8 -#include <PR__include/PR__WL.h>
     3.9  
    3.10  //==============================================================================
    3.11  
    3.12  /* Counts. */
    3.13 -#define NUM_VPs 5
    3.14 -#define NUM_PROD 3
    3.15 -#define NUM_ISLANDS 3
    3.16 +#define NUM_VPs 7
    3.17 +#define NUM_PROD 5
    3.18 +#define NUM_ISLANDS 5
    3.19  #define NUM_O1ISLANDS 1
    3.20 -#define NUM_BRIDGES 9
    3.21 -#define NUM_BOUNDARY_BRIDGES 5
    3.22 +#define NUM_BRIDGES 15
    3.23 +#define NUM_BOUNDARY_BRIDGES 7
    3.24  
    3.25  /* Producer VPs attached to circuit. */
    3.26  #define CKT_VP_PROD0 0
    3.27  #define CKT_VP_PROD1 1
    3.28  #define CKT_VP_PROD2 2
    3.29 +#define CKT_VP_PROD3 3
    3.30 +#define CKT_VP_PROD4 4
    3.31  
    3.32  /* Consumer VPs attached to circuit. */
    3.33 -// #define CKT_VP_CONS0 (3+0)
    3.34 -// #define CKT_VP_CONS1 (3+1)
    3.35 -#define CKT_VP_CONS0 3
    3.36 +// #define CKT_VP_CONS0 (5+0)
    3.37 +// #define CKT_VP_CONS1 (5+1)
    3.38 +#define CKT_VP_CONS0 5
    3.39  
    3.40  /* Islands in circuit. */
    3.41  #define CKT_I0 0
    3.42  #define CKT_I1 1
    3.43  #define CKT_I2 2
    3.44 +#define CKT_I3 3
    3.45 +#define CKT_I4 4
    3.46  
    3.47  /* O1Islands in circuit. */
    3.48  #define CKT_O1I0 0
    3.49 @@ -40,30 +42,50 @@
    3.50  #define CKT_BRIDGE_Broad_0 0
    3.51  #define CKT_BRIDGE_In_0 1
    3.52  #define CKT_BRIDGE_In_1 2
    3.53 -#define CKT_BRIDGE_Out_0 3
    3.54 -#define CKT_BRIDGE_Out_1 4
    3.55 +#define CKT_BRIDGE_In_2 3
    3.56 +#define CKT_BRIDGE_In_3 4
    3.57 +#define CKT_BRIDGE_Out_0 5
    3.58 +#define CKT_BRIDGE_Out_1 6
    3.59  
    3.60 -#define CKT_BRIDGE_FIFO0 (5+0)
    3.61 -#define CKT_BRIDGE_In_0Output1 (5+0)
    3.62 -#define CKT_BRIDGE_Out_0Input1 (5+0)
    3.63 +#define CKT_BRIDGE_FIFO0 (7+0)
    3.64 +#define CKT_BRIDGE_In_0Output1 (7+0)
    3.65 +#define CKT_BRIDGE_Out_0Input3 (7+0)
    3.66  
    3.67 -#define CKT_BRIDGE_FIFO1 (5+1)
    3.68 -#define CKT_BRIDGE_Broad_0Output1 (5+1)
    3.69 -#define CKT_BRIDGE_X_0Input0 (5+1)
    3.70 +#define CKT_BRIDGE_FIFO1 (7+1)
    3.71 +#define CKT_BRIDGE_Broad_0Output1 (7+1)
    3.72 +#define CKT_BRIDGE_X_0Input0 (7+1)
    3.73  
    3.74 -#define CKT_BRIDGE_FIFO2 (5+2)
    3.75 -#define CKT_BRIDGE_In_1Output0 (5+2)
    3.76 -#define CKT_BRIDGE_Out_0Input0 (5+2)
    3.77 +#define CKT_BRIDGE_FIFO2 (7+2)
    3.78 +#define CKT_BRIDGE_In_1Output0 (7+2)
    3.79 +#define CKT_BRIDGE_Out_0Input2 (7+2)
    3.80  
    3.81 -#define CKT_BRIDGE_FIFO3 (5+3)
    3.82 -#define CKT_BRIDGE_Broad_0Output2 (5+3)
    3.83 -#define CKT_BRIDGE_X_1Input0 (5+3)
    3.84 +#define CKT_BRIDGE_FIFO3 (7+3)
    3.85 +#define CKT_BRIDGE_Broad_0Output2 (7+3)
    3.86 +#define CKT_BRIDGE_X_1Input0 (7+3)
    3.87 +
    3.88 +#define CKT_BRIDGE_FIFO4 (7+4)
    3.89 +#define CKT_BRIDGE_In_2Output0 (7+4)
    3.90 +#define CKT_BRIDGE_Out_0Input1 (7+4)
    3.91 +
    3.92 +#define CKT_BRIDGE_FIFO5 (7+5)
    3.93 +#define CKT_BRIDGE_Broad_0Output3 (7+5)
    3.94 +#define CKT_BRIDGE_X_2Input0 (7+5)
    3.95 +
    3.96 +#define CKT_BRIDGE_FIFO6 (7+6)
    3.97 +#define CKT_BRIDGE_In_3Output0 (7+6)
    3.98 +#define CKT_BRIDGE_Out_0Input0 (7+6)
    3.99 +
   3.100 +#define CKT_BRIDGE_FIFO7 (7+7)
   3.101 +#define CKT_BRIDGE_Broad_0Output4 (7+7)
   3.102 +#define CKT_BRIDGE_X_3Input0 (7+7)
   3.103  
   3.104  /* Bridges in Island 0. */
   3.105  #define I0_BRIDGE_Broad_0Output1 0
   3.106  #define I0_BRIDGE_Broad_0Output2 1
   3.107 -#define I0_BRIDGE_Out_1 2
   3.108 -#define I0_BRIDGE_Broad_0 3
   3.109 +#define I0_BRIDGE_Broad_0Output3 2
   3.110 +#define I0_BRIDGE_Out_1 3
   3.111 +#define I0_BRIDGE_Broad_0 4
   3.112 +#define I0_BRIDGE_Broad_0Output4 5
   3.113  
   3.114  /* Bridges in Island 1. */
   3.115  #define I1_BRIDGE_X_0Input0 0
   3.116 @@ -75,21 +97,35 @@
   3.117  #define I2_BRIDGE_In_1 1
   3.118  #define I2_BRIDGE_X_1Input0 2
   3.119  
   3.120 +/* Bridges in Island 3. */
   3.121 +#define I3_BRIDGE_In_2 0
   3.122 +#define I3_BRIDGE_X_2Input0 1
   3.123 +#define I3_BRIDGE_In_2Output0 2
   3.124 +
   3.125 +/* Bridges in Island 4. */
   3.126 +#define I4_BRIDGE_In_3 0
   3.127 +#define I4_BRIDGE_X_3Input0 1
   3.128 +#define I4_BRIDGE_In_3Output0 2
   3.129 +
   3.130  /* Bridges in O1Island 0. */
   3.131 -#define O1I0_BRIDGE_Out_0 0
   3.132 -#define O1I0_BRIDGE_Out_0Input1 1
   3.133 -#define O1I0_BRIDGE_Out_0Input0 2
   3.134 +#define O1I0_BRIDGE_Out_0Input3 0
   3.135 +#define O1I0_BRIDGE_Out_0 1
   3.136 +#define O1I0_BRIDGE_Out_0Input2 2
   3.137 +#define O1I0_BRIDGE_Out_0Input1 3
   3.138 +#define O1I0_BRIDGE_Out_0Input0 4
   3.139  
   3.140  /* Readiness of boundary bridges. */
   3.141  #define READY_FOR_READ_BRIDGE_Broad_0 bridgeBroad_0->bridgeIsFull
   3.142  #define READY_FOR_READ_BRIDGE_In_0 bridgeIn_0->bridgeIsFull
   3.143  #define READY_FOR_READ_BRIDGE_In_1 bridgeIn_1->bridgeIsFull
   3.144 +#define READY_FOR_READ_BRIDGE_In_2 bridgeIn_2->bridgeIsFull
   3.145 +#define READY_FOR_READ_BRIDGE_In_3 bridgeIn_3->bridgeIsFull
   3.146  #define READY_FOR_WRITE_BRIDGE_Out_0 bridgeOut_0->waitingReaderVP
   3.147  #define READY_FOR_WRITE_BRIDGE_Out_1 bridgeOut_1->waitingReaderVP
   3.148  
   3.149  /* Readiness of bridges of FIFO 0. */ 
   3.150  #define READY_FOR_WRITE_BRIDGE_In_0Output1 !bridgeIn_0Output1->bridgeIsFull
   3.151 -#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
   3.152 +#define READY_FOR_READ_BRIDGE_Out_0Input3 bridgeOut_0Input3->bridgeIsFull
   3.153  
   3.154  /* Readiness of bridges of FIFO 1. */ 
   3.155  #define READY_FOR_WRITE_BRIDGE_Broad_0Output1 !bridgeBroad_0Output1->bridgeIsFull
   3.156 @@ -97,17 +133,35 @@
   3.157  
   3.158  /* Readiness of bridges of FIFO 2. */ 
   3.159  #define READY_FOR_WRITE_BRIDGE_In_1Output0 !bridgeIn_1Output0->bridgeIsFull
   3.160 -#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
   3.161 +#define READY_FOR_READ_BRIDGE_Out_0Input2 bridgeOut_0Input2->bridgeIsFull
   3.162  
   3.163  /* Readiness of bridges of FIFO 3. */ 
   3.164  #define READY_FOR_WRITE_BRIDGE_Broad_0Output2 !bridgeBroad_0Output2->bridgeIsFull
   3.165  #define READY_FOR_READ_BRIDGE_X_1Input0 bridgeX_1Input0->bridgeIsFull
   3.166  
   3.167 +/* Readiness of bridges of FIFO 4. */ 
   3.168 +#define READY_FOR_WRITE_BRIDGE_In_2Output0 !bridgeIn_2Output0->bridgeIsFull
   3.169 +#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
   3.170 +
   3.171 +/* Readiness of bridges of FIFO 5. */ 
   3.172 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output3 !bridgeBroad_0Output3->bridgeIsFull
   3.173 +#define READY_FOR_READ_BRIDGE_X_2Input0 bridgeX_2Input0->bridgeIsFull
   3.174 +
   3.175 +/* Readiness of bridges of FIFO 6. */ 
   3.176 +#define READY_FOR_WRITE_BRIDGE_In_3Output0 !bridgeIn_3Output0->bridgeIsFull
   3.177 +#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
   3.178 +
   3.179 +/* Readiness of bridges of FIFO 7. */ 
   3.180 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output4 !bridgeBroad_0Output4->bridgeIsFull
   3.181 +#define READY_FOR_READ_BRIDGE_X_3Input0 bridgeX_3Input0->bridgeIsFull
   3.182 +
   3.183  /* Number of checkers per bridge in Island 0. */
   3.184  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 1
   3.185  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 1
   3.186 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 1
   3.187  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 1
   3.188  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 1
   3.189 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 1
   3.190  
   3.191  /* Number of checkers per bridge in Island 1. */
   3.192  #define NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 1
   3.193 @@ -119,9 +173,19 @@
   3.194  #define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 1
   3.195  #define NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 1
   3.196  
   3.197 +/* Number of checkers per bridge in Island 3. */
   3.198 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 1
   3.199 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 1
   3.200 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 1
   3.201 +
   3.202 +/* Number of checkers per bridge in Island 4. */
   3.203 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 1
   3.204 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 1
   3.205 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 1
   3.206 +
   3.207  /* Checkers and doers for Island 0. */
   3.208 -#define CHECKER3_I0 Checker_0__I0
   3.209 -#define    DOER3_I0 Doer_0__I0
   3.210 +#define CHECKER2_I0 Checker_0__I0
   3.211 +#define    DOER2_I0 Doer_0__I0
   3.212  
   3.213  /* Checkers and doers for Island 1. */
   3.214  #define CHECKER2_I1 Checker_0__I1
   3.215 @@ -131,6 +195,14 @@
   3.216  #define CHECKER3_I2 Checker_0__I2
   3.217  #define    DOER3_I2 Doer_0__I2
   3.218  
   3.219 +/* Checkers and doers for Island 3. */
   3.220 +#define CHECKER2_I3 Checker_0__I3
   3.221 +#define    DOER2_I3 Doer_0__I3
   3.222 +
   3.223 +/* Checkers and doers for Island 4. */
   3.224 +#define CHECKER3_I4 Checker_0__I4
   3.225 +#define    DOER3_I4 Doer_0__I4
   3.226 +
   3.227  //==============================================================================
   3.228  
   3.229  /* Create VPs and connect. */
   3.230 @@ -148,6 +220,12 @@
   3.231  /* Checkers of Island 2. */
   3.232  bool32 Checker_0__I2( VReoIsland *island );
   3.233  
   3.234 +/* Checkers of Island 3. */
   3.235 +bool32 Checker_0__I3( VReoIsland *island );
   3.236 +
   3.237 +/* Checkers of Island 4. */
   3.238 +bool32 Checker_0__I4( VReoIsland *island );
   3.239 +
   3.240  /* Doers of Island 0. */
   3.241  void Doer_0__I0( VReoIsland *island );
   3.242  
   3.243 @@ -157,4 +235,10 @@
   3.244  /* Doers of Island 2. */
   3.245  void Doer_0__I2( VReoIsland *island );
   3.246  
   3.247 +/* Doers of Island 3. */
   3.248 +void Doer_0__I3( VReoIsland *island );
   3.249 +
   3.250 +/* Doers of Island 4. */
   3.251 +void Doer_0__I4( VReoIsland *island );
   3.252 +
   3.253  #endif	/* _Circuit_App1_H */
   3.254 \ No newline at end of file
     4.1 --- a/Reo__Matrix_Mult/DivideWork.c	Wed Feb 19 09:27:10 2014 -0800
     4.2 +++ b/Reo__Matrix_Mult/DivideWork.c	Sat Mar 29 06:02:18 2014 -0700
     4.3 @@ -31,16 +31,15 @@
     4.4  
     4.5     if( leftMatrix->numRows != rightMatrix->numCols ) 
     4.6      { printf("error: left num rows must == right num cols\n"); exit(0);}
     4.7 -   if( leftMatrix->numRows % 4 != 0 ) 
     4.8 -    { printf("error: left num rows must be divisible by 4\n"); exit(0);}
     4.9  
    4.10     targetDivisor = (int)sqrt( targetNumUnits );
    4.11     targetIncrement = (int)(leftMatrix->numRows / targetDivisor);
    4.12 -   if( targetDivisor * targetDivisor != targetNumUnits ||
    4.13 -       targetIncrement * targetDivisor != leftMatrix->numRows ) 
    4.14 -    { printf("error: the target number of units to be made must be a perfect square and it must evenly divide the left number of rows (vector length)\n");
    4.15 +   if( targetDivisor * targetDivisor != targetNumUnits ) 
    4.16 +    { printf("error: the target number of units to be made must be a perfect square: %d)\n", targetNumUnits);
    4.17        fflush(stdout); exit(0);
    4.18      }
    4.19 +   if( targetIncrement * targetDivisor != leftMatrix->numRows  ) 
    4.20 +    { printf("error: left num rows [%d] must be divisible by sqrt(num work-units to make) [%d]\n", leftMatrix->numRows, targetDivisor); exit(0);}
    4.21     
    4.22     
    4.23        //make a data struct for each work unit, and fill it with params of work
     5.1 --- a/Reo__Matrix_Mult/Producer_and_Consumer.c	Wed Feb 19 09:27:10 2014 -0800
     5.2 +++ b/Reo__Matrix_Mult/Producer_and_Consumer.c	Sat Mar 29 06:02:18 2014 -0700
     5.3 @@ -10,6 +10,41 @@
     5.4  #include "Reo__Matrix_Mult.h"
     5.5  #include "../Matrix_Mult.h"
     5.6  
     5.7 +#define NEVER_ENDS 1
     5.8 +
     5.9 +/*The input to a VP's birth function is a struct that holds two arrays of
    5.10 + * pointers to bridges -- one for input bridges, one for output bridges
    5.11 + */
    5.12 +void 
    5.13 +broadcast_producer_Fn(void *_birthParams, SlaveVP *animVP) 
    5.14 + {
    5.15 +   VPParams *birthParams = (VPParams *) _birthParams;
    5.16 +
    5.17 +   //Tell the Reo tool that generates circuit about the bridges of this VP
    5.18 +   //#Reo numInBridges 0 | numOutbridges 1
    5.19 +   VReoBridge **outBridges = birthParams->outBridges;
    5.20 +   VReoBridge *bridge;
    5.21 +   TestAppProdConsMsg *msg;
    5.22 +   int32 i = 0;
    5.23 +
    5.24 +         DEBUG__printf(dbgAppFlow, "Broadcast Producer on core: %d", animVP->coreAnimatedBy);
    5.25 +
    5.26 +   bridge = outBridges[0];
    5.27 +
    5.28 +   //broadcast producer continually puts things onto its output port
    5.29 +   msg = PR__malloc(sizeof(TestAppProdConsMsg));
    5.30 +   msg->producerID = animVP->slaveNum;
    5.31 +   for( i = 0; i < numIterations; i++ )
    5.32 +    {
    5.33 +      msg->producedCnt = i;
    5.34 +      VReo__put_into_bridge(msg, bridge, animVP);
    5.35 +      DEBUG__printf(dbgAppFlow, "Broadcast Producer %d, put in %d", msg->producerID,
    5.36 +                    msg->producedCnt);
    5.37 +    }
    5.38 +         DEBUG__printf(dbgAppFlow, "Broadcast producer ending");
    5.39 +   VReo__end_VP(animVP);
    5.40 + }
    5.41 +
    5.42  /*The input to a VP's birth function is a struct that holds two arrays of
    5.43   * pointers to bridges -- one for input bridges, one for output bridges
    5.44   * and, optionally, an array of workUnit params.
    5.45 @@ -23,23 +58,23 @@
    5.46     //#Reo numInBridges 0 | numOutbridges 1
    5.47     VReoBridge **outBridges = birthParams->outBridges;
    5.48     VReoBridge *bridge;
    5.49 -   TestAppProdConsMsg *msg;
    5.50     MatrixMultWorkUnit *matrixMultWorkUnit;
    5.51     int32 i;
    5.52  
    5.53 -         DEBUG__printf( dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy );
    5.54 +         DEBUG__printf( dbgAppFlow, "Started Multiply Producer: %d on core: %d", animVP->slaveNum, animVP->coreAnimatedBy );
    5.55  
    5.56     bridge = outBridges[0];
    5.57  	
    5.58     //Do the multiplies
    5.59     matrixMultWorkUnit = (MatrixMultWorkUnit *)birthParams->initData;
    5.60 -   for (i = 0; i < NUM_ITER; i++) 
    5.61 +   for (i = 0; i < numIterations; i++) 
    5.62      {
    5.63        calcProduct( matrixMultWorkUnit ); //result appears by side effect
    5.64        VReo__put_into_bridge( matrixMultWorkUnit, bridge, animVP );
    5.65              DEBUG__printf( dbgAppFlow, "Producer %d, put in %d", 
    5.66 -                           msg->producerID, msg->producedCnt );
    5.67 +                           animVP->slaveNum, i );
    5.68      }
    5.69 +         DEBUG__printf(dbgAppFlow, "Producer %d done, ending", animVP->slaveNum);
    5.70     VReo__end_VP( animVP );
    5.71   }
    5.72  
    5.73 @@ -75,13 +110,13 @@
    5.74     float *finalArray, *partArray;
    5.75     Matrix *leftMatrix, *rightMatrix, *resultMatrix;
    5.76     
    5.77 -   for (i = 0; i < NUM_ITER; i++) 
    5.78 +   for (i = 0; i < numIterations; i++) 
    5.79      {
    5.80 -      for (j = 0; j < NUM_PROD; j++) 
    5.81 +      for (j = 0; j < NUM_PROD -1; j++) 
    5.82         {
    5.83           //get next result from a producer
    5.84           resWorkUnit   = (MatrixMultWorkUnit *) VReo__get_from_bridge(inBridge0, animVP);
    5.85 -               DEBUG__printf( dbgAppFlow, "Consumer got \n" );
    5.86 +               DEBUG__printf( dbgAppFlow, "Consumer got something" );
    5.87           //now set up variables will use to copy partial result to final matrix array
    5.88           partArray     = resWorkUnit->prodArray;
    5.89           resultMatrix  = resWorkUnit->resultMatrix; //matrix for full orig piece
    5.90 @@ -115,10 +150,11 @@
    5.91  //         PR__free(resWorkUnit->partResArray);
    5.92  //         PR__free(resWorkUnit);
    5.93         }
    5.94 -
    5.95 +            DEBUG__printf(dbgAppFlow, "Completed Iteration: %d", i+1);
    5.96        //tell producers they can go on to next matrix
    5.97        VReo__get_from_bridge(inBridge1, animVP); //doing a get triggers broadcast
    5.98      }
    5.99 +         DEBUG__printf(dbgAppFlow, "Consumer done, ending");
   5.100     VReo__end_VP(animVP);
   5.101   }
   5.102  
     6.1 --- a/Reo__Matrix_Mult/Reo__Matrix_Mult.h	Wed Feb 19 09:27:10 2014 -0800
     6.2 +++ b/Reo__Matrix_Mult/Reo__Matrix_Mult.h	Sat Mar 29 06:02:18 2014 -0700
     6.3 @@ -4,10 +4,11 @@
     6.4  #include <stdio.h>
     6.5  
     6.6  #include <PR__include/langlets/vreo_wrapper_library.h>
     6.7 +#include "../PR_defs__turn_on_and_off.h"
     6.8  #include "Circuit.h"
     6.9  #include "../Matrix_Mult.h"
    6.10  
    6.11 -extern int NUM_ITER;
    6.12 +extern int numIterations;
    6.13  
    6.14  //===============================  Defines  ==============================
    6.15  /* The parameter values in here represent one unit of work
    6.16 @@ -80,6 +81,7 @@
    6.17  
    6.18  //============================= Processor Functions =========================
    6.19  void matrix_mult__seed_Fn(void *data, SlaveVP *animatingVP); //seed VP function
    6.20 +void broadcast_producer_Fn(void *_birthParams, SlaveVP *animVP); 
    6.21  void producer_Fn(void *data, SlaveVP *animatingVP);
    6.22  void consumer_Fn(void *data, SlaveVP *animatingVP);
    6.23  
     7.1 --- a/Reo__Matrix_Mult/SeedVP.c	Wed Feb 19 09:27:10 2014 -0800
     7.2 +++ b/Reo__Matrix_Mult/SeedVP.c	Sat Mar 29 06:02:18 2014 -0700
     7.3 @@ -79,7 +79,7 @@
     7.4  	#endif
     7.5  
     7.6  		fflush(stdout);
     7.7 -		exit(0);
     7.8 +//                exit(0);
     7.9  
    7.10  	/* Stop Reo plug-in. */
    7.11  	VReo__shutdown(seedVP);
     8.1 --- a/main.c	Wed Feb 19 09:27:10 2014 -0800
     8.2 +++ b/main.c	Sat Mar 29 06:02:18 2014 -0700
     8.3 @@ -9,7 +9,7 @@
     8.4  
     8.5  // =============================================================================
     8.6  
     8.7 -int NUM_ITER;
     8.8 +int numIterations;
     8.9  
    8.10  
    8.11  int main(int argc, char **argv) 
    8.12 @@ -24,10 +24,10 @@
    8.13     
    8.14           DEBUG__printf(TRUE, "arguments --  numIter: %s | path: %s", argv[1], argv[2] );
    8.15     if(argc < 3) {printf("give: num iter and path to param file on cmd line\n"); exit(1);}
    8.16 -   NUM_ITER = atoi(argv[1]);
    8.17 -   numUnitsToMake = NUM_PROD;  //defined by Reo circuit generator
    8.18 +   numIterations = atoi(argv[1]);
    8.19 +   numUnitsToMake = NUM_PROD-1;  //defined by Reo circuit generator
    8.20     
    8.21 -         printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, NUM_ITER, argv[2]);
    8.22 +         printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, numIterations, argv[2]);
    8.23  
    8.24           set_up_performance_counters();
    8.25     
    8.26 @@ -80,6 +80,7 @@
    8.27     
    8.28     PR__wait_for_process_to_end(matrixMultProcess);
    8.29     PR__wait_for_all_activity_to_end();
    8.30 +         DEBUG__printf(dbgAppFlow, "activity ended, about to call PR__shutdown");
    8.31     fflush(stdout);
    8.32     PR__shutdown();
    8.33     
     9.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk	Wed Feb 19 09:27:10 2014 -0800
     9.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug.mk	Sat Mar 29 06:02:18 2014 -0700
     9.3 @@ -38,11 +38,11 @@
     9.4  	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
     9.5  	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
     9.6  	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
     9.7 -	${OBJECTDIR}/_ext/1702716545/Circuit.o \
     9.8  	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
     9.9  	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
    9.10  	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
    9.11 -	${OBJECTDIR}/_ext/1472/main.o
    9.12 +	${OBJECTDIR}/_ext/1472/main.o \
    9.13 +	${OBJECTDIR}/_ext/1435311123/Circuit.o
    9.14  
    9.15  
    9.16  # C Compiler Flags
    9.17 @@ -84,11 +84,6 @@
    9.18  	${RM} "$@.d"
    9.19  	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
    9.20  
    9.21 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 
    9.22 -	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
    9.23 -	${RM} "$@.d"
    9.24 -	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
    9.25 -
    9.26  ${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 
    9.27  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
    9.28  	${RM} "$@.d"
    9.29 @@ -109,6 +104,11 @@
    9.30  	${RM} "$@.d"
    9.31  	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
    9.32  
    9.33 +${OBJECTDIR}/_ext/1435311123/Circuit.o: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c 
    9.34 +	${MKDIR} -p ${OBJECTDIR}/_ext/1435311123
    9.35 +	${RM} "$@.d"
    9.36 +	$(COMPILE.c) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1435311123/Circuit.o /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c
    9.37 +
    9.38  # Subprojects
    9.39  .build-subprojects:
    9.40  
    10.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk	Wed Feb 19 09:27:10 2014 -0800
    10.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk	Sat Mar 29 06:02:18 2014 -0700
    10.3 @@ -38,11 +38,11 @@
    10.4  	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
    10.5  	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
    10.6  	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
    10.7 -	${OBJECTDIR}/_ext/1702716545/Circuit.o \
    10.8  	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
    10.9  	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   10.10  	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   10.11 -	${OBJECTDIR}/_ext/1472/main.o
   10.12 +	${OBJECTDIR}/_ext/1472/main.o \
   10.13 +	${OBJECTDIR}/_ext/1435311123/Circuit.o
   10.14  
   10.15  
   10.16  # C Compiler Flags
   10.17 @@ -59,66 +59,78 @@
   10.18  ASFLAGS=
   10.19  
   10.20  # Link Libraries and Options
   10.21 -LDLIBSOPTIONS=-L../../PR__lib -lpr__ml__sharedmem__dku_debug -lprmalloc -lprparam -lprqueue -lreo_wrapper_lib_opt1
   10.22 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib -lprmalloc -lprparam -lprqueue -lm -Wl,-rpath,/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -L/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -lreo_opt1_ml_lib -Wl,-rpath,/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -L/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -lpr__ml__sharedmem_debug_seq
   10.23  
   10.24  # Build Targets
   10.25  .build-conf: ${BUILD_SUBPROJECTS}
   10.26 -	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
   10.27 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../dist/bin/reo_matrix_mult__debug_seq
   10.28  
   10.29 -${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES}
   10.30 -	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
   10.31 -	${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS}
   10.32 +../../dist/bin/reo_matrix_mult__debug_seq: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib/libreo_opt1_ml_lib.so
   10.33 +
   10.34 +../../dist/bin/reo_matrix_mult__debug_seq: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib/libpr__ml__sharedmem_debug_seq.so
   10.35 +
   10.36 +../../dist/bin/reo_matrix_mult__debug_seq: ${OBJECTFILES}
   10.37 +	${MKDIR} -p ../../dist/bin
   10.38 +	${LINK.c} -o ../../dist/bin/reo_matrix_mult__debug_seq ${OBJECTFILES} ${LDLIBSOPTIONS}
   10.39  
   10.40  ${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 
   10.41  	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   10.42  	${RM} "$@.d"
   10.43 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   10.44 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   10.45  
   10.46  ${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 
   10.47  	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   10.48  	${RM} "$@.d"
   10.49 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   10.50 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   10.51  
   10.52  ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 
   10.53  	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   10.54  	${RM} "$@.d"
   10.55 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   10.56 -
   10.57 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 
   10.58 -	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   10.59 -	${RM} "$@.d"
   10.60 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   10.61 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   10.62  
   10.63  ${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 
   10.64  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   10.65  	${RM} "$@.d"
   10.66 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
   10.67 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
   10.68  
   10.69  ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 
   10.70  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   10.71  	${RM} "$@.d"
   10.72 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
   10.73 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
   10.74  
   10.75  ${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 
   10.76  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   10.77  	${RM} "$@.d"
   10.78 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
   10.79 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
   10.80  
   10.81  ${OBJECTDIR}/_ext/1472/main.o: ../main.c 
   10.82  	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   10.83  	${RM} "$@.d"
   10.84 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
   10.85 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
   10.86 +
   10.87 +${OBJECTDIR}/_ext/1435311123/Circuit.o: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c 
   10.88 +	${MKDIR} -p ${OBJECTDIR}/_ext/1435311123
   10.89 +	${RM} "$@.d"
   10.90 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1435311123/Circuit.o /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c
   10.91  
   10.92  # Subprojects
   10.93  .build-subprojects:
   10.94 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug
   10.95 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON
   10.96 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug
   10.97 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON
   10.98  
   10.99  # Clean Targets
  10.100  .clean-conf: ${CLEAN_SUBPROJECTS}
  10.101  	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  10.102 -	${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
  10.103 +	${RM} ../../dist/bin/reo_matrix_mult__debug_seq
  10.104  
  10.105  # Subprojects
  10.106  .clean-subprojects:
  10.107 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug clean
  10.108 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON clean
  10.109 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug clean
  10.110 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON clean
  10.111  
  10.112  # Enable dependency checking
  10.113  .dep.inc: .depcheck-impl
    11.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk	Wed Feb 19 09:27:10 2014 -0800
    11.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Release.mk	Sat Mar 29 06:02:18 2014 -0700
    11.3 @@ -38,11 +38,11 @@
    11.4  	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
    11.5  	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
    11.6  	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
    11.7 -	${OBJECTDIR}/_ext/1702716545/Circuit.o \
    11.8  	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
    11.9  	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   11.10  	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   11.11 -	${OBJECTDIR}/_ext/1472/main.o
   11.12 +	${OBJECTDIR}/_ext/1472/main.o \
   11.13 +	${OBJECTDIR}/_ext/1435311123/Circuit.o
   11.14  
   11.15  
   11.16  # C Compiler Flags
   11.17 @@ -84,11 +84,6 @@
   11.18  	${RM} "$@.d"
   11.19  	$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   11.20  
   11.21 -${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 
   11.22 -	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   11.23 -	${RM} "$@.d"
   11.24 -	$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   11.25 -
   11.26  ${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 
   11.27  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   11.28  	${RM} "$@.d"
   11.29 @@ -109,6 +104,11 @@
   11.30  	${RM} "$@.d"
   11.31  	$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
   11.32  
   11.33 +${OBJECTDIR}/_ext/1435311123/Circuit.o: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c 
   11.34 +	${MKDIR} -p ${OBJECTDIR}/_ext/1435311123
   11.35 +	${RM} "$@.d"
   11.36 +	$(COMPILE.c) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1435311123/Circuit.o /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c
   11.37 +
   11.38  # Subprojects
   11.39  .build-subprojects:
   11.40  
    12.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-impl.mk	Wed Feb 19 09:27:10 2014 -0800
    12.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-impl.mk	Sat Mar 29 06:02:18 2014 -0700
    12.3 @@ -31,7 +31,7 @@
    12.4  CONF=${DEFAULTCONF}
    12.5  
    12.6  # All Configurations
    12.7 -ALLCONFS=Debug Release Debug_Sequential 
    12.8 +ALLCONFS=Debug Release Debug_Sequential MEAS_ON 
    12.9  
   12.10  
   12.11  # build
    13.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-variables.mk	Wed Feb 19 09:27:10 2014 -0800
    13.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-variables.mk	Sat Mar 29 06:02:18 2014 -0700
    13.3 @@ -24,12 +24,20 @@
    13.4  CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/nbreomatrixmult.tar
    13.5  # Debug_Sequential configuration
    13.6  CND_PLATFORM_Debug_Sequential=GNU-Linux-x86
    13.7 -CND_ARTIFACT_DIR_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86
    13.8 -CND_ARTIFACT_NAME_Debug_Sequential=nb__reo_matrix_mult
    13.9 -CND_ARTIFACT_PATH_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/nb__reo_matrix_mult
   13.10 +CND_ARTIFACT_DIR_Debug_Sequential=../../dist/bin
   13.11 +CND_ARTIFACT_NAME_Debug_Sequential=reo_matrix_mult__debug_seq
   13.12 +CND_ARTIFACT_PATH_Debug_Sequential=../../dist/bin/reo_matrix_mult__debug_seq
   13.13  CND_PACKAGE_DIR_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/package
   13.14  CND_PACKAGE_NAME_Debug_Sequential=nbreomatrixmult.tar
   13.15  CND_PACKAGE_PATH_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/package/nbreomatrixmult.tar
   13.16 +# MEAS_ON configuration
   13.17 +CND_PLATFORM_MEAS_ON=GNU-Linux-x86
   13.18 +CND_ARTIFACT_DIR_MEAS_ON=../../dist/bin
   13.19 +CND_ARTIFACT_NAME_MEAS_ON=reo_matrix_mult__meas_on
   13.20 +CND_ARTIFACT_PATH_MEAS_ON=../../dist/bin/reo_matrix_mult__meas_on
   13.21 +CND_PACKAGE_DIR_MEAS_ON=dist/MEAS_ON/GNU-Linux-x86/package
   13.22 +CND_PACKAGE_NAME_MEAS_ON=nbreomatrixmult.tar
   13.23 +CND_PACKAGE_PATH_MEAS_ON=dist/MEAS_ON/GNU-Linux-x86/package/nbreomatrixmult.tar
   13.24  #
   13.25  # include compiler specific variables
   13.26  #
    14.1 --- a/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash	Wed Feb 19 09:27:10 2014 -0800
    14.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash	Sat Mar 29 06:02:18 2014 -0700
    14.3 @@ -13,8 +13,8 @@
    14.4  CND_DLIB_EXT=so
    14.5  NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
    14.6  TMPDIRNAME=tmp-packaging
    14.7 -OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
    14.8 -OUTPUT_BASENAME=nb__reo_matrix_mult
    14.9 +OUTPUT_PATH=../../dist/bin/reo_matrix_mult__debug_seq
   14.10 +OUTPUT_BASENAME=reo_matrix_mult__debug_seq
   14.11  PACKAGE_TOP_DIR=nbreomatrixmult/
   14.12  
   14.13  # Functions
    15.1 --- a/nb__Reo_matrix_mult/nbproject/configurations.xml	Wed Feb 19 09:27:10 2014 -0800
    15.2 +++ b/nb__Reo_matrix_mult/nbproject/configurations.xml	Sat Mar 29 06:02:18 2014 -0700
    15.3 @@ -4,6 +4,35 @@
    15.4      <logicalFolder name="HeaderFiles"
    15.5                     displayName="Header Files"
    15.6                     projectFiles="true">
    15.7 +      <logicalFolder name="PR__include" displayName="PR__include" projectFiles="true">
    15.8 +        <logicalFolder name="langlets" displayName="langlets" projectFiles="true">
    15.9 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/PRServ__wrapper_library.h</itemPath>
   15.10 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/prdsl_wrapper_library.h</itemPath>
   15.11 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/vreo_wrapper_library.h</itemPath>
   15.12 +        </logicalFolder>
   15.13 +        <logicalFolder name="Services_offered_by_PR"
   15.14 +                       displayName="Services_offered_by_PR"
   15.15 +                       projectFiles="true">
   15.16 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h</itemPath>
   15.17 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__Counter_Recording.h</itemPath>
   15.18 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__macros.h</itemPath>
   15.19 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/prdependency.h</itemPath>
   15.20 +          <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/probes__wrapper_library.h</itemPath>
   15.21 +        </logicalFolder>
   15.22 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__PI.h</itemPath>
   15.23 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__SS.h</itemPath>
   15.24 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h</itemPath>
   15.25 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__int.h</itemPath>
   15.26 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__primitive_data_types.h</itemPath>
   15.27 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__structs__common.h</itemPath>
   15.28 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prdynarray.h</itemPath>
   15.29 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhash.h</itemPath>
   15.30 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhistogram.h</itemPath>
   15.31 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prlistofarrays.h</itemPath>
   15.32 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prmalloc.h</itemPath>
   15.33 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prparam.h</itemPath>
   15.34 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prqueue.h</itemPath>
   15.35 +      </logicalFolder>
   15.36      </logicalFolder>
   15.37      <logicalFolder name="ResourceFiles"
   15.38                     displayName="Resource Files"
   15.39 @@ -20,8 +49,8 @@
   15.40        <logicalFolder name="Reo__Matrix_Mult"
   15.41                       displayName="Reo__Matrix_Mult"
   15.42                       projectFiles="true">
   15.43 -        <itemPath>../Reo__Matrix_Mult/Circuit.c</itemPath>
   15.44 -        <itemPath>../Reo__Matrix_Mult/Circuit.h</itemPath>
   15.45 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c</itemPath>
   15.46 +        <itemPath>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h</itemPath>
   15.47          <itemPath>../Reo__Matrix_Mult/DivideWork.c</itemPath>
   15.48          <itemPath>../Reo__Matrix_Mult/Producer_and_Consumer.c</itemPath>
   15.49          <itemPath>../Reo__Matrix_Mult/Reo__Matrix_Mult.h</itemPath>
   15.50 @@ -46,6 +75,7 @@
   15.51    <sourceRootList>
   15.52      <Elem>../ParamHelper</Elem>
   15.53      <Elem>../Reo__Matrix_Mult</Elem>
   15.54 +    <Elem>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include</Elem>
   15.55    </sourceRootList>
   15.56    <projectmakefile>Makefile</projectmakefile>
   15.57    <confs>
   15.58 @@ -70,10 +100,6 @@
   15.59              tool="0"
   15.60              flavor2="0">
   15.61        </item>
   15.62 -      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0">
   15.63 -      </item>
   15.64 -      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
   15.65 -      </item>
   15.66        <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0">
   15.67        </item>
   15.68        <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
   15.69 @@ -90,6 +116,121 @@
   15.70        </item>
   15.71        <item path="../main.c" ex="false" tool="0" flavor2="0">
   15.72        </item>
   15.73 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c"
   15.74 +            ex="false"
   15.75 +            tool="0"
   15.76 +            flavor2="0">
   15.77 +      </item>
   15.78 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h"
   15.79 +            ex="false"
   15.80 +            tool="3"
   15.81 +            flavor2="0">
   15.82 +      </item>
   15.83 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__PI.h"
   15.84 +            ex="false"
   15.85 +            tool="3"
   15.86 +            flavor2="0">
   15.87 +      </item>
   15.88 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__SS.h"
   15.89 +            ex="false"
   15.90 +            tool="3"
   15.91 +            flavor2="0">
   15.92 +      </item>
   15.93 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h"
   15.94 +            ex="false"
   15.95 +            tool="3"
   15.96 +            flavor2="0">
   15.97 +      </item>
   15.98 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__int.h"
   15.99 +            ex="false"
  15.100 +            tool="3"
  15.101 +            flavor2="0">
  15.102 +      </item>
  15.103 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__primitive_data_types.h"
  15.104 +            ex="false"
  15.105 +            tool="3"
  15.106 +            flavor2="0">
  15.107 +      </item>
  15.108 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__structs__common.h"
  15.109 +            ex="false"
  15.110 +            tool="3"
  15.111 +            flavor2="0">
  15.112 +      </item>
  15.113 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h"
  15.114 +            ex="false"
  15.115 +            tool="3"
  15.116 +            flavor2="0">
  15.117 +      </item>
  15.118 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__Counter_Recording.h"
  15.119 +            ex="false"
  15.120 +            tool="3"
  15.121 +            flavor2="0">
  15.122 +      </item>
  15.123 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__macros.h"
  15.124 +            ex="false"
  15.125 +            tool="3"
  15.126 +            flavor2="0">
  15.127 +      </item>
  15.128 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/prdependency.h"
  15.129 +            ex="false"
  15.130 +            tool="3"
  15.131 +            flavor2="0">
  15.132 +      </item>
  15.133 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/probes__wrapper_library.h"
  15.134 +            ex="false"
  15.135 +            tool="3"
  15.136 +            flavor2="0">
  15.137 +      </item>
  15.138 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/PRServ__wrapper_library.h"
  15.139 +            ex="false"
  15.140 +            tool="3"
  15.141 +            flavor2="0">
  15.142 +      </item>
  15.143 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/prdsl_wrapper_library.h"
  15.144 +            ex="false"
  15.145 +            tool="3"
  15.146 +            flavor2="0">
  15.147 +      </item>
  15.148 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/vreo_wrapper_library.h"
  15.149 +            ex="false"
  15.150 +            tool="3"
  15.151 +            flavor2="0">
  15.152 +      </item>
  15.153 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prdynarray.h"
  15.154 +            ex="false"
  15.155 +            tool="3"
  15.156 +            flavor2="0">
  15.157 +      </item>
  15.158 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhash.h"
  15.159 +            ex="false"
  15.160 +            tool="3"
  15.161 +            flavor2="0">
  15.162 +      </item>
  15.163 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhistogram.h"
  15.164 +            ex="false"
  15.165 +            tool="3"
  15.166 +            flavor2="0">
  15.167 +      </item>
  15.168 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prlistofarrays.h"
  15.169 +            ex="false"
  15.170 +            tool="3"
  15.171 +            flavor2="0">
  15.172 +      </item>
  15.173 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prmalloc.h"
  15.174 +            ex="false"
  15.175 +            tool="3"
  15.176 +            flavor2="0">
  15.177 +      </item>
  15.178 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prparam.h"
  15.179 +            ex="false"
  15.180 +            tool="3"
  15.181 +            flavor2="0">
  15.182 +      </item>
  15.183 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prqueue.h"
  15.184 +            ex="false"
  15.185 +            tool="3"
  15.186 +            flavor2="0">
  15.187 +      </item>
  15.188      </conf>
  15.189      <conf name="Release" type="1">
  15.190        <toolsSet>
  15.191 @@ -124,9 +265,228 @@
  15.192              tool="0"
  15.193              flavor2="0">
  15.194        </item>
  15.195 -      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0">
  15.196 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0">
  15.197        </item>
  15.198 -      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  15.199 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  15.200 +            ex="false"
  15.201 +            tool="0"
  15.202 +            flavor2="0">
  15.203 +      </item>
  15.204 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  15.205 +            ex="false"
  15.206 +            tool="3"
  15.207 +            flavor2="0">
  15.208 +      </item>
  15.209 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="0">
  15.210 +      </item>
  15.211 +      <item path="../main.c" ex="false" tool="0" flavor2="0">
  15.212 +      </item>
  15.213 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c"
  15.214 +            ex="false"
  15.215 +            tool="0"
  15.216 +            flavor2="0">
  15.217 +      </item>
  15.218 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h"
  15.219 +            ex="false"
  15.220 +            tool="3"
  15.221 +            flavor2="0">
  15.222 +      </item>
  15.223 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__PI.h"
  15.224 +            ex="false"
  15.225 +            tool="3"
  15.226 +            flavor2="0">
  15.227 +      </item>
  15.228 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__SS.h"
  15.229 +            ex="false"
  15.230 +            tool="3"
  15.231 +            flavor2="0">
  15.232 +      </item>
  15.233 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h"
  15.234 +            ex="false"
  15.235 +            tool="3"
  15.236 +            flavor2="0">
  15.237 +      </item>
  15.238 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__int.h"
  15.239 +            ex="false"
  15.240 +            tool="3"
  15.241 +            flavor2="0">
  15.242 +      </item>
  15.243 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__primitive_data_types.h"
  15.244 +            ex="false"
  15.245 +            tool="3"
  15.246 +            flavor2="0">
  15.247 +      </item>
  15.248 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__structs__common.h"
  15.249 +            ex="false"
  15.250 +            tool="3"
  15.251 +            flavor2="0">
  15.252 +      </item>
  15.253 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h"
  15.254 +            ex="false"
  15.255 +            tool="3"
  15.256 +            flavor2="0">
  15.257 +      </item>
  15.258 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__Counter_Recording.h"
  15.259 +            ex="false"
  15.260 +            tool="3"
  15.261 +            flavor2="0">
  15.262 +      </item>
  15.263 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__macros.h"
  15.264 +            ex="false"
  15.265 +            tool="3"
  15.266 +            flavor2="0">
  15.267 +      </item>
  15.268 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/prdependency.h"
  15.269 +            ex="false"
  15.270 +            tool="3"
  15.271 +            flavor2="0">
  15.272 +      </item>
  15.273 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/probes__wrapper_library.h"
  15.274 +            ex="false"
  15.275 +            tool="3"
  15.276 +            flavor2="0">
  15.277 +      </item>
  15.278 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/PRServ__wrapper_library.h"
  15.279 +            ex="false"
  15.280 +            tool="3"
  15.281 +            flavor2="0">
  15.282 +      </item>
  15.283 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/prdsl_wrapper_library.h"
  15.284 +            ex="false"
  15.285 +            tool="3"
  15.286 +            flavor2="0">
  15.287 +      </item>
  15.288 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/vreo_wrapper_library.h"
  15.289 +            ex="false"
  15.290 +            tool="3"
  15.291 +            flavor2="0">
  15.292 +      </item>
  15.293 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prdynarray.h"
  15.294 +            ex="false"
  15.295 +            tool="3"
  15.296 +            flavor2="0">
  15.297 +      </item>
  15.298 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhash.h"
  15.299 +            ex="false"
  15.300 +            tool="3"
  15.301 +            flavor2="0">
  15.302 +      </item>
  15.303 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhistogram.h"
  15.304 +            ex="false"
  15.305 +            tool="3"
  15.306 +            flavor2="0">
  15.307 +      </item>
  15.308 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prlistofarrays.h"
  15.309 +            ex="false"
  15.310 +            tool="3"
  15.311 +            flavor2="0">
  15.312 +      </item>
  15.313 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prmalloc.h"
  15.314 +            ex="false"
  15.315 +            tool="3"
  15.316 +            flavor2="0">
  15.317 +      </item>
  15.318 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prparam.h"
  15.319 +            ex="false"
  15.320 +            tool="3"
  15.321 +            flavor2="0">
  15.322 +      </item>
  15.323 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prqueue.h"
  15.324 +            ex="false"
  15.325 +            tool="3"
  15.326 +            flavor2="0">
  15.327 +      </item>
  15.328 +    </conf>
  15.329 +    <conf name="Debug_Sequential" type="1">
  15.330 +      <toolsSet>
  15.331 +        <compilerSet>default</compilerSet>
  15.332 +        <dependencyChecking>true</dependencyChecking>
  15.333 +        <rebuildPropChanged>false</rebuildPropChanged>
  15.334 +      </toolsSet>
  15.335 +      <compileType>
  15.336 +        <cTool>
  15.337 +          <incDir>
  15.338 +            <pElem>../..</pElem>
  15.339 +          </incDir>
  15.340 +          <preprocessorList>
  15.341 +            <Elem>DEBUG__TURN_ON_DEBUG_PRINT</Elem>
  15.342 +            <Elem>DEBUG__TURN_ON_SEQUENTIAL_MODE</Elem>
  15.343 +          </preprocessorList>
  15.344 +        </cTool>
  15.345 +        <linkerTool>
  15.346 +          <output>../../dist/bin/reo_matrix_mult__debug_seq</output>
  15.347 +          <linkerAddLib>
  15.348 +            <pElem>../../PR__lib</pElem>
  15.349 +          </linkerAddLib>
  15.350 +          <linkerDynSerch>
  15.351 +            <pElem>../../PR__lib</pElem>
  15.352 +          </linkerDynSerch>
  15.353 +          <linkerLibItems>
  15.354 +            <linkerLibLibItem>prmalloc</linkerLibLibItem>
  15.355 +            <linkerLibLibItem>prparam</linkerLibLibItem>
  15.356 +            <linkerLibLibItem>prqueue</linkerLibLibItem>
  15.357 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  15.358 +            <linkerLibProjectItem>
  15.359 +              <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  15.360 +                            CT="2"
  15.361 +                            CN="Debug"
  15.362 +                            AC="false"
  15.363 +                            BL="true"
  15.364 +                            WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  15.365 +                            BC="${MAKE}  -f Makefile CONF=Debug"
  15.366 +                            CC="${MAKE}  -f Makefile CONF=Debug clean"
  15.367 +                            OP="../../PR__lib/libreo_opt1_ml_lib.so">
  15.368 +              </makeArtifact>
  15.369 +            </linkerLibProjectItem>
  15.370 +            <linkerLibProjectItem>
  15.371 +              <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
  15.372 +                            CT="2"
  15.373 +                            CN="MEAS_ON"
  15.374 +                            AC="true"
  15.375 +                            BL="true"
  15.376 +                            WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
  15.377 +                            BC="${MAKE}  -f Makefile CONF=MEAS_ON"
  15.378 +                            CC="${MAKE}  -f Makefile CONF=MEAS_ON clean"
  15.379 +                            OP="../../PR__lib/libpr__ml__sharedmem_debug_seq.so">
  15.380 +              </makeArtifact>
  15.381 +            </linkerLibProjectItem>
  15.382 +          </linkerLibItems>
  15.383 +        </linkerTool>
  15.384 +        <requiredProjects>
  15.385 +          <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  15.386 +                        CT="2"
  15.387 +                        CN="Debug"
  15.388 +                        AC="false"
  15.389 +                        BL="true"
  15.390 +                        WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  15.391 +                        BC="${MAKE}  -f Makefile CONF=Debug"
  15.392 +                        CC="${MAKE}  -f Makefile CONF=Debug clean"
  15.393 +                        OP="../../PR__lib/libreo_opt1_ml_lib.so">
  15.394 +          </makeArtifact>
  15.395 +          <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
  15.396 +                        CT="2"
  15.397 +                        CN="MEAS_ON"
  15.398 +                        AC="true"
  15.399 +                        BL="true"
  15.400 +                        WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
  15.401 +                        BC="${MAKE}  -f Makefile CONF=MEAS_ON"
  15.402 +                        CC="${MAKE}  -f Makefile CONF=MEAS_ON clean"
  15.403 +                        OP="../../PR__lib/libpr__ml__sharedmem_debug_seq.so">
  15.404 +          </makeArtifact>
  15.405 +        </requiredProjects>
  15.406 +      </compileType>
  15.407 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="0">
  15.408 +      </item>
  15.409 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
  15.410 +      </item>
  15.411 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
  15.412 +      </item>
  15.413 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="0">
  15.414 +      </item>
  15.415 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  15.416 +            ex="false"
  15.417 +            tool="0"
  15.418 +            flavor2="0">
  15.419        </item>
  15.420        <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0">
  15.421        </item>
  15.422 @@ -144,8 +504,123 @@
  15.423        </item>
  15.424        <item path="../main.c" ex="false" tool="0" flavor2="0">
  15.425        </item>
  15.426 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c"
  15.427 +            ex="false"
  15.428 +            tool="0"
  15.429 +            flavor2="0">
  15.430 +      </item>
  15.431 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h"
  15.432 +            ex="false"
  15.433 +            tool="3"
  15.434 +            flavor2="0">
  15.435 +      </item>
  15.436 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__PI.h"
  15.437 +            ex="false"
  15.438 +            tool="3"
  15.439 +            flavor2="0">
  15.440 +      </item>
  15.441 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__SS.h"
  15.442 +            ex="false"
  15.443 +            tool="3"
  15.444 +            flavor2="0">
  15.445 +      </item>
  15.446 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h"
  15.447 +            ex="false"
  15.448 +            tool="3"
  15.449 +            flavor2="0">
  15.450 +      </item>
  15.451 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__int.h"
  15.452 +            ex="false"
  15.453 +            tool="3"
  15.454 +            flavor2="0">
  15.455 +      </item>
  15.456 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__primitive_data_types.h"
  15.457 +            ex="false"
  15.458 +            tool="3"
  15.459 +            flavor2="0">
  15.460 +      </item>
  15.461 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__structs__common.h"
  15.462 +            ex="false"
  15.463 +            tool="3"
  15.464 +            flavor2="0">
  15.465 +      </item>
  15.466 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h"
  15.467 +            ex="false"
  15.468 +            tool="3"
  15.469 +            flavor2="0">
  15.470 +      </item>
  15.471 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__Counter_Recording.h"
  15.472 +            ex="false"
  15.473 +            tool="3"
  15.474 +            flavor2="0">
  15.475 +      </item>
  15.476 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__macros.h"
  15.477 +            ex="false"
  15.478 +            tool="3"
  15.479 +            flavor2="0">
  15.480 +      </item>
  15.481 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/prdependency.h"
  15.482 +            ex="false"
  15.483 +            tool="3"
  15.484 +            flavor2="0">
  15.485 +      </item>
  15.486 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/probes__wrapper_library.h"
  15.487 +            ex="false"
  15.488 +            tool="3"
  15.489 +            flavor2="0">
  15.490 +      </item>
  15.491 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/PRServ__wrapper_library.h"
  15.492 +            ex="false"
  15.493 +            tool="3"
  15.494 +            flavor2="0">
  15.495 +      </item>
  15.496 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/prdsl_wrapper_library.h"
  15.497 +            ex="false"
  15.498 +            tool="3"
  15.499 +            flavor2="0">
  15.500 +      </item>
  15.501 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/vreo_wrapper_library.h"
  15.502 +            ex="false"
  15.503 +            tool="3"
  15.504 +            flavor2="0">
  15.505 +      </item>
  15.506 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prdynarray.h"
  15.507 +            ex="false"
  15.508 +            tool="3"
  15.509 +            flavor2="0">
  15.510 +      </item>
  15.511 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhash.h"
  15.512 +            ex="false"
  15.513 +            tool="3"
  15.514 +            flavor2="0">
  15.515 +      </item>
  15.516 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhistogram.h"
  15.517 +            ex="false"
  15.518 +            tool="3"
  15.519 +            flavor2="0">
  15.520 +      </item>
  15.521 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prlistofarrays.h"
  15.522 +            ex="false"
  15.523 +            tool="3"
  15.524 +            flavor2="0">
  15.525 +      </item>
  15.526 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prmalloc.h"
  15.527 +            ex="false"
  15.528 +            tool="3"
  15.529 +            flavor2="0">
  15.530 +      </item>
  15.531 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prparam.h"
  15.532 +            ex="false"
  15.533 +            tool="3"
  15.534 +            flavor2="0">
  15.535 +      </item>
  15.536 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prqueue.h"
  15.537 +            ex="false"
  15.538 +            tool="3"
  15.539 +            flavor2="0">
  15.540 +      </item>
  15.541      </conf>
  15.542 -    <conf name="Debug_Sequential" type="1">
  15.543 +    <conf name="MEAS_ON" type="1">
  15.544        <toolsSet>
  15.545          <compilerSet>default</compilerSet>
  15.546          <dependencyChecking>true</dependencyChecking>
  15.547 @@ -156,21 +631,22 @@
  15.548            <incDir>
  15.549              <pElem>../..</pElem>
  15.550            </incDir>
  15.551 -          <preprocessorList>
  15.552 -            <Elem>DEBUG__SEQUENTIAL_MODE</Elem>
  15.553 -            <Elem>DEBUG__TURN_ON_DEBUG_PRINT</Elem>
  15.554 -          </preprocessorList>
  15.555          </cTool>
  15.556          <linkerTool>
  15.557 +          <output>../../dist/bin/reo_matrix_mult__meas_on</output>
  15.558            <linkerAddLib>
  15.559              <pElem>../../PR__lib</pElem>
  15.560            </linkerAddLib>
  15.561 +          <linkerDynSerch>
  15.562 +            <pElem>../../PR__lib</pElem>
  15.563 +          </linkerDynSerch>
  15.564            <linkerLibItems>
  15.565 -            <linkerLibLibItem>pr__ml__sharedmem__dku_debug</linkerLibLibItem>
  15.566              <linkerLibLibItem>prmalloc</linkerLibLibItem>
  15.567              <linkerLibLibItem>prparam</linkerLibLibItem>
  15.568              <linkerLibLibItem>prqueue</linkerLibLibItem>
  15.569 -            <linkerLibLibItem>reo_wrapper_lib_opt1</linkerLibLibItem>
  15.570 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  15.571 +            <linkerLibLibItem>pr__ml__sharedmem__meas_on</linkerLibLibItem>
  15.572 +            <linkerLibLibItem>reo_opt1_ml_lib__meas_on</linkerLibLibItem>
  15.573            </linkerLibItems>
  15.574          </linkerTool>
  15.575        </compileType>
  15.576 @@ -187,10 +663,6 @@
  15.577              tool="0"
  15.578              flavor2="0">
  15.579        </item>
  15.580 -      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0">
  15.581 -      </item>
  15.582 -      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  15.583 -      </item>
  15.584        <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0">
  15.585        </item>
  15.586        <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  15.587 @@ -207,6 +679,121 @@
  15.588        </item>
  15.589        <item path="../main.c" ex="false" tool="0" flavor2="0">
  15.590        </item>
  15.591 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c"
  15.592 +            ex="false"
  15.593 +            tool="0"
  15.594 +            flavor2="0">
  15.595 +      </item>
  15.596 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h"
  15.597 +            ex="false"
  15.598 +            tool="3"
  15.599 +            flavor2="0">
  15.600 +      </item>
  15.601 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__PI.h"
  15.602 +            ex="false"
  15.603 +            tool="3"
  15.604 +            flavor2="0">
  15.605 +      </item>
  15.606 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__SS.h"
  15.607 +            ex="false"
  15.608 +            tool="3"
  15.609 +            flavor2="0">
  15.610 +      </item>
  15.611 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h"
  15.612 +            ex="false"
  15.613 +            tool="3"
  15.614 +            flavor2="0">
  15.615 +      </item>
  15.616 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__int.h"
  15.617 +            ex="false"
  15.618 +            tool="3"
  15.619 +            flavor2="0">
  15.620 +      </item>
  15.621 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__primitive_data_types.h"
  15.622 +            ex="false"
  15.623 +            tool="3"
  15.624 +            flavor2="0">
  15.625 +      </item>
  15.626 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__structs__common.h"
  15.627 +            ex="false"
  15.628 +            tool="3"
  15.629 +            flavor2="0">
  15.630 +      </item>
  15.631 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h"
  15.632 +            ex="false"
  15.633 +            tool="3"
  15.634 +            flavor2="0">
  15.635 +      </item>
  15.636 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__Counter_Recording.h"
  15.637 +            ex="false"
  15.638 +            tool="3"
  15.639 +            flavor2="0">
  15.640 +      </item>
  15.641 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/MEAS__macros.h"
  15.642 +            ex="false"
  15.643 +            tool="3"
  15.644 +            flavor2="0">
  15.645 +      </item>
  15.646 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/prdependency.h"
  15.647 +            ex="false"
  15.648 +            tool="3"
  15.649 +            flavor2="0">
  15.650 +      </item>
  15.651 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/probes__wrapper_library.h"
  15.652 +            ex="false"
  15.653 +            tool="3"
  15.654 +            flavor2="0">
  15.655 +      </item>
  15.656 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/PRServ__wrapper_library.h"
  15.657 +            ex="false"
  15.658 +            tool="3"
  15.659 +            flavor2="0">
  15.660 +      </item>
  15.661 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/prdsl_wrapper_library.h"
  15.662 +            ex="false"
  15.663 +            tool="3"
  15.664 +            flavor2="0">
  15.665 +      </item>
  15.666 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/langlets/vreo_wrapper_library.h"
  15.667 +            ex="false"
  15.668 +            tool="3"
  15.669 +            flavor2="0">
  15.670 +      </item>
  15.671 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prdynarray.h"
  15.672 +            ex="false"
  15.673 +            tool="3"
  15.674 +            flavor2="0">
  15.675 +      </item>
  15.676 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhash.h"
  15.677 +            ex="false"
  15.678 +            tool="3"
  15.679 +            flavor2="0">
  15.680 +      </item>
  15.681 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prhistogram.h"
  15.682 +            ex="false"
  15.683 +            tool="3"
  15.684 +            flavor2="0">
  15.685 +      </item>
  15.686 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prlistofarrays.h"
  15.687 +            ex="false"
  15.688 +            tool="3"
  15.689 +            flavor2="0">
  15.690 +      </item>
  15.691 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prmalloc.h"
  15.692 +            ex="false"
  15.693 +            tool="3"
  15.694 +            flavor2="0">
  15.695 +      </item>
  15.696 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prparam.h"
  15.697 +            ex="false"
  15.698 +            tool="3"
  15.699 +            flavor2="0">
  15.700 +      </item>
  15.701 +      <item path="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/prqueue.h"
  15.702 +            ex="false"
  15.703 +            tool="3"
  15.704 +            flavor2="0">
  15.705 +      </item>
  15.706      </conf>
  15.707    </confs>
  15.708  </configurationDescriptor>
    16.1 --- a/nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk	Wed Feb 19 09:27:10 2014 -0800
    16.2 +++ b/nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk	Sat Mar 29 06:02:18 2014 -0700
    16.3 @@ -6,3 +6,4 @@
    16.4  # Debug configuration
    16.5  # Release configuration
    16.6  # Debug_Sequential configuration
    16.7 +# MEAS_ON configuration
    17.1 --- a/nb__Reo_matrix_mult/nbproject/private/configurations.xml	Wed Feb 19 09:27:10 2014 -0800
    17.2 +++ b/nb__Reo_matrix_mult/nbproject/private/configurations.xml	Sat Mar 29 06:02:18 2014 -0700
    17.3 @@ -95,12 +95,54 @@
    17.4            <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
    17.5            <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
    17.6            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
    17.7 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
    17.8            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
    17.9 -          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
   17.10            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
   17.11          </runcommandpicklist>
   17.12          <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommand>
   17.13 -        <rundir>/mnt/hgfs/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir>
   17.14 +        <rundir>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir>
   17.15 +        <buildfirst>true</buildfirst>
   17.16 +        <terminal-type>0</terminal-type>
   17.17 +        <remove-instrumentation>0</remove-instrumentation>
   17.18 +        <environment>
   17.19 +          <variable name="LD_LIBRARY_PATH" value="../PR__lib"/>
   17.20 +        </environment>
   17.21 +      </runprofile>
   17.22 +    </conf>
   17.23 +    <conf name="MEAS_ON" type="1">
   17.24 +      <toolsSet>
   17.25 +        <developmentServer>localhost</developmentServer>
   17.26 +        <platform>2</platform>
   17.27 +      </toolsSet>
   17.28 +      <dbx_gdbdebugger version="1">
   17.29 +        <gdb_pathmaps>
   17.30 +        </gdb_pathmaps>
   17.31 +        <gdb_interceptlist>
   17.32 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
   17.33 +        </gdb_interceptlist>
   17.34 +        <gdb_options>
   17.35 +          <DebugOptions>
   17.36 +          </DebugOptions>
   17.37 +        </gdb_options>
   17.38 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
   17.39 +      </dbx_gdbdebugger>
   17.40 +      <nativedebugger version="1">
   17.41 +        <engine>gdb</engine>
   17.42 +      </nativedebugger>
   17.43 +      <runprofile version="9">
   17.44 +        <runcommandpicklist>
   17.45 +          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
   17.46 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem>
   17.47 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
   17.48 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   17.49 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   17.50 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
   17.51 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
   17.52 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
   17.53 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
   17.54 +        </runcommandpicklist>
   17.55 +        <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommand>
   17.56 +        <rundir>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir>
   17.57          <buildfirst>true</buildfirst>
   17.58          <terminal-type>0</terminal-type>
   17.59          <remove-instrumentation>0</remove-instrumentation>
    18.1 --- a/nb__Reo_matrix_mult/nbproject/private/private.xml	Wed Feb 19 09:27:10 2014 -0800
    18.2 +++ b/nb__Reo_matrix_mult/nbproject/private/private.xml	Sat Mar 29 06:02:18 2014 -0700
    18.3 @@ -2,9 +2,32 @@
    18.4  <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
    18.5      <data xmlns="http://www.netbeans.org/ns/make-project-private/1">
    18.6          <activeConfTypeElem>1</activeConfTypeElem>
    18.7 -        <activeConfIndexElem>2</activeConfIndexElem>
    18.8 +        <activeConfIndexElem>3</activeConfIndexElem>
    18.9      </data>
   18.10 +    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
   18.11      <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
   18.12 -        <group/>
   18.13 +        <group>
   18.14 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/main.c</file>
   18.15 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/SeedVP.c</file>
   18.16 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/Services_offered_by_PR/DEBUG__macros.h</file>
   18.17 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include/PR__WL.h</file>
   18.18 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h</file>
   18.19 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/PR_defs__turn_on_and_off.h</file>
   18.20 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Matrix_Mult.h</file>
   18.21 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/DivideWork.c</file>
   18.22 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c</file>
   18.23 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Reo__Matrix_Mult.h</file>
   18.24 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Producer_and_Consumer.c</file>
   18.25 +        </group>
   18.26 +        <group name="matrix_mult">
   18.27 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/DivideWork.c</file>
   18.28 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/main.c</file>
   18.29 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Matrix_Mult.h</file>
   18.30 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Reo__Matrix_Mult.h</file>
   18.31 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.c</file>
   18.32 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Producer_and_Consumer.c</file>
   18.33 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/Circuit.h</file>
   18.34 +            <file>file:/home/kshalle/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/Application/Reo__Matrix_Mult/SeedVP.c</file>
   18.35 +        </group>
   18.36      </open-files>
   18.37  </project-private>
    19.1 --- a/nb__Reo_matrix_mult/nbproject/project.xml	Wed Feb 19 09:27:10 2014 -0800
    19.2 +++ b/nb__Reo_matrix_mult/nbproject/project.xml	Sat Mar 29 06:02:18 2014 -0700
    19.3 @@ -8,10 +8,14 @@
    19.4              <cpp-extensions/>
    19.5              <header-extensions>h</header-extensions>
    19.6              <sourceEncoding>UTF-8</sourceEncoding>
    19.7 -            <make-dep-projects/>
    19.8 +            <make-dep-projects>
    19.9 +                <make-dep-project>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib</make-dep-project>
   19.10 +                <make-dep-project>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib</make-dep-project>
   19.11 +            </make-dep-projects>
   19.12              <sourceRootList>
   19.13                  <sourceRootElem>../ParamHelper</sourceRootElem>
   19.14                  <sourceRootElem>../Reo__Matrix_Mult</sourceRootElem>
   19.15 +                <sourceRootElem>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/PR__include</sourceRootElem>
   19.16              </sourceRootList>
   19.17              <confList>
   19.18                  <confElem>
   19.19 @@ -26,6 +30,10 @@
   19.20                      <name>Debug_Sequential</name>
   19.21                      <type>1</type>
   19.22                  </confElem>
   19.23 +                <confElem>
   19.24 +                    <name>MEAS_ON</name>
   19.25 +                    <type>1</type>
   19.26 +                </confElem>
   19.27              </confList>
   19.28              <formatting>
   19.29                  <project-formatting-style>false</project-formatting-style>