Home
Multicube Explorer User Manual Release 1.1
Contents
1. Information Information Information Information Information Information Information Information Information Information Information Information Information Information Information Information Creating the xml driver Loading the xml driver Assigned value true to clean directory _on_ exit Changing current DB to full db Database not existing Creating a new one Loading the full Current doe has been set to Current optimizer has been set to search doe Full search doe Pareto doe optimizer Starting with the pareto doe optimization process Evaluating point Evaluating point Evaluating point Skipping point Skipping point Skipping point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point Evaluating point 5 parl _exp2 E parl_exp2 2048 par2_ ste parl _exp2 4 024 par2_ste 096 par2_ste p p p 1 par3_step2 1 1 par3_step2 1 1 par3_step2 1 parl_exp2 1024 par2_step1 2 par3_step2 1 8 par2_step1 2 par3_step2 1 parl_exp2 4096 par2_stepl 2 par3 step2 1 parl_exp2 204 parl_exp2 parl_exp2 4 parl_exp2 parl_exp2 4 parl_exp2 parl_exp2 4 parl_exp2 parl_exp2 4 Writing the database to disk Database correctly written Saving the database in CSV format Assigned value sum d
2. type a string variable with value power power_log sqrt inv_sqrt exp defines the radial function to use e parameter an integer variable defines the parameter value for the choosen radial function preprocess a variable with floating point value or log value specifies to use the logarithmic transformation value log otherwise defines the value of A Example usage db_change_current training db_read training db set type power_log set parameter 2 set preprocess 0 5 doe_define_doe m3_full_doe rsm_train predictions RBF VVVVV VV 18 Multicube Explorer User Manual Release 1 1 Radial Basis Functions plugin requires the BOOST library http www boost org and the GNU Scientific Library http www gnu org s To compile m3explorer to support the plugin specify the rbf lt boost_path gt option of configure command like in the following example mkdir build cd build lt sourcedir gt configure boost usr local make make install VVVV MV 5 4 4 Shepard The Shepard s technique is a well known method for multivariate interpolation This technique is also called Inverse Distance Weighting IDW method because the value of the response function in unknown points is the the sum of the value of the response function in known points weighted with the inverse of the distance The name for this RSM in M3Explorer is SHEPARD and the related parameters are power an integer var
3. Basic commands adopted to control the m3explorer environment in terms of defined variables and other basic func tionalities Plugins commands which give powerful flexibility to the user on handling the modular structure of M3Explorer Database commands used to handle one or more database where visited design points are stored 8 1 Basic Commands These commands support the user on performing simple operations as load scripts display help messages and set variables value and close m3explorer Shell Command name exit Arguments E Options Description Exits from the m3explorer shell Example usage gt exit Shell Command name quit Arguments Options Description Same as exit command Example usage gt quit Shell Command name read_script Arguments Name of the script to be read string Options Description All commands within the given script are sequentially executed in the m3explorer environment Example usage gt read_script my_script scr Shell Command name set Arguments Name of the variable to be set identifier Value to be inserted into the variable object Options Description Set an environment variable Set command cares about definition of the variable if this was never used before or modification of variable content if variable was existing The following variable names
4. objectives architecture_info objectives_units and objectives_names are reserved to specify objectives and architecture properties Example usage gt set my_string I m a string gt set my_number 13 gt set my_list my_string my_number 0 9233 30 Multicube Explorer User Manual Release 1 1 Shell Command name show_vars Arguments Options Description Shows the variable in the current m3explorer environment and reports basic infor mation about available Databases Example usage gt show_vars Shell Command name help Arguments Options long request a list of the available options and arguments for each command Description Reports general help on m3explorer commands Example usage gt help long 8 2 Plugins Commands M3Explorer is organized in modular structure and enables the user to dynamically load precompiled plugins within the environment These plugins are DoE modules adopted for initial experimental design and optimization modules for the definition of opti mization algorithm to be adopted Shell variables can be used for passing additional parameters to the modules Shell Command name doe_define_doe Arguments Name of the Design Of Experiments to be loaded string Options 3 Description Instantiates the Design of Experiments module to be used during the optimization Example us
5. Name of the optimizer to be loaded string Options a Description Loads the optimizer plug in Example usage gt opt_define_optimizer m3_aprs Shell Command name opt_show_info Arguments Options Description Shows information about the current optimizer Example usage gt opt_show_info 32 Multicube Explorer User Manual Release 1 1 Shell Command name opt_tune Arguments Options Description Launch the exploration process defined in the optimizer also called optimization or tuning operation During optimization all modules optimizer driver doe inter acts thus they should be all loaded into the environment when opt_tune is called With commands in the following example the aprs optimization process is launched over the mpeg usecase available in the example subdirectory of the installation di rectory The DoE adopted as initial experimental design is a random one Results of optimization process are placed into the current database root database when the shell is just opened Example usage gt set xml_design_space_file m3_mpeg_use_case xml drv_define driver m3_xml_ driver doe_define doe m3_random_doe opt_define_optimizer m3_aprs opt_tune VV VV Shell Command name rsm_train Arguments Shell database name where to write the predictions string Name of the RSM to train string Opti
6. and a sequence of lt parameter gt sections where for each parameter the name and the value is specified lt xml version 1 0 encoding UTF 8 gt lt simulator_input_interface xmlns http www multicube eu version 1 4 gt lt parameter name seed value 1 gt lt simulator_input_interface gt The number of lt parameter gt sections and the name of the parameters should be the same as defined in the XML Design Space description file The value of the each parameter section should correspond to one of the possible values as defined in the XML Design Space description file Concerning variable vector parameters the actual parameter instances are specified with an itemized list For example an on_off_mask instance value for the active_processors parameter is described in the sim ulator input file as the following list 25 Multicube Explorer User Manual Release 1 1 lt parameter name active_processors gt lt item index 1 value 0 gt lt item index 2 value 1 gt lt item index 3 value 0 gt lt item index 4 value 1 gt lt parameter gt In the case of a permutation vector the index attribute is substituted with the position attribute lt parameter name thread_assignment gt lt item position 1 value 2 gt lt item position 2 value 3 gt lt item position 3 value 1 gt lt parameter gt Index and position attributes start from 1 up to the dimension associat
7. database loaded the current db gt db_plot_2D gt iwidth energy 2D plot of the first database loaded gt db_plot_2D first_exploration Shell Command name db_show_optimum Arguments Options Description Displays the optimal point stored in the current db The optimum point is consid ered the one with minimum product of objective metrics Usage example refers to use case example provided with the distribution of m3explorer Example usage gt db_read full_mpeg4 db gt set objectives energy cycles gt db_show_optimum Information Computing optimum point please note that the cost function is the product of all the metrics Optimum point ics 16384 dcs 8192 12cs 131072 icw 1 dcw 8 12cw 2 iwidth 2 cbs 16 pn 8 cost 2 92596e 07 37 Multicube Explorer User Manual Release 1 1 Shell Command name db_compute_ADRS Arguments Options Description Computes the Average Distance from Reference Set ADRS Such distance is a quantitative measure of solution qualities of a multiobjective ex ploration that is available for whatever dimension of the objective space thus it can be used even when graphical investigation towards db_plot_objectives cannot be performed ADRS computation needs a reference set that is provided to the command by passing a db name parameters where the reference set is stored ADRS result is stored in a variable c
8. in a format readable from m3explorer Example usage gt db_write MY _EXPLORATION_DB db Shell Command name db_change_current Arguments Name of the db to be set as current string Options S Description The current db is the one actually used for storing exploration results and it is the target of the commands of the shell All operations performed in m3explorer which act on database has the current db as target db_change_current allow to define which database have to be used as current taking its name as parameter In the case no database with the specified name exists in the m3eplorer environment such database is automatically generated and set as current Example usage gt db_change_current MY_EXPLORATION_DB Shell Command name db_export Arguments File name into which the current database should be exported string Options Description This command can be used to export the current database in CSV format to the file specified as parameter Example usage gt db_export MY_EXPLORATION_DB csv Shell Command name db_export_xml Arguments File name into which the current database should be exported string Options E Description This command can be used to export the current database in XML format to the file specified as parameter Example usage gt db_export_xml MY_EXPLORATION_DB xml Shell C
9. name 12_cache_block_size gt lt parameter name 11_dcache_block_size gt lt greater equal gt lt rule gt lt rule name application derived minimal size gt lt greater equal gt lt parameter name 12_ cache_size gt lt constant value 2048 gt lt greater equal gt lt rule gt lt rules gt Describes the rule 12_cache_block_size gt 11_dcache_block_size AND 12_cache_size gt 2048 Available operators The following operators markers can be used lt greater gt lt greater equal gt lt less gt lt less equal gt lt equal gt lt not equal gt lt expr gt The lt expr gt marker can be used for introducing generic expressions e g lt rule gt lt greater equal gt lt parameter name 12_cache_size gt lt expr operator gt lt constant value 2 gt lt parameter name 11_cache_size gt lt expr gt lt greater equal gt lt rule gt The previous set of rules is represents 12_cache_size gt 2 11_cache_size The operators supported by M3Explorer are Combining rules For combining complex expressions the following markers operators can be used lt and gt lt or gt lt not gt For example the following rules are AND ed together lt rules gt lt rule name overall memory subsystem integrity gt lt and gt lt greater equal gt lt parameter name 12_cache_block_size gt lt parameter name 11_dcache_block_size gt lt greater equal g
10. parameter type can be integer and boolean The integer type specifies a simple sequential integer progression associated that specific parameter The min and max attributes which are mandatory specify the boundaries of the progression The step attribute can be used to produce non unitary progressions The Boolean type is an integer progression with min 0 and max 1 exp2 The values associated with an exp2 parameter type should be computed by M3Explorer by using a power of two progression For example lt parameter name i11_cache_block_size_bytes description type exp2 min 8 max 64 gt should be interpreted by M3Explorer as a parameter with range values nn 16 32 64 e string Inthe case of string parameters a list of possible string values should be used instead of the min max attributes lt parameter name bpred description branch predictor type type string gt lt item value nottaken gt lt item value taken gt lt item value perfect gt lt item value bimod gt lt item value 2lev gt lt item value comb gt lt parameter gt In the case the design space is composed of a subset of scalar parameters each one with the same type and range the design space definition can be represented in a more compact way by adding an integer attribute instances instead of declaring one line for each scalar parameter If the attribute is not declared it is considered equal to
11. 1 Variable vector types The following types are introduced for producing variable vector types with specific constraints on the possible combinations of the components on off mask The on off mask is essentially a vector combination of boolean values with a specific dimension We use the on_set_size attribute to specify the amount of elements which should be on in the resulting vector lt parameter type on_off_mask name active_processors dimension 7 on_set_size number_of_threads gt 22 Multicube Explorer User Manual Release 1 1 The on_set_size can be a fixed value or a reference to a variable value In the case of reference to variable values the notation parameter should be used For example the notation number_of_threads indicates that the on_set_size should be equal to the number_of_threads parameter of the configuration under evaluation In this example we assume that the number_of_threads parameter type is an integer progression without explicit steps as a matter of fact the notation _parameter_ can refer only to integer parameters with a step 1 When the on_set_size attribute is not specified all the possible combinations of the Boolean vector are considered in the generation of the associated progression The dimension of the on_off_mask can be variable as well lt parameter type on_off_mask name QoS_priorities dimension number_of_threads gt The previous parameter specificatio
12. 2 gt lt parameters gt lt system_metrics gt lt system_metric name sum type integer unit cycles desired small gt lt system_metric name difference type integer unit mm2 desired small gt lt system_metric name product type integer unit mW desired small gt lt system_metrics gt lt rules gt lt rule gt lt greater equal gt lt parameter name par3_step2 gt lt parameter name par2_stepi gt lt greater equal gt lt rule gt lt rules gt lt design_space gt Figure 4 simple_sim_ds xml In this example we perform a full search exploration of the design space shown in Figure 4 by filtering the final results for the pareto set To start with the exploration we invoke m3explorer with its target design space gt lt installdir gt bin m3explorer x simple_sim_ds xml The target design space is now loaded Now m3explorer knows where the simulator is and which are the parameters asso ciated with it Once in the m3explorer shell we perform the following steps e Configure the optimizer to clean the directory at the end of the exploration m3_shell gt set clean_directory_on_exit true Change the current database to a new database called ful1_db it will be filled by optimizer module with the explo ration results 27 Multicube Explorer User Manual Release 1 1 m3_shell gt db_change_current full_db Load the m3_ful1_doe DoE Full search considers all the possible combi
13. Multicube Explorer User Manual Release 1 1 Politecnico di Milano Italy and Universita della Svizzera italiana Switzerland July 10th 2010 Multicube Explorer User Manual Release 1 1 Contents 1 Overview of Multicube Explorer 3 Li Gode Malticube Explorer 6c a A ae a a Re ee RR ce 3 1 14 Automaticdesign space exploration 2 6 68 505 64 Fada eed RE caras eS ee Ree aG 3 SE RO oe YS eee ASA ee ea Mee ae ee ee He ee 3 Lis Modular Compositor he ae eH EAS REG whee a woe ee ee we ESS 4 L2 Ancares REA Lo Ss A De E Oe a a Be ad 4 13 Interaction withthe simulator c cooo ee eh eee ee eee 5 2 License 6 3 Installation Requirements and Procedure 7 21 lstallation Requirementta sc es ba nbs fida PA ta irene 7 gee RR AIA ee a ee ee ae ee ee a 7 33 Testingthe installation ci ce pwd wea eee ee hea a ee eh RAS EA EAS we pE 8 SA Unima Prode odo a BG done ias e e OE aed ee Sed 8 35 DOCUMENTO sob ce ee bbe SEERA ORES Ee PES PPR SOE RRS ee RSE S Ee 8 4 The Shell of Multicube Explorer 9 5 Available Plugins 11 Sl DOES std cm bee AAA ERA AAA 11 Boke Bala area pa ek eek a A AA a ae AO Bee a 11 SAS Bando occiso Pee ee a a Poe Ee a a A oe 11 513 Oeetevels Pull Factorial iii Se Ra RE A ae aed sd Shwe 11 5 1 4 Two Levels Full Factorial Extended ee ens 12 SS Sood soa da av et nathee See Re AA 12 Sa et sod dk kB a RR e OO OR e ee ed A 12 Del E ais oy awk ie ee iy AE Ge Se eo IE Fe ge OS EN a 12 dl APRS asi es wt Re Pe e eee Gle
14. USINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUD ING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE Multicube Explorer User Manual Release 1 1 3 Installation Requirements and Procedure 3 1 Installation Requirements Multicube Explorer m3explorer in short has been designed to be compatible with LINUX and BSD MAC OSX platforms M3Explorer is written in C and can be compiled with a standard GNU C compiler version 4 0 1 or higher The following libraries and programs are needed for correctly compiling the basic version of the software without RSMs modules descibred in section 5 4 The Bison YACC parser generator http www gnu org software bison bison html tested with version 2 3 The Flex Lex lexical analyzer http flex sourceforge net tested with version 2 5 34 The libxml2 library and libxml2 devel The latest versions of libxml2 can be found on the xmlsoft org server tested with version 2 6 31 The Gnuplot software tested with version 4 2 In most cases including common Linux distributions these tools are already available on the system The following libraries and programs are needed to compile the RSMs The GNU Scientific Library http www gnu org software gsl tested with version 1 10 The language and environment for statistical computin
15. _read training db set order 1 set exclude set normax false set interaction true set preprocess 1 0 doe_define_doe m3_random_doe set solutions_number 500 rsm_train predictions LINEAR MON NON VV VV VV Linear Regression plugin requires the GNU Scientific Library http www gnu org software gsl To compile m3explorer to support the plugin specify the additional regression option of configure command like in the following example mkdir build cd build lt sourcedir gt configure regression make VVVV MV make install 5 4 2 Spline Interpolation is the process of assigning values to unknown points by using a small set of known points and does not produce any error on the known data Spline is a form of interpolation where the interpolant function is divided into intervals defining multiple different continuous polynomials with endpoints called knots The implemented approach is based on Benjamin C Lee David M Brooks Regression Modeling Stategies for Microarchitectural Performance and Power Prediction Report No TR 08 06 Division of Engineering and Applied Sciences Harvard University March 2006 17 Multicube Explorer User Manual Release 1 1 The name for this RSM in M3Explorer is SPLINE and the related parameter is preprocess a variable with floating point value or log value The parameter specifies to use the logarithmic transformation value 10g otherwise defines the val
16. aces between the drivers supporting the simulation and the optimization algorithm This will strongly enable the introduction of new modules for both academic and industrial purposes Given the modular decomposition a single optimization algorithm can used for every use case simulator Moreover a single use case architecture can be optimized with a wide range of optimization algorithms 1 2 Architecture of the tool The tool Figure 2 is basically composed by an exploration kernel which orchestrates the functional behavior of the design of experiments and optimization algorithms M3explorer XML DoE Lin A Design i bore Space Plug in am Definition Core Design Space Representation Optimizer N Use Plug in an Case Simulator Figure 2 Architecture of the tool The kernel module is responsible for reading in the design space definition file in XML format and accepting commands from the shell interface or the corresponding script It then exposes the parameters of the design space to all the modules involved in the optimization process DoE Optimization Algorithms by means of a core design space representation The core design space representation provides a set of abstract operations that are mapped on the specific use case under analysis The abstract operations are represented by iterators over the feasible design space among which we can find Full search iterators Random search iterators global and ne
17. age gt doe_ define doe m3 random _doe Shell Command name doe_show_info Arguments E Options Description Displays info message from the DoE module currently loaded in the m3explorer en vironment if any If no doe module is defined then an error message is shown Example usage gt doe_show_info 31 Multicube Explorer User Manual Release 1 1 Shell Command name drv_define_driver Arguments Name of the driver to be loaded string Options Description Load a driver module into the m3explorer environment On doing so design space is defined and parameters representing design parameter boundaries are organized into the m3explorer environment as shell variables Example usage gt set xml_design_space_file m3_mpeg_use_case xml gt drv_define driver m3_xml_driver gt show_vars Shell variables Name Value cbs 16 128 dcs 2048 65536 dcw 1 16 ds_parameters ics pn ics 2048 65536 icw 1 16 iwidth 1 8 12cs 32768 1048576 12cw 1 16 pn 1 16 Databases in memory Name size root available 0 Shell Command name drv_show_info Arguments Options Description Shows information about the current driver loaded Example usage gt drv_show_info Shell Command name opt_define_optimizer Arguments
18. alled last_ADRS Example usage gt set objectives energy cycles performing a full search exploration doe_define_doe m3_full_doe db_change_current full_DB opt_define_optimizer m3_pareto_doe opt_tune VV VV MV performing a APRS exploration db_change_current aprs_DB doe_define doe m3 random doe opt_define_optimizer m3_aprs opt_tune VV VV WV gt computing aprs quality gt db_compute_adrs full_DB Shell Command name db_report_html Arguments The folder name where to save the report Options S Description Generates a html report of the current database into the specified folder Example usage dbi_read full_mpeg4 db set objectives energy cycles set objectives_units J cycles set dcw 2 8 set 12cw 2 8 set architecture_info MPEG 2 Decoder SESC simulator db_report_html report VVVVV VV 38 Multicube Explorer User Manual Release 1 1 9 Authors Vittorio Zaccaria Politecnico di Milano Gianluca Palermo Politecnico di Milano Giovanni Mariani ALaRI Universita della Svizzera italiana Fabrizio Castro Politecnico di Milano 10 Acknowledgments Much of what M3Explorer is today was also defined by the users of the tool We would like to acknowledge the contributions of the following people for their early adoption of the tool their feedback on the tool and on the interfaces the
19. arameter name followed by _list It is possible to validate the RSM in respect to various parameters values specifying more than one value for the parameters into the corresponding vectors The first validation is done in respect to the parameters values contained into the corresponding shell vectors at index 0 the second is done in respect to the values at index 1 and so on The number of validations corresponds to the maximum vector size between those specified by the user If for a validation a parameter value is missing or wrong will be used the default one The entire mechanism is repeated for a number of times specified by the shell vari able num_samples and finally the average value for each training is considered If the user doesn t specify the variable num_samples a default value is considered Before launching this command the user have to specify a DoE The validation of the example consists in the parameters selection of power 5 and preprocess 1 the training of Shepard with a training set composed of 200 points se lected randomly from reference the average normalized error computation the training of Shepard with a training set composed of 400 points selected randomly from reference the average normalized error computation and so on till the set with 1800 points After that power 5 and preprocess log are selected the train ing and error computing are performed again on training sets wi
20. ath_name is the path name of XML file describing the system configuration to be passed to the simulator The sm_path_name is the path name of the output XML file which should be used by the simulator for producing the sys tem metrics output The argument reference_xsd xsd_file_name is used for specifying the position of the reference M3Explorer simulator interface XSD file in the file system This argument can be used by the simulator for validating the input and output files exchanged with M3Explorer 6 1 2 Parameters Definition The lt parameters gt lt parameters gt is used by the use case and simulator provider to specify the names the types and the ranges of the parameters that can be explored by the DSE tool The section contains a list of lt parameter gt markers lt parameter gt lt parameter name seed description RNG seed type integer min 0 max 10 gt lt parameter name fetch_queue_size description instruction fetch queue size type integer min 1 max 8 step 2 gt 21 Multicube Explorer User Manual Release 1 1 lt parameters gt For each parameter a unique name must be provided This name will be used for generating configurations at the input of the simulator Feasible parameter names are identified by the following regular expression A Za z_ A Za z0 9_ The parameters types can be divided into two categories Scalar types Variable vector types Scalar parameter types The scalar
21. be lauched with the x lt design_space_file gt xml flag E g lt installdir gt bin m3explorer x simple_sim_ds xml The use of M3Explorer can be both in interaction mode through the shell or in a script mode This second mode can be enabled by writing all the M3Explorer commands into a script file and then launching M3Explorer with the f lt M3Explorer_commands_file gt scr flag lt installdir gt bin m3explorer x simple_sim_ds xml f simple_sim_scr scr 11 Multicube Explorer User Manual Release 1 1 5 Available Plugins 5 1 DoEs The term Design of Experiments DoE is used to identify the planning of an information gathering experimentation cam paign where aset of variable parameters can be tuned The reason for DoEs is that very often the designer is interested in the effects of some parameter s tuning on the system response Design of experiments is a discipline that has very broad appli cation across natural and social sciences and encompasses a set of techniques whose main goal is the screening and analysis of the system behavior with a small number of simulations Each DoE plan differs in terms of the layout of the selected design points in the design space The available DoEs in the M3Explorer framework are Full Search Random Two Levels Full Factorial Two Levels Full Factorial Extended Scrambled 5 1 1 Full Search It is the simplest DoE in the discrete world It consider all the possible configura
22. e cia deeb RRS EP A SP ee i 25 62 9 Simulator Error Management oi ie a a Dee ek bees Pea a Bas 25 7 Example of exploration with a simple simulator 26 8 Shell Command List 29 AA 29 EMM sia e rr A E A 29 QUIE ees a Re E n RR e e A en a 29 read SOND oo see RE E RE E E EE RA E ARI ee 29 rali A a ani S Gea E 29 BO A e I Gee ARE ne a 30 Helter od dacs ab ax edie aie a Sale pol ea oS ye Eee A Ra eae OSes owe ae Sey Bes 30 e Dlls Conadi ahve E ed ee eee e ee a ee 30 oe ICO OG os ars ob eS Swot AA Ob a Ob eS ee ee oh a adel 30 e TT Lao Se we wrod ered Seda a gree ano gene e o e eB isidok 4 30 dry define Grivel ka cd ib bee wee Ree A be eds 30 aa cides a Fe ae he e Be he a Se ok ee Se a ta 31 Opt delie optimizer lt cci crocie eR Ra Oe Rea AAA we oe Ee ba we 31 ee SHUG 0 ds Save a bag Ad orto be a Baw do eich bee pit 31 ENS ais hk a e a ER a GRA ba RE ceo da es kW eee RR E 31 USO oe es ae Ga E ERE PEA Ee OG A A eS ee eA ee A TI 32 PRI AO a a a AAA AAA AAA OE ODE a 32 eo Dalabasa Conad elia be Ha eG Re eb eee eels p EM Ge ea bee eee eS a ees 33 DARA eich E A a ee ee Rah Ree Ge eee ee 33 UE spari Ore e Rata a e 34 ELENA ORAL aia ia a A ao See A e e Ae laa 34 GUORPO cesiones 34 Me bse oh Sed ae Sa AD hs Be aie See ee Re eS Baka A 34 db repote ear die OR E e a a 34 OTE a SE CORNO a a ERE GOCCE CASO a COS SESTO 34 e REP OSO ASI EROE CO EINE TOUR TION CRE OTT 35 a era eee EES a 35 VD SORIA ona RE ew ee ee RA ea 36 d Compute ADRS c
23. e ee Pee ee hee ae bel e eae i 13 Oi MOA esa Se aps Gee nie A Pale eo Sela a Ge we A haw Scale e Aw aos Soe she k s 13 Beet MES o ae a a e DR a GR O IS Pee eG ee ee 13 S25 NIGA a Se bee eae ees CER ea ER EERE EGER ES EER SEGRE SEER SEER Ee eee 13 ig SEM a Ss Be yh hs BB wD eas ae a Sak GS o a Sk Bw de ke 14 SAF EEN at eka Lea det ee el he Dh ee eu dad Ae aa 14 Gi GEMO za sg del Se A a Bc a a a A ea e ra 14 SA9 Linear SCAM se ae oS ee eee EES Se He OEE GSS ER GOR OS SERRE Gee EX 15 5 3 Hints about how to choose heuristics for you own design space LL 15 A cd tear desk p RR Gh oe Ee wd e a Dk ee oe ee Ee I WR a 15 Sad linear Regreso oca Sh eS ee OH SS PRY ee Oa HH Ae Hes See hE es Os Pe ahs 16 di O ARA ee ee E 16 343 Radial it onc eae dd oe ae eed edhe ee ASAE OES Ree DS ee eh eds 17 AS MEDAL lt a do Bale edged ek he a e ee ee he Te SS 18 S45 Neural Network ooo esos eitea CS be i Chew RE Cee eee bee eS 18 6 Interfaces for the integration of new simulators 20 Si Den pace Demi sa E ee Pa Se ens eee Aa ETS Pate Gas ee Sa eas 20 Bla Simulator OC N oc ks ae een he oe a ee ae a ee A 20 612 Parameters Dentin puoi asdav PAR eedae eve ay ee ees 20 bio spenti Demit x Fa Ee pe E A E E a A 22 Gif Fossili palo sos eee es eS A AAA REE eS aS eee i 22 Multicube Explorer User Manual Release 1 1 62 MBExplorer Simulater Interface o e arimari a eR e eRe ao 24 od ls al ed oe ae ee RG RES ER ee aes RS 24 622 Simulator Output File sses ce oh a
24. e implemented approach is cascade 2 and it is derived by S E Fahlman D Baker J Boyan The cascade 2 learning architecture Technical Report CMU CS TR 96 184 Carnegie Mellon University 1996 The name for this RSM in M3Explorer is NN and the related parameters are 19 Multicube Explorer User Manual Release 1 1 effort a string variable with value fast low medium high defines which constraint to use preprocess a variable with floating point value or log value specifies to use the logarithmic transformation value log otherwise defines the value of A Example usage db_change_current training db_read training db set effort fast set preprocess log doe_define_doe m3_random_doe set solutions_number 1000 rsm_train predictions NN VVVVV VV Neural Network plugin requires the Fast Artificial Neural Network library http leenissen dk fann To compile m3explorer to support the plugin specify the neural lt fann_path gt option of configure command like in the following example gt mkdir build gt cd build gt lt sourcedir gt configure neural usr local gt make gt make install 20 Multicube Explorer User Manual Release 1 1 6 Interfaces for the integration of new simulators This section describe how it is possible to integrate M3Explorer with a system simulator and how to define to M3Explorer the design space to explore 6 1 Design Space Definiti
25. ed Annealing algorithm a new configuration is constructed by imposing a random displacement If the cost function of this new state is less than the previous one the change is accepted unconditionally and the system is updated If the cost function is greater the new configuration is accepted probabilistically the acceptance possibility decreases with the temperature optimization time This procedure allows the system to move consistently towards lower cost function states thus jumping out of local minima due to the probabilistic acceptance of some upward moves This optimizers implemented in M3Explorer is called Multi Objective Simulated Annealing MOSA and it is derived by Smith K I Everson R M Fieldsend J E Murphy C Misra R Dominance Based Multiobjective Simulated Annealing IEEE Transaction on Evolutionary Computation 12 3 323 342 2008 m3_shell gt opt_define_optimizer m3_mosa 5 2 4 MOPSO More in general Particle Swarm Optimization PSO is a heuristic search methodology that tries to mimic the movements of a flock of birds aiming at finding food PSO is based on a population of particles flying through an hyper dimensional search space Each particle possesses a position and a velocity both variables are changed to emulate the social psychological tendency to mimic the success of other individuals in the population also called swarm This optimizers implemented in M3Explorer is called Multi Objective Partic
26. ed to the variable vector 6 2 2 Simulator Output File The simulator output file contains a preamble and a sequence of lt system_metric gt sections where for each metric the name and the value is specified lt xml version 1 0 encoding UTF 8 gt lt simulator_output_interface xmlns http www multicube eu version 1 4 gt lt system_metric name cycles value 3000 gt lt system_metric name instructions value 1500 gt lt system_metric name power _consumption value 2 5 gt lt system_metric name area value 25 gt lt simulator_output_interface gt The number of lt system_metric gt sections and the name of the system metrics should be the same as defined in the XML Design Space description file 6 2 3 Simulator Error Management In the case of errors during the simulator execution the simulator output file should contain a single lt error gt marker indi cating the error reason lt xml version 1 0 encoding UTF 8 gt lt simulator_output_interface xmlns http www multicube eu version 1 4 gt lt error reason memory full kind fatal gt lt simulator_output_interface gt The attribute reason is a generic string that can contain a report about the error cause Overall the error strings of the simulator are meant to be related to e memory full or disk full problems file system permissions problems e license problems internal exceptions other consistency or fea
27. g and graphics R http www r project org tested with ver sion 2 6 2 The BOOST library http www boost org tested with version 1 35 0 The Fast Artificial Neural Network library http leenissen dk fann tested with version 2 1 Libraries and programs required by each RSM are specified in the related section of this guide 3 2 Installation Procedure M3Explorer is distributed in source form In order to be executed it must be compiled and installed into a standard directory Download the compressed file containing the release of M3Explorer tar gz The current release of the tool is 1 Uncompress the downloaded archive gt tar zxvf m3explorer_release_1_1 tgz This will create a directory m3explorer the complete path name to this directory will be referred to as sourcedir Create a build dir and run the configure command into it gt mkdir build gt cd build gt lt sourcedir gt configure image lt installdir gt where installdir is the final installation directory of the software If installdir is not specified the software will be installed in image In order to plug specific RSM modules into m3explorer installation it is necessary specify the related options each additional option is presented in the related module section Run make and make install to finish the installation Multicube Explorer User Manual Release 1 1 gt make gt make install Optional To delete all the temporar
28. iable specifies the power of the model preprocess a variable with floating point value or log value specifies to use the logarithmic transformation value log otherwise defines the value of A Example usage db_change_current training db_read training db set power 5 set preprocess 1 doe_define_doe m3_random_doe rsm_train predictions SHEPARD VV VV VV Shepard plugin requires the GNU Scientific Library http www gnu org software gsl To compile m3explorer to sup port the plugin specify the shepard option of configure command like in the following example gt mkdir build cd build lt sourcedir gt configure shepard make VV VV make install 5 4 5 Neural Network An Artificial Neural Network ANN is a mathematical model or computational model that tries to simulate the structure and or functional aspects of biological neural networks It consists of an interconnected group of artificial neurons An artificial neuron is a mathematical function that models a biological neuron The artificial neuron receives one or more inputs dendrites and sums them to produce an output synapse Usually the sums of each node are weighted and the sum is passed through a non linear function known as an activation function or transfer function In most cases an ANN is an adaptive system that changes its structure based on external or internal information that flows through the network during the learning phase Th
29. ifference 024 par2_ste parl_exp2 2048 par2_ste 096 par2_ste 024 par2_ste parl_exp2 2048 par2_ste 096 par2_ste 024 par2_step parl_exp2 2048 par2_ste 096 par2_ste 024 par2_ste parl_exp2 2048 par2_ste 096 par2_ste Filtering the database for pareto points p O S io Mo uo p p p p p product 1 par3_step2 3 1 par3_step2 3 1 par3_step2 3 2 par3_step2 3 2 par3_step2 3 2 par3_step2 3 1 par3_step2 5 1 par3_step2 5 1 par3_step2 5 2 par3_step2 5 2 par3_step2 5 2 par3_step2 5 to objectives full_db Current parl_exp2 1024 parl exp2 1024 parl_exp2 1024 parl_exp2 1024 parl_exp2 1024 Number of points Information Information Information Information Information Figure 5 M3Explorer output while it is running simple_sim_scr scr database contents par2_stepl 1 par2_stepl 1 par2_stepl 2 par2_stepl 1 par2_stepl 2 in the DB 5 par3_step2 1 par3_step2 3 par3_step2 3 par3_step2 5 par3_step2 5 Writing the database to disk Database correctly written Saving the database in CSV format Removing xml driver Exiting from Multicube Explorer shell 29 1026 1022 1024 1028 1020 3072 1029 1019 6144 1030 1018 5120 1031 1017 10240 Multicube Explorer User Manual 8 Shell Command List This section reports a brief survey of commands available in the Multicube Explorer optimization tool The commands are organized in three main classes
30. ighborhood Factorial iterators two level two level center point The core design space representation provides also services for validating architectural choices at the optimizer level and evaluating the associated objective functions The objective functions are defined as a subset of the use case system level metrics and can be manipulated by the user by interacting with M3explorer Multicube Explorer User Manual Release 1 1 1 3 Interaction with the simulator The design space exploration is performed by using the simulation abstraction layer exported by the XML driver to the optimizer plug ins In principle the optimizer instantiates a set of architectural configurations by means of the design space iterators and passes the corresponding representation to the XML driver which will execute the simulator see Figure 3 Information about simulator runs will be displayed directly on the M3explorer shell XML System Metrics Use Case Simulator Multicube Explorer XML System Configuration Figure 3 Interaction of Multicube Explorer with the Use Case Simulator M3Explorer creates a specific directory to execute each instance of the simulator In this directory a valid system parameters file is created before starting the simulator A system metrics file is expected to be obtained as the output of the simulator execution Multicube Explorer User Manual Release 1 1 2 License Multic
31. ir contributions to the tool and their comments on the manual Cristina Silvano Politecnico di Milano e William Fornaciari Politecnico di Milano Alessandro Sivieri Politecnico di Milano Al Hissi Mohammad ALaRI Universita della Svizzera italiana e Carlos Kavka ESTECO e Sara Bocchio STMicroelectonics Hector Posadas University of Cantabria This work is supported by the EC under grant FP7 216693 MULTICUBE http www multicube eu The Multicube Explorer tool and the documentation can be found at the following address http home dei polimi it zaccaria multicube_explorer 39
32. le Swarm Optimization MOPSO and it is derived by G Palermo C Silvano V Zaccaria Discrete Particle Swarm Optimization for Multi objective Design Space Exploration In Euromicro Proceedings of DSD 08 Conference on Digital System Design September 2008 m3_shell gt opt_define_optimizer m3_mopso 5 2 5 NSGA II In a Genetic Algorithm many design alternatives belonging to design space are seen like individuals in a stored population The exploration procedure consists of the simulation of the evolution process of generation of individuals and the improve ment of solutions belonging to next generations is explained by Darwinian theory The evolutionary operators describe how individuals are selected to reproduce how a new generation of individuals is generated from parents by crossover and mutation and how new generation of individuals is inserted into population replacing or not the parents The implemented approach for Multiobjective optimization is the non dominated sorting genetic algorithm NSGA II de scribed in Kalyanmoy Deb Amrit Pratap Sameer Agarwal T Meyarivan A fast and elitist multiobjective genetic algorithm NSGA Il IEEE Transactions on Evolutionary Computation 2002 m3_shell gt opt_define_optimizer m3_nsga_II 14 Multicube Explorer User Manual Release 1 1 5 2 6 SEMO The Simple Evolutionary Multi objective Optimizer SEMO is a simple population based multi objective Evolution Algo rithm It c
33. n of the previous discussed DoE where for each non scalar parameter in the design space the low configuration is chosen ran domly among the feasible for the masks or permutations in analysis while its corresponding high configuration is obtained from the low one by mean of a scramble function Xnign SCRAM BLE Xi0w If the design space consider ks scalars km masks and kp permutations parameters the two level full factorial extended DoE defines a number of configurations to evaluate equal to 2 x 2 m y 2 2 s km amp With the implementation of this DoE done in M3Explorer it is also possible to set the number of instances to generate for each DoE line through the variable num_generation_for_each_point that can be set in the M3Explore shell If the variable num_generation_for_each_point is set than the DoE dimension become Np g kstkm kp where np num_generation_for_each_point m3_shell gt doe define doe m3_two_level_ff extended m3_shell gt set num_generation_for_each_point 10 5 1 5 Scrambled Using this approach the objective is to generate a subset ofthe design space points which are scrambled with respect to some well defined mathematic principles for both scalar and non scalar data types Section 6 1 2 This is possible because all the scramble functions used are circular i e it means that after a limited number at most equal to the vector dimension of recursive call they provide as output a configuration
34. n contains as an example the Boolean QoS priorities for each of the active nodes of a target multi processor system Permutation Variable size permutations are used for example in the case of thread to processor mapping problems In this case a task identifier should be generated for each active processor lt parameter type permutation name thread_assignment dimension number_of_threads gt A permutation contains a non repeatable sequence of values from 1 to the actual dimension of the vector For example the variable vector parameter lt parameter type permutation name example dimension 2 gt P yP P P can assume the following values 1 2 or 2 1 6 1 3 System Metrics Definition The lt system_metrics gt section is used by the use case and simulator provider to specify the names the types and the units of the system metrics that can be estimated by the simulator lt system_metrics gt lt system_metric name cycles type integer unit cycles desired small gt lt system_metric name instructions type integer unit insts description gt lt system_metric name powerconsumption type float unit W description gt lt system_metric name area type float unit mm2 desired small gt lt system_metrics gt Feasible system metric name attributes are identified by the following regular expression A Za z_ A Za z0 9_ The optional description attribute is a generic s
35. n is performed on the same plot for the two databases allowing graphical comparison of solution qualities Example usage gt set objectives energy delay db_change_current first_exploration db_read first_exploration db db_change_current second_exploration db_read second_exploration db VV VV gt plot objectives in the second database loaded the current db gt db_plot_objectives gt plot objectives in the first database loaded gt db_plot_objectives first_exploration gt plot objectives in the from both databases gt db_plot_objectives first_exploration second_exploration 36 Multicube Explorer User Manual Release 1 1 Shell Command name db_plot_2D Arguments Database to be plotted Options 5 Description Graphical investigation of the design space Plotting functionalities are available only in 2D thus to use db_plot_2D two special variables X_axis Y_axis with the name of the metric parameter to be plotted must be declared If no parameters are passed the current database is investigated If one database name parameter is passed the graphical investigation is performed over such db Example usage set X_axis iwidth set Y_axis energy db_change_current first_exploration db_read first_exploration db db_change_current second_exploration db_read second_exploration db VV VV VV gt iwidth energy 2D plot of the second
36. nation of the parameters m3_shell gt doe define doe m3_full_doe Load m3_pareto_doe optimizer it visits only the solutions defined by the DoE m3_shell gt opt_define_optimizer m3_pareto_doe Start the exploration m3_shell gt opt_tune Write the results of the exploration in an internal M3Explorer db format and in a standard csv format m3_shell gt db_write my_full db m3_shell gt db_write my_full csv Set up the objective functions of the problem to enable Pareto filtering of visited points perform Pareto filtering of the current database by eliminating dominated points and report the results m3_shell gt set objectives sum difference product m3_shell gt db_filter_pareto m3_shell gt db_report Write the Pareto points in internal and csv format m3_shell gt db_write my_full db m3_shell gt db_write my_full csv Exit from the shell m3_shell gt exit The example can be automated by using an M3Explorer script simple_sim_scr scr gt lt installdir gt bin m3explorer x simple_sim_ds xml f simple_sim_scr scr Figure 5 shows the output of such script 28 Multicube Explorer User Manual Release 1 1 bin m3explorer x simple sim ds xml f simple sim scr scr Information Information Information Information Information Information Information Information Information Information Information Information Information Information Information Information
37. o a he ah eG ARPES SS ASR MERP EV OSES PSE ET AEERNE DEAS Oe RS EAS 36 OEA hh ee kt Bk Y O ER Oe Oe eee ee ee ee ee be 37 9 Authors 38 10 Acknowledgments 38 Multicube Explorer User Manual Release 1 1 1 Overview of Multicube Explorer Multicube explorer is an interactive program that lets the designer explore a design space of configurations for a param eterized architecture for which an executable model use case simulator exists Multicube explorer is an advanced multi objective optimization framework which is entirely command line script driven and can be retargeted to any configurable platform by writing a suitable XML design space definition file and providing a configurable simulator Multicube Explorer is supported by the EC under grant FP7 216693 MULTICUBE http www multicube eu The tool and the documentation can be currently found at the following address http home dei polimi it zaccaria multicube_explorer gt Response Surface Design Modeling y of Experiments M3Explorer Shell 3 gt SZ g o Optimization lt Algorithm go Architecture m S database XML XML Design Space Simulator NERY Figure 1 Structure of Multicube Explorer 1 1 Goals of Multicube Explorer The overall goal of the open source design space exploration framework aims at providing a retargetable tool to drive the designer towards near optimal solutions to the architect
38. ommand name db_report Arguments Options gt Description Reports all the architectural configurations stored into the current db Example usage gt db_report 35 Multicube Explorer User Manual Release 1 1 Shell Command name db_filter_pareto Arguments Options Description Filter the current database keeping only the Pareto points The Pareto concept is defined once a special variable with the name objectives is declared in the environ ment as a list of objective metrics Commands in the example filter the database my_exploration keeping only design points such as no other point is better in terms of energy and delay Example usage gt db_change_current my_exploration gt set objectives energy delay gt db_filter_pareto Shell Command name db_plot_objectives Arguments Databases to be plotted Options Description Graphical investigation of solutions quality Plotting functionalities are available only in 2D thus to use db_plot_objectives a special variable with the name ob jectives must be declared as a list of two objective metrics If no parameters are passed the current database only is investigated and objective metrics of stored points are plotted If one database name parameter is passed the graphical investigation is performed over such db In the case two database name parameters are passed graphical investigatio
39. on The definition of the design space is done by using an XML file that is composed of a preamble which defines the namespace and supported version Multicube explorer currently supports both R1 3 and R1 4 XML spec lt xml version 1 0 encoding UTF 8 gt lt design_space xmlns http www multicube eu version 1 4 gt lt simulator gt lt simulator gt lt parameters gt lt parameters gt lt system_metrics gt lt system_metrics gt lt rules gt lt rules gt lt design_space gt The remaining part of the file describes the simulator invocation method lt simulator gt lt simulator gt the set of pa rameters of the simulator which can be configured lt parameters gt lt parameters gt the system metrics which can be estimated by the simulator lt system_metrics gt lt system_metrics gt and the rules which have to be taken into account by M3Explorer in order to generate feasible configurations 6 1 1 Simulator Invocation The lt simulator_executable gt marker is used for specifying the complete path name of the executable lt simulator gt lt simulator_executable path path my_simulator_executable gt lt simulator gt The path is specified by using Unix conventions The simulator executable is invoked with three arguments my_simulator_executable xml_system_configuration sc_path_name xml_system_metrics sm_path_name reference_xsd xsd_file name where sc_p
40. ons Description Executes the training phase of the selected RSM on the current database and pro duces predictions into the specified database Before launching this command the user have to specify a DoE used to define the predictors and can specify the param eters for the choosen RSM In case of missing or wrong parameters settings will be used the default values The variables preprocess and power in the example are the parameters of Shepard RSM Example usage gt db_change_current trainers db_read training set db doe_define_doe m3_full_doe set preprocess 1 set power 5 rsm_train predictions_db SHEPARD VV VV MV 33 Multicube Explorer User Manual Release 1 1 Shell Command name rsm_validate Arguments Name of the RSM to validate string Options Description This command takes subsets of a reference database to train an RSM and to produce a graph of the resulting average normalized error versus the number of simulations The number of simulations corresponds to the number of points used for training the RSM hence to the subset size The points of each subset are selected randomly from the reference database The number of points of each subset is specified by the user into the shell vector trainers The RSM parameters are specified into shell vectors For each RSM parameter the user have to specify a corresponding shell vector with a name composed of the p
41. ontains a population of variable size that stores all non dominated individuals At the beginning of the execution of the algorithm the population is initialized with a single element which is drawn at random from the decision space From this population a parent F is drawn according to some probability distribution and mutated by the classical genetic muta tion The child x is added to the population if it is not dominated by any population member and if its objective vector is not already contained in the population For this algorithm a uniform distribution is considered for selecting the parent An appropriate archiving strategy is assumed to prevent population from growing exponentially by ensuring that each new accepted solution has different objective function values The optimizer here described and implemented in M3Explorer is derived by Marco Laumanns Lothar Thiele Eckart Zitzler Kalyanmoy Deb Running time analysis of multi objective evolutionary algorithms on a simple discrete optimization problem 2002 in Par allel Problem Solving From Nature PPSN VII m3_shell gt opt_define_optimizer m3_semo 5 2 7 FEMO The Fair Evolutionary Multi objective Optimizer FEMO is an improvement of SEMO FEMO tries to improve the main weak ness of the SEMO appearing when a large number of mutations is allocated to parents whose neighbourhood has already been explored sufficiently The FEMO algorithm implements a fair selection strategy by c
42. ounting the number of times each individual has been mutated This strategy guarantees that at the end all individuals receive about the same number of samples The sampling procedure deterministically chooses the individual which has produced the least number of offspring so far ties are broken randomly The optimizer here described and implemented in M3Explorer is derived by Marco Laumanns Lothar Thiele Eckart Zitzler Kalyanmoy Deb Running time analysis of multi objective evolutionary algorithms on a simple discrete optimization problem 2002 in Par allel Problem Solving From Nature PPSN VIL m3_shell gt opt_define_optimizer m3_femo 5 2 8 GEMO The Greedy Evolutionary Multiobjective Optimizer GEMO is an extension of the FEMO Goal of GEMO is to achieve maximum progress towards the Pareto front The main idea behind the algorithm is to allocate all search effort to offspring of the most recently successful mutant As long as only mutually non dominating individuals are found the algorithm acts like FEMO in spreading out the population and the search effort fairly and equally When further progress towards the Pareto front is achieved realized by the fact that a new individual is found that dominates elements of the current population all other remaining population members are disabled by setting their weight to infinity not allowing them to produce any offspring When GEMO finally reaches the Pareto front and no further progress is po
43. relationship between a dependent response function and some indepen dent variables In the general class of regression models the response is modeled as a weighted sum of independent variables plus random noise Since the basic linear estimates may not adequately capture nuances in the response independent vari able relationship the implemented plugin takes into account also the interactions between the independent variables the design parameters as well as quadratic behaviour with respect to a single parameter The name for this RSM in M3Explorer is LINEAR and the related parameters are order an integer variable with value 1 2 defines if the model has to take into account also the quadratic behaviour value 2 or only the linear value 1 interaction a string variable with value true false defines if the interactions between design parameters have to be considered value true or not value false normax a string variable with value true false defines if the metrics have to be normalized respect the absolute maximum value value true or statistically value false exclude a vector of string elements each reporting the name of a design parameter to exclude from metrics estimation preprocess a variable with floating point value or log value specifies to use the logarithmic transformation value log otherwise defines the value of A Example usage db_change_current training db
44. resented in the following section 5 4 RSMs Response Surface Modeling techniques allow determining an analytical dependence between several design parameters and one or more response variables The working principle of RSM is to use a set of simulations in order to obtain a response model A typical RSM flow involves a training phase in which known data or training set is used to identify the RSM con figuration and a prediction phase in which the RSM is used to forecast unknown system response RSMs are an effective tool for analytically predicting the behavior of the system platform without resorting to a system simulation they represent the core of the presented methodology The available RSM plugins models in M3Explorer are Linear Regression Spline Radial Basis Functions Shepard Neural Network Each RSM model can be customized setting the corresponding parameters as shell variables One of the parameters of each RSM is related to the Box Cox transform a useful data pre processing technique used to reduce data variation make the data more normal distribution like and improve the correlation between variables 1The transformation is defined as a continuously varying function with respect to the power parameter A aif MM 1D A ifi 0 Y 7 logy ifA 0 where y is the response value 16 Multicube Explorer User Manual Release 1 1 5 4 1 Linear Regression Linear regression is a method that models a linear
45. sibility violation if checked by the simulator The kind can be fatal non fatal Fatal errors should block the overall exploration process while non fatal errors force M3Explorer to skip to the next configuration If an lt error gt marker is present in the output file lt system_metric gt markers are ignored by M3Explorer 26 Multicube Explorer User Manual Release 1 1 7 Example of exploration with a simple simulator In this section we report a simple example usage of m3explorer The example consists of the exploration of the parameter space of a simple simulator The files associated with this example can be located in lt installdir gt examples simple_sim directory namely they correspond to e simple_sim py Python script representing the simulator of the target architecture to be explored simple_sim_ds xml Design space to be explored see Figure 4 simple_sim_scr scr m3explorer script file which automates the steps of the exploration lt xml version 1 0 encoding UTF 8 gt lt design_space xmlns http www multicube eu version 1 4 gt lt simulator gt lt simulator_executable path usr bin python image examples simple_sim simple_sim py gt lt simulator gt lt parameters gt lt parameter name pari_exp2 type exp2 min 1024 max 4096 gt lt parameter name par2_stepi type integer min 1 max 2 step 1 gt lt parameter name par3_step2 type integer min 1 max 5 step
46. ssible it will again behave like FEMO It is therefore necessary to enable again any individual re discovered in order not to create with those individuals barriers in the objective space that are difficult to cross The optimizer here described and implemented in M3Explorer is derived by Marco Laumanns Analysis and Applications of Evo lutionary Multiobjective Optimization Algorithms PhD thesis Swiss Federal Institute of Technology Z rich Switzerland 2003 m3_shell gt opt_define_optimizer m3_gemo 15 Multicube Explorer User Manual Release 1 1 5 2 9 Linear Scan Linear Scan is a very simple optimizer that checks for each point of the root database if it design parameters are inside the specified ones add the point to the current database and recompute the Pareto front m3_shell gt opt_define_optimizer m3_linear_scan 5 3 Hints about how to choose heuristics for you own design space Whether the design space is composed of high number of points or the simulations take a significant amount of time while we don t provide any automatic heuristic we summarize in the following table some guidelines to choose a suitable algorithm from the previous list Design space size Simulation time Short Long Small APRS MOSA Large NSGA II FEMO SEMO GEMO MOPSO Of course these techniques can be mixed and matched with other DoEs as presented in the previous section as well as response surface models as p
47. t lt greater equal gt lt parameter name 12_ cache_size gt lt constant value 2048 gt lt greater equal gt lt and gt lt rule gt lt rules gt 24 Multicube Explorer User Manual Release 1 1 This corresponds to the following expression 12_cache_block_size gt 11_dcache_block_size AND 12_cache_size gt 2048 If then else rule An if E then A predicate is introduced and it is evaluated as TRUE if E is FALSE AifE is TRUE An example for this rule is the following lt rule name branch prediction design space reduction gt lt if gt lt not equal gt lt parameter name bpred gt lt constant value bimod gt lt not equal gt lt then gt lt equal gt lt parameter name bpred_bmod_size gt lt constant value 0 gt lt equal gt lt then gt lt if gt lt rule gt This associated predicate expression is if bpred bmod then bpred_bmod_size 0 This rule forces to generate configurations where if bpred bmod then bpred_bmod_size 0 These rules can effectively re duce the overall design space An if E then A else B predicate is introduced and it is evaluated as Bif Eis FALSE e Aif Eis TRUE 6 2 M3Explorer Simulator Interface The M3Explorer Simulator interface is composed by 2 files one in output from M3Explorer to the simulator the other one in the opposite direction 6 2 1 Simulator input file The simulator input file should contain a preamble
48. th the specified dimensions Once all parameters configurations has been experimented the entire mechanism is repeted the graph with average values is generated and saved into the working directory Example usage db_change_current reference db_read full db doe_define_doe m3_full_doe set preprocess_list 1 log 0 5 1 set power_list 5555 set num_samples 5 set trainers 200 400 600 800 1000 1200 1400 1600 1800 rsm_validate SHEPARD VV VV VV VV 8 3 Database Commands Simulation results are stored into database db in memory Databases can be loaded stored from to the hard disk in such a way that is easy to handle simulation data obtained in different working sessions Operations that can be performed on databases are various and allow to extrapolate and visualize some fundamental high level information needed to investigate solution quality of multiobjective optimization Following are m3explorer commands for database handling 34 Multicube Explorer User Manual Release 1 1 Shell Command name db_read Arguments Name of the db to read string Options Description Reads a database from disk Example usage gt db_read MY_EXPLORATION_DB db Shell Command name db_write Arguments File name into which the current database should be written string Options Description Writes the current db on the disk to a specified file
49. ting_metrics filters the current database for pareto points insert a point in the current database plot objectives for given databases plot objectives for given databases reads a database from disk reports the contents of a database generates a html report of the database shows the optimal point of a database writes a database on disk define the doe module shows information about current doe define the driver module shows information about current driver quit the current m3explorer session general help on m3explorer commands define the optimizer module shows information about current optimizer start the exploration process quit the current m3explorer session read script from file trains an RSM and makes predictions validates an RSM on the current db set a variable to a specific value shows the variables in the current shell 10 Multicube Explorer User Manual Release 1 1 The design space exploration problem within M3Explorer is defined by a driver An XML driver m3_xm1_driver is provided in M3Explorer Such driver allow the integration of M3Explorer with other performance estimation tools by exploiting well defined XML interfaces that will be described later in section 6 Other two drivers m3_dtlz_driver and m3_test_driver are distributed in the purpose of methodological test of new design space exploration techniques To load the description of the design space for the following exploration process M3Explorer should
50. tion of the design space m3_shell gt doe_define_doe m3_full_doe 5 1 2 Random The design space configurations are picked up randomly by following a Probability Density Function PDF In the imple mented plugin uses a uniformly distributed PDF m3_shell gt doe_define_doe m3_random_doe The variable solutions_number can be used to define the number of points of the random DoE e g for a random doe with 15 points m3_shell gt set solutions_number 15 5 1 3 Two levels Full Factorial In statistics a factorial experiment is an experiment whose design consists of two or more parameters each with discrete possible values or levels and whose experimental units take on all possible combinations of these levels across all such pa rameters Such an experiment allows studying the effects of each parameter on the response variable as well as the effects of interactions between parameters on the response variable In this plugin we consider a 2 level full factorial DoE where the only levels considered are the minimum and maximum for each parameter m3_shell gt doe_define_doe m3_two_level_ff 12 Multicube Explorer User Manual Release 1 1 5 1 4 Two Levels Full Factorial Extended When using non scalar parameters permutations and masks Section 6 1 2 the minimum level low configuration and the corresponding maximum level high configuration are not defined The Two Levels Full Factorial Extended is the extensio
51. tring describing the nature of the system metric The desired attribute indicates whether it is desirable to have a small big value of a specific system metric This attribute is optional and may be taken into account by M3Explorer in the formalization of the optimization problem which however it is not part of this specification M3Explorer expects to find the system metrics defined in this section in the output file of the simulator The output file name of the simulator is the second argument passed to the simulator executable file 6 1 4 Feasibility rules The lt rules gt section is used by M3Explorer in order to not generate invalid or not feasible solutions during the automated exploration process The behavior of the simulator when these rules are not met is undefined Each rule is a boolean expres sion which should evaluate to true for a feasible configuration of the design space It is up to M3Explorer tool to check for the rules and generate feasible configurations Each boolean expression can be an operator acting on either a lt parameter gt or lt constant gt leafs or other boolean expressions This allows creating complex expression trees of rules Rules are AND ed by default by M3Explorer Each rule is identified by a lt rule gt marker and it has an optional name attribute As an example 23 Multicube Explorer User Manual Release 1 1 lt rules gt lt rule gt lt greater equal gt lt parameter
52. ube explorer is open source and it is released under the BSD license Authors Vittorio Zaccaria Gianluca Palermo Giovanni Mariani Fabrizio Castro Copyright c 2008 2009 Politecnico di Milano and Universita della Svizzera italiana All rights reserved Redistribution and use in source and binary forms with or without modification are permitted provided that the follow ing conditions are met Redistributions of source code must retain the above copyright notice this list of conditions and the following dis claimer Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution Neither the name of the Politecnico di Milano and Universita della Svizzera italiana nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR B
53. ue of A Example usage db_change_current training db_read training db set preprocess log doe_define_doe m3_full_doe rsm_train predictions SPLINE VVVV MV Spline plugin requires the language and environment for statistical computing and graphics R http www r project org To compile m3explorer to support the plugin specify the spline option of configure command like in the following ex ample gt mkdir build gt cd build gt lt sourcedir gt configure spline gt make gt make install 5 4 3 Radial Basis Functions Radial Basis Functions RBF represent a widely used interpolation approximation model whose values depends only on the distance from the origin or alternatively on the distance from some other point called center Any radial function is suitable as distance function Interesting radial functions definitions are linear thin plate spline multiquadric inverse multiquadric and gaussian The approximating function is represented as a sum of radial basis functions each associated with a center and weighted by an appropriate coefficient The implemented approach is based on M J D Powell The theory of radial basis functions approximation in 1990 W A Light Ed Advances in Numerical Analysis II Wavelets Subdivision Algorithms and Radial Basis Functions Oxford University Press Oxford pp 105 210 1992 The name for this RSM in M3Explorer is RBF and the related parameters are
54. ural exploration problem with the given multiple constraints The final product of the framework is a Pareto curve of configurations within the design evaluation space of the given architec ture 1 1 1 Automatic design space exploration One of the goals of the open source tool is to provide a command line interface to the exploration kernel that allows the con struction of automated exploration strategies Those strategies are implemented by means of command scripts interpreted by the tool without the need of manual intervention This structure can easily support the batch execution of complex strategies that are less prone to human intervention due to their execution time 1 1 2 Portability Another goal of the open source tool is to be portable across a wide range of systems This goal will be achieved by not sacrificing the efficiency of the overall exploration engine The standard ANSI C programming language will be used for developing the open source framework The Standard Template Library as well as other open source libraries will be used during the development process Multicube Explorer User Manual Release 1 1 1 1 3 Modular composition One of the strength of the open source tool is the modularity of its components Simulator optimization algorithms and other design space exploration components are dynamically linked at run time without the need of recompiling the entire code base This will be supported by well defined interf
55. which was previously already generated m3_shell gt doe define doe m3_scrambled_doe 5 2 Optimizers The available optimizer plugins in M3Explorer are e Pareto DoE APRS Adaptive windows Pareto Random Search e MOSA Multi Objective Simulated Annealing MOPSO Multi Objective Particle Swarm Optimizer NSGA II Non dominated Sorting Genetic Algorithm SEMO Simple Evolutionary Multi objective Optimizer FEMO Fair Evolutionary Multi objective Optimizer GEMO Greedy Evolutionary Multi objective Optimizer Linear scan 5 2 1 Pareto DoE This is not a real optimizer but it is only a simple method used to evaluate the point selected by the DoE m3_shell gt opt_define_optimizer m3_pareto_doe 13 Multicube Explorer User Manual Release 1 1 5 2 2 APRS This algorithm called Adaptive windows Pareto Random Search is an algorithm that has a dynamic windows size which are reduced with the time spent in the exploration and with the goodness of the point found in the current windows The win dows are centered on the current pareto solutions and the new configurations are randomly selected within the windows m3_shell gt opt_define_optimizer m3_aprs 5 2 3 MOSA Simulated annealing is a Monte Carlo approach for minimizing multivariate functions The term simulated annealing derives from the analogy with the physical process of heating and then slowly cooling a substance to obtain a strong crystalline structure In the Simulat
56. y files generated during the compilation use the following command gt make dist clean This command deletes everything that has been built with configure and make 3 3 Testing the installation To test that the installation has been performed correctly first run the application executable m3explorer which is present in the installation dir gt lt installdir gt bin m3explorer Multicube Explorer Version release_1_1 Send bug reports to zaccaria elet polimi it gpalermo elet polimi it m3_shell gt To exit the program just type exit followed by a return A more comprehensive test can be run with the do_test script which is present in the test directory of the installation image lt installdir gt A succesfull execution produces the following output lt installdir gt tests do_tests 1 Tested XML design space construction PASSED 2 Tested XML rules PASSED 3 Tested XML error reporting PASSED 4 Tested XML input output interface PASSED 5 Tested full factorial features PASSED 6 Tested database and math functions PASSED 7 Tested database XML export PASSED 8 Tested XML design space R1 4 extn PASSED 3 4 Uninstall procedure If you have installed m3explorer into a dedicated directory it can be removed by simply deleting the directory Otherwise the specific executable and the associated installation files should be removed manually 3 5 Documentation The documentation of M3Explorer is mainly composed b
57. y two documents The present User Guide The Developer Guide This guide can be browsed either on the M3Explorer website or generated by means of the doxygen document production system use make doc to generate the guide in the installation image lt installdir gt Multicube Explorer User Manual Release 1 1 4 The Shell of Multicube Explorer To run M3Explorer you need to launch the following command gt lt installdir gt bin m3explorer Pe A AA AA PE NS NP DONT NE SN AY lada PN JENN LANE NII Multicube Explorer Version release_1_1 Send bug reports to zaccarialelet polimi it gpalermo elet polimi it m3_shell gt and the M3Explorer Shell for the user interaction starts To exit the program just type exit followed by a return Typing the help command all the available M3Explorer commands with short descriptions are shown m3_shell gt help db_change_current db_compute_ADRS db_export db_export_xml db_filter_pareto db_insert_point db_plot_2D db_plot_objectives db_read db_report db_report_html db_show_optimum db_write doe_define doe doe_show_ info drv_define driver drv_show_info exit help opt_define_optimizer opt_show_info opt_tune quit read_script rsm_train rsm_validate set show_vars m3_shell gt change the current database Computes ADRS w r t a specified reference database exports the db into a csv file exports the db into a xml file You can sort the output by setting sor
Download Pdf Manuals
Related Search
Related Contents
Precision HR250 Instructions / Assembly Oregon Scientific AWS888N Radar Detector User Manual Premier GB-ENCL32 flat panel wall mount Benutzerhandbuch - Toms-Car-HiFi User`s Manual Product Documentation www.silverlinetools.com STR-DH540 Mer-Veille Détecteur de Radar - Over-blog STIHL MS 880 User Manual Copyright © All rights reserved.
Failed to retrieve file