def runSim_Simple(): seed = 99108 print "SEED === " + str(seed) # fixed params SimParams.SLACK_FEEDBACK_ENABLED = False SimParams.NOC_W = 3 SimParams.NOC_H = 3 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) dvb_resolutions = [(320, 240), (320, 240), (320, 240), (320, 240), (320, 240)] SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.DVB_RESOLUTIONS = dvb_resolutions SimParams.NUM_WORKFLOWS = 5 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS_FIXED = dvb_resolutions SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = False SimParams.AC_TEST_OPTION = AdmissionControllerOptions.AC_OPTION_NONE SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Simple_OpenLoop : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = "OL_" + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" # name the report filenames tm_fname = EXP_DATADIR + FNAME_PREFIX + "test__timeline.png" vs_bs_fname = EXP_DATADIR + FNAME_PREFIX + "test__vsbs.js" util_fname = EXP_DATADIR + FNAME_PREFIX + "test__util.js" wf_res_fname = EXP_DATADIR + FNAME_PREFIX + "test__wfressumm.js" gops_opbuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__gopsopbuffsumm.js" rmtbl_dt_fname = EXP_DATADIR + FNAME_PREFIX + "test__rmtbldt.js" ibuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__ibuff.js" obuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__obuff.js" nodetqs_fname = EXP_DATADIR + FNAME_PREFIX + "test__nodetqs.js" rmtaskrelease_fname = EXP_DATADIR + FNAME_PREFIX + "test__rmtaskrel.js" mappingandpriass_fname = EXP_DATADIR + FNAME_PREFIX + "test__mappingandpriass.js" flowscompleted_fname = EXP_DATADIR + FNAME_PREFIX + "test__flwcompleted.js" nodetaskexectime_fname = EXP_DATADIR + FNAME_PREFIX + "test__nodetaskexectime.js" (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=tm_fname, wf_res_summary_fname=wf_res_fname, gops_opbuff_summary_fname=gops_opbuff_fname, rmtbl_dt_summary_fname=rmtbl_dt_fname, output_format="json") MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, vs_bs_fname) MMMSim.SimMon.report_InstUtilisation(dump_to_file=util_fname) MMMSim.SimMon.report_InputBuffer(dump_to_file=ibuff_fname) MMMSim.SimMon.report_NodeTQs(dump_to_file=nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=obuff_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline( dump_to_file=nodetaskexectime_fname)
def runSim_Simple(): seed = 99108 print "SEED === " + str(seed) # fixed params SimParams.NOC_W = 4 SimParams.NOC_H = 4 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES * 2 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.PSALGO_ENABLED = True SimParams.PSALGO_VIEWER_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_RANDOM_QUEEN SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.TASK_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL SimParams.TASKSET_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Simple : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now # name the report filenames tm_fname = "test__timeline.png" vs_bs_fname = "test__vsbs.js" util_fname = "test__util.js" wf_res_fname = "test__wfressumm.js" gops_opbuff_fname = "test__gopsopbuffsumm.js" rmtbl_dt_fname = "test__rmtbldt.js" ibuff_fname = "test__ibuff.js" obuff_fname = "test__obuff.js" nodetqs_fname = "test__nodetqs.js" rmtaskrelease_fname = "test__rmtaskrel.js" mappingandpriass_fname = "test__mappingandpriass.js" flowscompleted_fname = "test__flwcompleted.js" nodetaskexectime_fname = "test__nodetaskexectime.js" psalgo_nodeprops = "test__psalgonodeprops.js" flowsadded_fname = "test__flwsadded.js" trminfo_fname = "test__taskremappinginfo.js" nodecumslack_fname = "test__nodecumslack.js" (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=tm_fname, wf_res_summary_fname=wf_res_fname, gops_opbuff_summary_fname=gops_opbuff_fname, rmtbl_dt_summary_fname=rmtbl_dt_fname, output_format="json") MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, vs_bs_fname) MMMSim.SimMon.report_InstUtilisation(dump_to_file=util_fname) MMMSim.SimMon.report_InputBuffer(dump_to_file=ibuff_fname) MMMSim.SimMon.report_NodeTQs(dump_to_file=nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=obuff_fname) MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=rmtaskrelease_fname) MMMSim.SimMon.report_MappingAndPriAssInfo( dump_to_file=mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline( dump_to_file=nodetaskexectime_fname) MMMSim.SimMon.report_PSAlgoNodePSProps(dump_to_file=psalgo_nodeprops) MMMSim.SimMon.report_FlowsAdded(dump_to_file=flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=nodecumslack_fname)
def runSim_AC_MP_Type(forced_seed=None, fname_prefix=None, ac_type=None, mp_type=None, pr_type=None, num_wfs=None, res_list=None, cmbmppri_type=None): seed = forced_seed print "SEED === " + str(seed) random.seed(seed) np.random.seed(seed) np.random.shuffle(res_list) # shuffle in place print "here -1" print res_list # fixed params SimParams.NOC_W = 3 SimParams.NOC_H = 3 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.NUM_WORKFLOWS = num_wfs SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS_FIXED = res_list SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = False SimParams.WCRT_FLOW_CALC_MAX_RECURSION_DEPTH = 3 SimParams.WCRT_FLOW_USE_TIMEOUT = False SimParams.WCRT_FLOW_USE_LIMITED_RECURSION_DEPTH = True SimParams.AC_TEST_OPTION = ac_type SimParams.DYNAMIC_TASK_MAPPING_SCHEME = mp_type SimParams.DYNAMIC_TASK_PRIASS_SCHEME = pr_type SimParams.COMBINED_MAPPING_AND_PRIASS = cmbmppri_type subdir = "seed_" + str(seed) + "/" subdir = subdir + "ac" + str(ac_type) + "mp" + str(mp_type) + "pr" + str( pr_type) + "cmb" + str(cmbmppri_type) + "/" FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" check_fname = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX)['utilvsschedresultsshort_fname'] print "Checking file exists : " + str(check_fname) if (_check_file_exists(check_fname) == True): print "Simulation already exists.." else: print res_list random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim-"+ fname_prefix +": num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) + \ ", seed="+str(forced_seed) print "----------------------------------------------------------------------------------------------------------------------------" #subdir = "" env, last_scheduled_task_time = MMMSim.runMainSimulation( initial_rand_seed=seed) env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" _makeDir(EXP_DATADIR + subdir) # get filenames filenames = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames)
def runSim_CCPRemappingBasic(run_rm_off=True, run_rm_on=True, seed=1234, multiseeds=False): print "SEED === " + str(seed) ############### # fixed params ############### SimParams.NOC_W = 4 SimParams.NOC_H = 4 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST if (multiseeds == True): DATA_FOLDER = "experiment_data/remapping_ccpbased/" + "seed_" + str( seed) + "/" else: DATA_FOLDER = "experiment_data/remapping_ccpbased/" if (run_rm_off == True): ################################ # PS-based Remapping disabled ################################ SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False SimParams.CCP_ENABLE = False SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_NONE FNAME_PREFIX = DATA_FOLDER + "RMOFF_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_CCPRemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_disabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now ( wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=FNAME_PREFIX + tm_fname, wf_res_summary_fname=FNAME_PREFIX + wf_res_fname, gops_opbuff_summary_fname=FNAME_PREFIX + gops_opbuff_fname, rmtbl_dt_summary_fname=FNAME_PREFIX + rmtbl_dt_fname, #gops_opbuff_summary_short_fname = FNAME_PREFIX+gops_opbuff_short_fname, output_format="json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX + obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX + flowscompleted_fname) #MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX + trminfo_fname) #MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX+nodecumslack_fname) #MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX+node_importedtasks) if (run_rm_on == True): ################################ # PS-based Remapping enabled ################################ SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False SimParams.CCP_ENABLE = True SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_CCP_REMAPPING SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True # ------------------ params : MMC-disabled ------------------- #SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 7.2 #SimParams.CCP_CLUSTER_SIZE = [2,5] #SimParams.CCP_LOAN_TASK_AMOUNT = 5 # ------------------------------------------------------------ # ------------------ temp ------------------- SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 7.2 SimParams.CCP_CLUSTER_SIZE = [2, 5] SimParams.CCP_SLAVE_MSG_FLOWPAYLOADSIZE = 32 SimParams.CCP_BASIC_MSG_FLOWPAYLOADSIZE = 32 SimParams.CCP_LOAN_TASK_AMOUNT = 7 # ------------------------------------------------------------ FNAME_PREFIX = DATA_FOLDER + "RMON_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_CCPRemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_enabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now ( wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=FNAME_PREFIX + tm_fname, wf_res_summary_fname=FNAME_PREFIX + wf_res_fname, gops_opbuff_summary_fname=FNAME_PREFIX + gops_opbuff_fname, rmtbl_dt_summary_fname=FNAME_PREFIX + rmtbl_dt_fname, #gops_opbuff_summary_short_fname = FNAME_PREFIX+gops_opbuff_short_fname, output_format="json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX + obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX + flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX + nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX + trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX + nodecumslack_fname) MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX + node_importedtasks)
def runSim_RemappingBasic(run_rm_off=True, run_rm_on=True, seed=1234, multiseeds=False, noc_w=10, noc_h=10): print "---SEED === " + str(seed) ############### # fixed params ############### SimParams.NOC_W = noc_w SimParams.NOC_H = noc_h SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 #SimParams.NUM_WORKFLOWS = 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.TASK_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL SimParams.TASKSET_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL # SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler() # SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.CLOSEDLOOP_WITH_IBUFFERING # SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.CLOSEDLOOP_WITH_IBUFFERING # SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.CLOSEDLOOP_WITH_IBUFFERING # SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.CLOSEDLOOP_WITH_IBUFFERING SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST noc_size_dir = "noc_" + str(noc_w) + "x" + str(noc_h) + "/" if (multiseeds == True): DATA_FOLDER = "experiment_data/remapping_psbased/" + "seed_" + str( seed) + "/" else: #DATA_FOLDER = "experiment_data/remapping_psbased/" DATA_FOLDER = "experiment_data/remapping_nocsize/remapping_psbased/" + noc_size_dir # name the report filenames tm_fname = "test__timeline.png" vs_bs_fname = "test__vsbs.js" util_fname = "test__util.js" wf_res_fname = "test__wfressumm.js" gops_opbuff_fname = "test__gopsopbuffsumm.js" rmtbl_dt_fname = "test__rmtbldt.js" ibuff_fname = "test__ibuff.js" obuff_fname = "test__obuff.js" nodetqs_fname = "test__nodetqs.js" rmtaskrelease_fname = "test__rmtaskrel.js" mappingandpriass_fname = "test__mappingandpriass.js" flowscompleted_fname = "test__flwcompleted.js" nodetaskexectime_fname = "test__nodetaskexectime.js" psalgo_nodeprops = "test__psalgonodeprops.js" flowsadded_fname = "test__flwsadded.js" trminfo_fname = "test__taskremappinginfo.js" nodecumslack_fname = "test__nodecumslack.js" node_importedtasks = "test__nodeimportedtasks.js" rmdebuginfo_1 = "test__remappingdebuginfo_1.js" if (run_rm_off == True): ################################ # PS-based Remapping disabled ################################ SimParams.PSALGO_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_NONE SimParams.CPUNODE_MONITOR_TASKSET_SLACK = False SimParams.PSALGO_VIEWER_ENABLED = False SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False FNAME_PREFIX = DATA_FOLDER + "RMOFF_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_disabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=FNAME_PREFIX + tm_fname, wf_res_summary_fname=FNAME_PREFIX + wf_res_fname, gops_opbuff_summary_fname=FNAME_PREFIX + gops_opbuff_fname, rmtbl_dt_summary_fname=FNAME_PREFIX + rmtbl_dt_fname, output_format="json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX + obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX + flowscompleted_fname) #MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) MMMSim.SimMon.report_PSAlgoNodePSProps(dump_to_file=FNAME_PREFIX + psalgo_nodeprops) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX + trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX + nodecumslack_fname) MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX + node_importedtasks) if (run_rm_on == True): ################################ # PS-based Remapping enabled ################################ SimParams.PSALGO_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_LOWESTBLOCKING_QUEEN_VIA_SYSSLACK SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True SimParams.PSALGO_VIEWER_ENABLED = True SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False SimParams.PSALGO_PSFLOWPAYLOADSIZE = 16 # -------------------------------------------------------------------------------- ## FOR MMC - enabled ## # params taken from mc-test : perm_0.22_0.0629_20.0_0.3_0.3_4.6_ # perm_0.12_0.18_0.2_0.15_ #SimParams.PSALGO_TQN = 0.22 #SimParams.PSALGO_TDECAY = 0.0629 #SimParams.PSALGO_THRESHOLDQN = 20.0 #SimParams.PSALGO_THRESHOLDHOPCOUNT = 2 #SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 4.6 #SimParams.PSALGO_HQN = 14 #SimParams.PSALGO_DYNAMIC_THRESHOLDQN_RATIO = [0.12, 0.18] #SimParams.PSALGO_KHOPDECAY = 0.2 #SimParams.PSALGO_KTIMEDECAY = 0.15 # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- ## FOR MMC - disabled ## ## "param": "perm_0.1_0.025_3_6.9_5_0.203_0.3_0.15_0.05_" #SimParams.PSALGO_TQN = 0.1 #SimParams.PSALGO_TDECAY = 0.025 #SimParams.PSALGO_THRESHOLDQN = 9.0 #SimParams.PSALGO_THRESHOLDHOPCOUNT = 3 #SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 6.9 #SimParams.PSALGO_HQN = 5 #SimParams.PSALGO_DYNAMIC_THRESHOLDQN_RATIO = [0.203, 0.3] #SimParams.PSALGO_KHOPDECAY = 0.15 #SimParams.PSALGO_KTIMEDECAY = 0.05 # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- ## FOR MMC - disabled ## ## perm_0.22_0.055_3_6.9_18_0.107_0.01_0.15_0.3_ #SimParams.PSALGO_TQN = 0.22 #SimParams.PSALGO_TDECAY = 0.055 SimParams.PSALGO_TQN = 0.05 SimParams.PSALGO_TDECAY = 0.025 SimParams.PSALGO_THRESHOLDQN = 20.0 SimParams.PSALGO_THRESHOLDHOPCOUNT = 3 SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 6.9 SimParams.PSALGO_HQN = 18 SimParams.PSALGO_DYNAMIC_THRESHOLDQN_RATIO = [0.107, 0.01] SimParams.PSALGO_KHOPDECAY = 0.15 SimParams.PSALGO_KTIMEDECAY = 0.3 # -------------------------------------------------------------------------------- FNAME_PREFIX = DATA_FOLDER + "RMON_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_enabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=FNAME_PREFIX + tm_fname, wf_res_summary_fname=FNAME_PREFIX + wf_res_fname, gops_opbuff_summary_fname=FNAME_PREFIX + gops_opbuff_fname, rmtbl_dt_summary_fname=FNAME_PREFIX + rmtbl_dt_fname, output_format="json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX + obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX + flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX + nodetaskexectime_fname) MMMSim.SimMon.report_PSAlgoNodePSProps(dump_to_file=FNAME_PREFIX + psalgo_nodeprops) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX + trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX + nodecumslack_fname) MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX + node_importedtasks) MMMSim.SimMon.report_PSRemappDebugInfo_1(dump_to_file=FNAME_PREFIX + rmdebuginfo_1)
def runSim_varNoCScale_varCCR(forced_seed=None, fname_prefix=None, ac_type=None, mp_type=None, pr_type=None, cmbmppri_type=None, use_ccr_file_input=True): seed = forced_seed print "SEED === " + str(seed) random.seed(seed) np.random.seed(seed) # shuffle the res list fixed_res_list = [(230, 180), (528, 576), (240, 180), (240, 180), (576, 720), (320, 240), (320, 240)] np.random.shuffle(fixed_res_list) # fixed params SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.AC_TEST_OPTION = ac_type SimParams.DYNAMIC_TASK_MAPPING_SCHEME = mp_type SimParams.DYNAMIC_TASK_PRIASS_SCHEME = pr_type SimParams.COMBINED_MAPPING_AND_PRIASS = cmbmppri_type SimParams.WCRT_FLOW_CALC_TIMEOUT = 2.0 * 60.0 SimParams.WCRT_FLOW_CALC_MAX_RECURSION_DEPTH = 3 SimParams.WCRT_FLOW_USE_TIMEOUT = True SimParams.WCRT_FLOW_USE_LIMITED_RECURSION_DEPTH = False # now we perform a range of tests for varying CCR if (use_ccr_file_input == True): # get the ccr values from file ? fname = 'util_scripts/ccr_list_allwfs_output_0.001_2.0_s' + str( forced_seed) + '.js' json_data = open(fname) file_data = json.load(json_data) seed_specific_data = file_data[str(forced_seed)] #sorted_ccr_entries = sorted(ccr_data, key=lambda k: k['ccr']) else: sys.exit("Error- not implemented yet!") offset = 0 for each_wf_k, each_wf_v in seed_specific_data.iteritems(): noc_h = int(np.sqrt(int(each_wf_k) - offset)) wf_nums = int(each_wf_k) SimParams.NOC_W = noc_h SimParams.NOC_H = noc_h SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = wf_nums SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS_FIXED = each_wf_v["res_list"] SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = False if (len(SimParams.DVB_RESOLUTIONS_FIXED) != SimParams.NUM_WORKFLOWS): pprint.pprint(SimParams.DVB_RESOLUTIONS_FIXED) pprint.pprint(SimParams.NUM_WORKFLOWS) sys.exit("Error ! wfs did not match res_list") sorted_ccr_entries = each_wf_v["ccr_list"].values() # perform one simulation run per ccrn entry for each_ccr_entry in sorted_ccr_entries: SimParams.NOC_PERIOD = float(each_ccr_entry['noc_period']) SimParams.CPU_EXEC_SPEED_RATIO = float( each_ccr_entry['cpu_exec_speed_ratio']) subdir = "seed_" + str(seed) + "/" + "noc_h" + str(noc_h) + "/" subdir = subdir + "ccr_" + str(round(each_ccr_entry['ccr'], 4)) + "/" FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" check_fname = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX)['utilvsschedresults_fname'] print "Checking file exists : " + str(check_fname) if (_check_file_exists(check_fname) == True): print "Simulation already exists.." else: random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print subdir print "Running runSim-"+ fname_prefix +": num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) + \ ", seed="+str(forced_seed) print "----------------------------------------------------------------------------------------------------------------------------" #subdir = "" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" _makeDir(EXP_DATADIR + subdir) # get filenames filenames = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames)
def runSim_CCR_Range(forced_seed=None, fname_prefix=None, ac_type=None, mp_type=None, pr_type=None, cmbmppri_type=None, use_ccr_file_input=True): seed = forced_seed print "SEED === " + str(seed) random.seed(seed) np.random.seed(seed) # shuffle the res list fixed_res_list = [(230, 180), (528, 576), (240, 180), (240, 180), (576, 720), (320, 240), (320, 240)] np.random.shuffle(fixed_res_list) # fixed params SimParams.NOC_W = 3 SimParams.NOC_H = 3 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.NUM_WORKFLOWS = 1 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS_FIXED = fixed_res_list SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = False SimParams.AC_TEST_OPTION = ac_type SimParams.DYNAMIC_TASK_MAPPING_SCHEME = mp_type SimParams.DYNAMIC_TASK_PRIASS_SCHEME = pr_type SimParams.COMBINED_MAPPING_AND_PRIASS = cmbmppri_type # now we perform a range of tests for varying CCR if (use_ccr_file_input == True): # get the ccr values from file ? fname = 'util_scripts/ccr_list_output.js' json_data = open(fname) ccr_data = json.load(json_data) sorted_ccr_entries = sorted(ccr_data, key=lambda k: k['ccr']) else: ccs_range = [0.0675, 0.0685] ccr_range = [round(x, 2) for x in np.arange(0.05, 3.05, 0.05)] ccr_entries = get_properties_fixed_ccs_fixed_ccr_range( ccs_range, ccr_range, enable_print=False) sorted_ccr_entries = sorted(ccr_entries, key=lambda k: k['ccr']) # perform one simulation run per ccrn entry for each_ccr_entry in sorted_ccr_entries: SimParams.NOC_PERIOD = float(each_ccr_entry['noc_period']) SimParams.CPU_EXEC_SPEED_RATIO = float( each_ccr_entry['cpu_exec_speed_ratio']) subdir = "seed_" + str(seed) + "/" subdir = subdir + "ccr_" + str(round(each_ccr_entry['ccr'], 4)) + "/" FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" check_fname = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX)['utilvsschedresults_fname'] print "Checking file exists : " + str(check_fname) if (_check_file_exists(check_fname) == True): print "Simulation already exists.." else: random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print subdir print "Running runSim-"+ fname_prefix +": num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) + \ ", seed="+str(forced_seed) print "----------------------------------------------------------------------------------------------------------------------------" #subdir = "" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = fname_prefix + str(SimParams.NOC_H) + "_" + str( SimParams.NOC_W) + "_" _makeDir(EXP_DATADIR + subdir) # get filenames filenames = _get_fname(EXP_DATADIR + subdir, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames)
def runSim_RemappingMCParamsTest_RMOFF(seed=77379): # fixed params SimParams.NOC_W = NOC_W SimParams.NOC_H = NOC_W SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST DATA_FOLDER = "experiment_data/remapping_ccpbased_montecarlo/" + "seed_" + str( seed) + "/" SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_NONE SimParams.CPUNODE_MONITOR_TASKSET_SLACK = False SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False SimParams.CCP_ENABLE = False FNAME_PREFIX = DATA_FOLDER + "RMOFF_" fname_param_prefix = FNAME_PREFIX # check if the simulation has run already before continuing, by checking if # one of the output file exists check_fname = fname_param_prefix + obuff_short_fname print "Checking file exists : " + str(check_fname) if (_check_file_exists(check_fname) == True): print "Simulation already exists ! " else: random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RemappingMCParamsTest_RMOFF : num_wf=" + str( SimParams.NUM_WORKFLOWS) print fname_param_prefix print "SEED === " + str(seed) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=fname_param_prefix + tm_fname, wf_res_summary_fname=fname_param_prefix + wf_res_fname, gops_opbuff_summary_fname=fname_param_prefix + gops_opbuff_fname, rmtbl_dt_summary_fname=fname_param_prefix + rmtbl_dt_fname, gops_opbuff_summary_short_fname=fname_param_prefix + gops_opbuff_short_fname, output_format="json") MMMSim.SimMon.report_OutputBufferContents_short( dump_to_file=fname_param_prefix + obuff_short_fname) MMMSim.SimMon.report_TaskRemappingInfo( dump_to_file=fname_param_prefix + trminfo_fname)
def runSim_CentralFullyDynamicMapping(run_rm_off=True, run_rm_on=True, seed=1234, multiseeds=False, noc_w=10, noc_h=10): print "SEED === " + str(seed) print noc_w print noc_h ############### # fixed params ############### SimParams.NOC_W = noc_w SimParams.NOC_H = noc_h SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck() SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False noc_size_dir = "noc_" + str(noc_w) + "x" + str(noc_h) + "/" if(multiseeds==True): DATA_FOLDER = "experiment_data/remapping_nocsize/remapping_central_dynamic/"+"seed_"+str(seed)+"/" else: #DATA_FOLDER = "experiment_data/remapping_central_dynamic/" DATA_FOLDER = "experiment_data/remapping_nocsize/remapping_central_dynamic/" + noc_size_dir if(run_rm_off == True): ################################ # PS-based Remapping disabled ################################ SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST FNAME_PREFIX = DATA_FOLDER+"RMOFF_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_CentralFullyDynamicMapping : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Disabled, " + noc_size_dir print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary) = MMMSim.SimMon.report_DecodedWorkflows_Summary(timeline_fname =FNAME_PREFIX+tm_fname, wf_res_summary_fname = FNAME_PREFIX+wf_res_fname, gops_opbuff_summary_fname = FNAME_PREFIX+gops_opbuff_fname, rmtbl_dt_summary_fname = FNAME_PREFIX+rmtbl_dt_fname, gops_opbuff_summary_short_fname = FNAME_PREFIX+gops_opbuff_short_fname, output_format = "json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX+obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX+flowscompleted_fname) #MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX+trminfo_fname) #MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX+nodecumslack_fname) #MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX+node_importedtasks) if(run_rm_on == True): ################################ # PS-based Remapping enabled ################################ SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.MS_SIGNALLING_NOTIFY_TASK_COMPLETE_ENABLE = True SimParams.MS_SIGNALLING_NOTIFY_FLOW_COMPLETE_ENABLE = False SimParams.MAPPING_PREMAPPING_ENABLED = False SimParams.FULLYDYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemesFullyDyn.TASKMAPPINGSCHEMESFULLYDYN_LOWESTUTIL_NEARESTPARENT SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION # this will be overridden SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST FNAME_PREFIX = DATA_FOLDER+"RMON_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_CentralFullyDynamicMapping : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Enabled, " + noc_size_dir print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary) = MMMSim.SimMon.report_DecodedWorkflows_Summary(timeline_fname =FNAME_PREFIX+tm_fname, wf_res_summary_fname = FNAME_PREFIX+wf_res_fname, gops_opbuff_summary_fname = FNAME_PREFIX+gops_opbuff_fname, rmtbl_dt_summary_fname = FNAME_PREFIX+rmtbl_dt_fname, gops_opbuff_summary_short_fname = FNAME_PREFIX+gops_opbuff_short_fname, output_format = "json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX+obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX+flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX+trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX+nodecumslack_fname) MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX+node_importedtasks)
def runSim_RandomRemappingBasic(run_rm_off=True, run_rm_on=True, seed=1234, multiseeds=False): print "SEED === " + str(seed) ############### # fixed params ############### SimParams.NOC_W = 10 SimParams.NOC_H = 10 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck() SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST if(multiseeds==True): #DATA_FOLDER = "experiment_data/remapping_randombased/"+"seed_"+str(seed)+"/" DATA_FOLDER = "experiment_data/remapping_random_initial_mapping/remapping_randombased/"+"seed_"+str(seed)+"/" else: DATA_FOLDER = "experiment_data/remapping_randombased/" # name the report filenames tm_fname = "test__timeline.png" vs_bs_fname = "test__vsbs.js" util_fname = "test__util.js" wf_res_fname = "test__wfressumm.js" gops_opbuff_fname = "test__gopsopbuffsumm.js" rmtbl_dt_fname = "test__rmtbldt.js" ibuff_fname = "test__ibuff.js" obuff_fname = "test__obuff.js" nodetqs_fname = "test__nodetqs.js" rmtaskrelease_fname = "test__rmtaskrel.js" mappingandpriass_fname = "test__mappingandpriass.js" flowscompleted_fname = "test__flwcompleted.js" nodetaskexectime_fname = "test__nodetaskexectime.js" psalgo_nodeprops = "test__psalgonodeprops.js" flowsadded_fname = "test__flwsadded.js" trminfo_fname = "test__taskremappinginfo.js" nodecumslack_fname = "test__nodecumslack.js" node_importedtasks = "test__nodeimportedtasks.js" rmdebuginfo_1 = "test__remappingdebuginfo_1.js" if(run_rm_off == True): ################################ # Random Remapping disabled ################################ SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = False SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_NONE FNAME_PREFIX = DATA_FOLDER+"RMOFF_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RandomRemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_disabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary) = MMMSim.SimMon.report_DecodedWorkflows_Summary(timeline_fname =FNAME_PREFIX+tm_fname, wf_res_summary_fname = FNAME_PREFIX+wf_res_fname, gops_opbuff_summary_fname = FNAME_PREFIX+gops_opbuff_fname, rmtbl_dt_summary_fname = FNAME_PREFIX+rmtbl_dt_fname, output_format = "json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX+obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) #MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX+flowscompleted_fname) #MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX+trminfo_fname) #MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX+nodecumslack_fname) #MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX+node_importedtasks) if(run_rm_on == True): ################################ # PS-based Remapping enabled ################################ SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_RANDOM_ANY SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 4.6 FNAME_PREFIX = DATA_FOLDER+"RMON_" random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RandomRemappingBasic : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", Remapping_enabled" print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary) = MMMSim.SimMon.report_DecodedWorkflows_Summary(timeline_fname =FNAME_PREFIX+tm_fname, wf_res_summary_fname = FNAME_PREFIX+wf_res_fname, gops_opbuff_summary_fname = FNAME_PREFIX+gops_opbuff_fname, rmtbl_dt_summary_fname = FNAME_PREFIX+rmtbl_dt_fname, output_format = "json") #MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, FNAME_PREFIX+vs_bs_fname) #MMMSim.SimMon.report_InstUtilisation(dump_to_file=FNAME_PREFIX+util_fname) #MMMSim.SimMon.report_InputBuffer(dump_to_file=FNAME_PREFIX+ibuff_fname) #MMMSim.SimMon.report_NodeTQs(dump_to_file=FNAME_PREFIX+nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=FNAME_PREFIX+obuff_fname) #MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=FNAME_PREFIX+rmtaskrelease_fname) #MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=FNAME_PREFIX+mappingandpriass_fname) #MMMSim.SimMon.report_FlowsCompleted(dump_to_file=FNAME_PREFIX+flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=FNAME_PREFIX+nodetaskexectime_fname) #MMMSim.SimMon.report_FlowsAdded(dump_to_file=FNAME_PREFIX+flowsadded_fname) MMMSim.SimMon.report_TaskRemappingInfo(dump_to_file=FNAME_PREFIX+trminfo_fname) MMMSim.SimMon.report_NodeCumSlack(dump_to_file=FNAME_PREFIX+nodecumslack_fname) MMMSim.SimMon.report_NodeImportedTasks(dump_to_file=FNAME_PREFIX+node_importedtasks)
def runSim_RemappingMCParamsTest_RMON( seed=77379, param_rand_CLUSTER_SIZE=None, param_rand_REMAP_PERIOD=None, param_rand_LATENESS_RATIO=None, param_rand_LOAN_AMOUNT=None, param_fname=None, ): if ((param_rand_CLUSTER_SIZE == None) or (param_rand_REMAP_PERIOD == None) or (param_rand_LATENESS_RATIO == None) or (param_rand_LOAN_AMOUNT == None) or (param_fname == None)): sys.exit('runSim_RemappingMCParamsTest_RMON:: not enough params !!') print "SEED === " + str(seed) # fixed params SimParams.NOC_W = NOC_W SimParams.NOC_H = NOC_W SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST DATA_FOLDER = "experiment_data/remapping_ccpbased_montecarlo/" + "seed_" + str( seed) + "/" SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False SimParams.CCP_ENABLE = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_CCP_REMAPPING FNAME_PREFIX = DATA_FOLDER + "RMON_" # set params from arguments SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = param_rand_REMAP_PERIOD #SimParams.DYNAMIC_TASK_REMAPPING_TASK_LATE_ESTIM_LATENESS_RATIO = param_rand_LATENESS_RATIO SimParams.CCP_CLUSTER_SIZE = [ int(c) for c in param_rand_CLUSTER_SIZE.split('-') ] SimParams.CCP_LOAN_TASK_AMOUNT = param_rand_LOAN_AMOUNT # fname_param_prefix = FNAME_PREFIX + str(param_rand_CLUSTER_SIZE) + \ # "_" + str(param_rand_REMAP_PERIOD) + \ # "_" + str(param_rand_LATENESS_RATIO) + "_" fname_param_prefix = FNAME_PREFIX + param_fname + "_" # check if the simulation has run already before continuing, by checking if # one of the output file exists check_fname = fname_param_prefix + "resultssummary.js" print "Checking file exists : " + str(check_fname) run_sim = False if (_check_file_exists(check_fname) == True): if (_is_resultssummary_error(check_fname) == False): print "Simulation already exists ! " run_sim = False else: run_sim = True else: run_sim = True if (run_sim == True): random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RemappingMCParamsTest_RMON : num_wf=" + str( SimParams.NUM_WORKFLOWS) print fname_param_prefix print "SEED === " + str(seed) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=fname_param_prefix + tm_fname, wf_res_summary_fname=fname_param_prefix + wf_res_fname, gops_opbuff_summary_fname=fname_param_prefix + gops_opbuff_fname, rmtbl_dt_summary_fname=fname_param_prefix + rmtbl_dt_fname, gops_opbuff_summary_short_fname=fname_param_prefix + gops_opbuff_short_fname, output_format="json") MMMSim.SimMon.report_OutputBufferContents_short( dump_to_file=fname_param_prefix + obuff_short_fname) MMMSim.SimMon.report_TaskRemappingInfo( dump_to_file=fname_param_prefix + trminfo_fname)
def runSim_RemappingMCParamsTest_RMON(seed=77379, param_rand_TQN=None, param_rand_TDECAY=None, param_rand_THRESHOLDQN=None, param_rand_THRESHOLDHOPCOUNT=None, param_rand_THRESHOLDQN_RAT_DECREASE=None, param_rand_THRESHOLDQN_RAT_INCREASE=None, param_rand_KHOPDECAY=None, param_rand_KTIMEDECAY=None, param_rand_HQN=None, param_rand_INITHD=None, param_rand_REMAP_PERIOD=None, param_rand_LATENESS_RATIO=None, fname_param=None): if ((param_rand_TQN == None) or (param_rand_TDECAY == None) or (param_rand_THRESHOLDQN == None) or (param_rand_THRESHOLDQN_RAT_DECREASE == None) or (param_rand_THRESHOLDQN_RAT_INCREASE == None) or (param_rand_THRESHOLDHOPCOUNT == None) or (param_rand_KHOPDECAY == None) or (param_rand_KTIMEDECAY == None) or (param_rand_HQN == None) or (param_rand_INITHD == None) or (param_rand_REMAP_PERIOD == None) or (fname_param == None) or (param_rand_LATENESS_RATIO == None)): sys.exit('runSim_RemappingMCParamsTest_RMON:: not enough params !!') print "SEED === " + str(seed) # fixed params SimParams.NOC_W = NOC_W SimParams.NOC_H = NOC_W SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES + 3 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST DATA_FOLDER = "experiment_data/remapping_psbased_montecarlo/" + "seed_" + str( seed) + "/" SimParams.PSALGO_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_ENABLED = True SimParams.DYNAMIC_TASK_REMAPPING_SCHEME = TaskRemapDecentSchemes.TASKREMAPPINGDECENTSCHEMES_LOWESTBLOCKING_QUEEN_VIA_SYSSLACK SimParams.CPUNODE_MONITOR_TASKSET_SLACK = True SimParams.PSALGO_VIEWER_ENABLED = False SimParams.MMC_ENABLE_DATATRANSMISSION_MODELLING = False FNAME_PREFIX = DATA_FOLDER + "RMON_" # # -------------------------------------------------------------------------------- # # params taken from mc-test : perm_0.22_0.0629_20.0_0.3_0.3_4.6_ # SimParams.PSALGO_TQN = 0.22 # SimParams.PSALGO_TDECAY = 0.0629 # SimParams.PSALGO_THRESHOLDQN = 20.0 # #SimParams.PSALGO_DYNAMIC_THRESHOLDQN_RATIO = [0.3, 0.3] # SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = 4.6 # SimParams.PSALGO_THRESHOLDHOPCOUNT = 2 # # -------------------------------------------------------------------------------- # set params from arguments SimParams.PSALGO_TQN = param_rand_TQN SimParams.PSALGO_TDECAY = param_rand_TDECAY #SimParams.PSALGO_THRESHOLDQN = param_rand_THRESHOLDQN SimParams.PSALGO_DYNAMIC_THRESHOLDQN_RATIO = [ param_rand_THRESHOLDQN_RAT_INCREASE, param_rand_THRESHOLDQN_RAT_DECREASE ] SimParams.PSALGO_THRESHOLDHOPCOUNT = param_rand_THRESHOLDHOPCOUNT SimParams.PSALGO_KHOPDECAY = param_rand_KHOPDECAY SimParams.PSALGO_KTIMEDECAY = param_rand_KTIMEDECAY SimParams.PSALGO_HQN = param_rand_HQN #SimParams.PSALGO_INITIALHORMONEAMNT_WORKER = param_rand_INITHD #SimParams.PSALGO_INITIALHORMONEAMNT_QUEEN = param_rand_INITHD SimParams.DYNAMIC_TASK_REMAPPING_SAMPLING_INTERVAL = param_rand_REMAP_PERIOD #SimParams.DYNAMIC_TASK_REMAPPING_TASK_LATE_ESTIM_LATENESS_RATIO = param_rand_LATENESS_RATIO # fname_param_prefix = FNAME_PREFIX + str(param_rand_TQN) + \ # "_" + str(param_rand_TDECAY) + \ # "_" + str(param_rand_THRESHOLDQN) + \ # "_" + str(param_rand_THRESHOLDHOPCOUNT) + \ # "_" + str(param_rand_THRESHOLDQN_RAT_INCREASE) + \ # "_" + str(param_rand_THRESHOLDQN_RAT_DECREASE) + \ # "_" + str(param_rand_REMAP_PERIOD) + "_" fname_param_prefix = FNAME_PREFIX + fname_param + "_" # check if the simulation has run already before continuing, by checking if # one of the output file exists check_fname = fname_param_prefix + "resultssummary.js" print "Checking file exists : " + str(check_fname) run_sim = False if (_check_file_exists(check_fname) == True): if (_is_resultssummary_error(check_fname) == False): print "Simulation already exists ! " run_sim = False else: run_sim = True else: run_sim = True if (run_sim == True): random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_RemappingMCParamsTest_RMON : num_wf=" + str( SimParams.NUM_WORKFLOWS) print fname_param_prefix print "SEED === " + str(seed) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=fname_param_prefix + tm_fname, wf_res_summary_fname=fname_param_prefix + wf_res_fname, gops_opbuff_summary_fname=fname_param_prefix + gops_opbuff_fname, rmtbl_dt_summary_fname=fname_param_prefix + rmtbl_dt_fname, gops_opbuff_summary_short_fname=fname_param_prefix + gops_opbuff_short_fname, output_format="json") MMMSim.SimMon.report_OutputBufferContents_short( dump_to_file=fname_param_prefix + obuff_short_fname) MMMSim.SimMon.report_TaskRemappingInfo( dump_to_file=fname_param_prefix + trminfo_fname)
def runSim_AC_MP_Type( forced_seed = None, fname_prefix=None, ac_type=None, mp_type=None, pr_type=None, num_wfs=None, res_list=None, cmbmppri_type=None ): seed = forced_seed print "SEED === " + str(seed) # fixed params SimParams.NOC_W = 3 SimParams.NOC_H = 3 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck() SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.NUM_WORKFLOWS = num_wfs SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS = res_list SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = True SimParams.CPU_EXEC_SPEED_RATIO = 0.8 SimParams.NOC_PERIOD = 0.0000001 #10 mhz #SimParams.NOC_PERIOD = 0.00000142 #.7 mhz SimParams.WFGEN_MIN_GOPS_PER_VID = 200 SimParams.WFGEN_MAX_GOPS_PER_VID = 200 SimParams.AC_TEST_OPTION = ac_type SimParams.DYNAMIC_TASK_MAPPING_SCHEME = mp_type SimParams.DYNAMIC_TASK_PRIASS_SCHEME = pr_type SimParams.COMBINED_MAPPING_AND_PRIASS = cmbmppri_type # non-hevc stuff SimParams.HEVC_TILELEVEL_SPLITTING_ENABLE = False SimParams.TASK_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL SimParams.HEVC_GOPGEN_USEPROBABILISTIC_MODEL = False SimParams.TASKSET_MODEL = TaskModel.TASK_MODEL_MHEG2_FRAME_ET_LEVEL sub_exp_dir = "multiseed_random_res/" #subdir = "ac"+str(ac_type)+"mp"+str(mp_type)+"pr"+str(pr_type)+"cmb"+str(cmbmppri_type)+"/" subdir = "seed_"+str(seed) +"/" FNAME_PREFIX = fname_prefix+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" check_fname = _get_fname(EXP_DATADIR+sub_exp_dir+subdir, FNAME_PREFIX)['utilvsschedresults_fname'] print "Checking file exists : " + str(check_fname) if(_check_file_exists(check_fname) == True): print "Simulation already exists.." else: random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim-"+ fname_prefix +": num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) + \ ", seed="+str(forced_seed) print "----------------------------------------------------------------------------------------------------------------------------" #subdir = "" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = fname_prefix+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" _makeDir(EXP_DATADIR+sub_exp_dir+subdir) # get filenames filenames = _get_fname(EXP_DATADIR+sub_exp_dir+subdir, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames)
def runSim_Scenario_v2( forced_seed = None, scenario_exp_folder = None, scenario_id = None, dvb_resolutions = None, dvb_resolutions_fixed = [], dvb_resolutions_selected_random=True, num_workflows = None, run_noac_lum = True, run_schedac_lum = True, run_noac_improvedm = True, run_schedac_improvedm = True, ): seed = forced_seed SCENARIO_ID = scenario_id print "SEED === " + str(seed) # fixed params SimParams.SLACK_FEEDBACK_ENABLED = False SimParams.NOC_W = 3 SimParams.NOC_H = 3 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck() SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP SimParams.DVB_RESOLUTIONS = dvb_resolutions SimParams.NUM_WORKFLOWS = num_workflows SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.DVB_RESOLUTIONS_FIXED = dvb_resolutions_fixed SimParams.DVB_RESOLUTIONS_SELECTED_RANDOM = dvb_resolutions_selected_random if(run_noac_lum == True): ############################ #### No AC - LU Mapping #### ############################ SimParams.AC_TEST_OPTION = AdmissionControllerOptions.AC_OPTION_NONE_WITH_SCHEDTEST_WITHMMC SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Scenario_V1 (NOCAC_LUM): num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = SCENARIO_ID+"NOAC_LUM_"+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" # get filenames filenames = _get_fname(EXP_DATADIR+scenario_exp_folder, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames) if(run_schedac_lum==True): #################################### #### SCHED_ONLY AC - LU Mapping #### #################################### SimParams.AC_TEST_OPTION = AdmissionControllerOptions.AC_OPTION_SCHEDTEST_DIRECT_TO_CRITICALPATH_WITHMMC SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_DISABLED random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Scenario_V1 (SCHEDONLYAC_LUM): num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = SCENARIO_ID+"SCHEDONLYAC_LUM_"+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" # get filenames filenames = _get_fname(EXP_DATADIR+scenario_exp_folder, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames) if(run_noac_improvedm==True): ################################## #### No AC - Improved Mapping #### ################################## SimParams.AC_TEST_OPTION = AdmissionControllerOptions.AC_OPTION_NONE_WITH_SCHEDTEST_WITHMMC SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_PRLOWRESFIRST_TIGHTFIT_V1 random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Scenario_V1 (NOCAC_IMPROVEDM): num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = SCENARIO_ID+"NOCAC_IMPROVEDM_"+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" # get filenames filenames = _get_fname(EXP_DATADIR+scenario_exp_folder, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames) if(run_schedac_improvedm==True): ########################################## #### SCHED_ONLY AC - Improved Mapping #### ########################################## SimParams.AC_TEST_OPTION = AdmissionControllerOptions.AC_OPTION_SCHEDTEST_DIRECT_TO_CRITICALPATH_WITHMMC SimParams.DYNAMIC_TASK_MAPPING_SCHEME = TaskMappingSchemes.TASKMAPPINGSCHEMES_LOWEST_UTILISATION SimParams.DYNAMIC_TASK_PRIASS_SCHEME = TaskSemiDynamicPrioritySchemes.TASKSEMIDYNAMICPRIORITYSCHEMES_LOWRES_FIRST SimParams.COMBINED_MAPPING_AND_PRIASS = TaskMappingAndPriAssCombinedSchemes.TASKMAPPINGANDPRIASSCOMBINED_PRLOWRESFIRST_TIGHTFIT_V1 random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Scenario_V1 (SCHEDONLYAC_IMPROVEDM): num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(SimParams.NOC_H)+","+"noc_w="+str(SimParams.NOC_W) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = SCENARIO_ID+"SCHEDONLYAC_IMPROVEDM_"+str(SimParams.NOC_H)+"_"+str(SimParams.NOC_W)+"_" # get filenames filenames = _get_fname(EXP_DATADIR+scenario_exp_folder, FNAME_PREFIX) # name the report filenames _dump_captured_data(filenames)
def runSim_Simple_ClosedLoop_woIBuffering(): seed = 99108 print "SEED === " + str(seed) # fixed params SimParams.SLACK_FEEDBACK_ENABLED = False SimParams.NOC_W = 8 SimParams.NOC_H = 8 SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES * 2 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck() SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.CLOSEDLOOP_WITHOUT_IBUFFERING SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.CLOSEDLOOP_WITHOUT_IBUFFERING random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Simple_ClosedLoop_woIBuffering : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time+SimParams.SIM_RUNTIME) print env.now # name the report filenames tm_fname = "test__timeline.png" vs_bs_fname = "test__vsbs.js" util_fname = "test__util.js" wf_res_fname = "test__wfressumm.js" gops_opbuff_fname = "test__gopsopbuffsumm.js" rmtbl_dt_fname = "test__rmtbldt.js" ibuff_fname = "test__ibuff.js" obuff_fname = "test__obuff.js" nodetqs_fname = "test__nodetqs.js" rmtaskrelease_fname = "test__rmtaskrel.js" mappingandpriass_fname = "test__mappingandpriass.js" flowscompleted_fname = "test__flwcompleted.js" nodetaskexectime_fname = "test__nodetaskexectime.js" (wf_results_summary, gops_in_outputbuff_summary) = MMMSim.SimMon.report_DecodedWorkflows_Summary(timeline_fname=tm_fname, wf_res_summary_fname = wf_res_fname, gops_opbuff_summary_fname = gops_opbuff_fname, rmtbl_dt_summary_fname = rmtbl_dt_fname, output_format = "json") MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, vs_bs_fname) MMMSim.SimMon.report_InstUtilisation(dump_to_file=util_fname) MMMSim.SimMon.report_InputBuffer(dump_to_file=ibuff_fname) MMMSim.SimMon.report_NodeTQs(dump_to_file=nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=obuff_fname) MMMSim.SimMon.report_RMTaskReleaseInfo(dump_to_file=rmtaskrelease_fname) MMMSim.SimMon.report_MappingAndPriAssInfo(dump_to_file=mappingandpriass_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=flowscompleted_fname) MMMSim.SimMon.report_NodeTaskExecTimeline(dump_to_file=nodetaskexectime_fname)
def runSim_Simple_OpenLoop_NNTest(noc_h, noc_w, combined_mapping_option, normal_mapping_scheme, normal_priass_scheme): seed = 99108 print "SEED === " + str(seed) # fixed params SimParams.SLACK_FEEDBACK_ENABLED = False SimParams.NOC_W = noc_w SimParams.NOC_H = noc_h SimParams.NUM_NODES = (SimParams.NOC_W * SimParams.NOC_H) SimParams.NUM_WORKFLOWS = SimParams.NUM_NODES * 2 SimParams.NUM_INPUTBUFFERS = SimParams.NUM_WORKFLOWS SimParams.LOCAL_SCHEDULER_TYPE = LocalMPEG2FramePriorityScheduler_WithDepCheck( ) SimParams.SIM_ENTITY_RESOURCEMANAGER_CLASS = RMTypes.OPENLOOP SimParams.SIM_ENTITY_CPUNODE_CLASS = CPUTypes.OPENLOOP SimParams.SIM_ENTITY_MAPPER_CLASS = MapperTypes.OPENLOOP SimParams.SIM_ENTITY_TASKDISPATCHER_CLASS = TDTypes.OPENLOOP # assign mapping scheme SimParams.DYNAMIC_TASK_MAPPING_SCHEME = normal_mapping_scheme SimParams.DYNAMIC_TASK_PRIASS_SCHEME = normal_priass_scheme SimParams.COMBINED_MAPPING_AND_PRIASS = combined_mapping_option random.seed(seed) np.random.seed(seed) print "----------------------------------------------------------------------------------------------------------------------------" print "Running runSim_Simple_OpenLoop : num_wf=" + str(SimParams.NUM_WORKFLOWS) + \ ", noc_h="+str(noc_h)+","+"noc_w="+str(noc_w) + \ ", mapping="+str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + \ ", pri_ass="+str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + \ ", combined_mapping="+str(SimParams.COMBINED_MAPPING_AND_PRIASS) print "----------------------------------------------------------------------------------------------------------------------------" env, last_scheduled_task_time = MMMSim.runMainSimulation() env.run(until=last_scheduled_task_time + SimParams.SIM_RUNTIME) print env.now FNAME_PREFIX = "Mapping_" + \ str(SimParams.DYNAMIC_TASK_MAPPING_SCHEME) + "_" + \ str(SimParams.DYNAMIC_TASK_PRIASS_SCHEME) + "_" + \ str(SimParams.COMBINED_MAPPING_AND_PRIASS) + "_" + \ str(noc_h)+"_"+str(noc_w)+"_" # name the report filenames tm_fname = EXP_DATADIR + FNAME_PREFIX + "test__timeline.png" vs_bs_fname = EXP_DATADIR + FNAME_PREFIX + "test__vsbs.js" util_fname = EXP_DATADIR + FNAME_PREFIX + "test__util.js" wf_res_fname = EXP_DATADIR + FNAME_PREFIX + "test__wfressumm.js" gops_opbuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__gopsopbuffsumm.js" rmtbl_dt_fname = EXP_DATADIR + FNAME_PREFIX + "test__rmtbldt.js" ibuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__ibuff.js" obuff_fname = EXP_DATADIR + FNAME_PREFIX + "test__obuff.js" nodetqs_fname = EXP_DATADIR + FNAME_PREFIX + "test__nodetqs.js" rmtaskrelease_fname = EXP_DATADIR + FNAME_PREFIX + "test__rmtaskrel.js" mappingandpriass_fname = EXP_DATADIR + FNAME_PREFIX + "test__mappingandpriass.js" flowscompleted_fname = EXP_DATADIR + FNAME_PREFIX + "test__flwcompleted.js" nodetaskexectime_fname = EXP_DATADIR + FNAME_PREFIX + "test__nodetaskexectime.js" (wf_results_summary, gops_in_outputbuff_summary ) = MMMSim.SimMon.report_DecodedWorkflows_Summary( timeline_fname=tm_fname, wf_res_summary_fname=wf_res_fname, gops_opbuff_summary_fname=gops_opbuff_fname, rmtbl_dt_summary_fname=rmtbl_dt_fname, output_format="json") MMMSim.SimMon.report_VideoStream_BasicStats(wf_results_summary, vs_bs_fname) MMMSim.SimMon.report_InstUtilisation(dump_to_file=util_fname) MMMSim.SimMon.report_NodeTQs(dump_to_file=nodetqs_fname) MMMSim.SimMon.report_OutputBufferContents(dump_to_file=obuff_fname) MMMSim.SimMon.report_FlowsCompleted(dump_to_file=flowscompleted_fname)