Home

Multicube Explorer User Manual Release 1.0

image

Contents

1. 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 The name for this optimizer in Multicube Explorer is m3_nsga_II and the related parameters are e temp_database a string variable that if defined allows to save the results at every generation in a temporary database with the name specied with the string e generations an integer variable that defines the number of generations to consider Example usage m3_shell gt opt_define_optimizer m3_nsga_II 16 Multicube Explorer User Manual Release 1 0 5 2 6 SEMO The Simple Evolutionary Multi objective Optimizer SEMO is a simple
2. 2 11_cache_size The operators supported by Multicube Explorer 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 gt lt greater equal gt lt parameter name 12 cache_size gt 26 Multicube Explorer User Manual Release 1 0 lt constant value 2048 gt lt greater equal gt lt and gt lt rule gt lt rules gt 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 A if Eis 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 co
3. m3_linear_scan Example usage m3_shell gt opt_define_optimizer m3_linear_scan 5 3 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 Multicube Explorer are Linear Regression Spline Radial Basis Functions e 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 a S W D A ifr 0 g log y ifA 0 where y is the response value 18 Multicube Explorer User Manual Release 1 0 5 3 1 Linear Regres
4. 1024 Baro stepl 2 pars step2 5 1031 1017 10240 Number of points in the DB 5 Information Writing the database to disk Information Database correctly written Information Saving the database in CSV format Information Removing xml driver Information Exiting from Multicube Explorer shell Figure 5 Multicube Explorer output while it is running simple_sim_scr scr 32 Release 1 0 Multicube Explorer User Manual Release 1 0 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 Basic commands adopted to control the Multicube Explorer environment in terms of defined variables and other basic functionalities Plugins commands which give powerful flexibility to the user on handling the modular structure of Multicube Ex plorer 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 Multicube Explorer Shell Command name Arguments Options Description Exits from the Multicube Explorer shell na Shell Command name wgn K TTT Shell Command name Name of the script to be read string options SS Description All commands within the given script are sequentially executed in th
5. 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 BUSINESS 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 0 3 Installation Requirements and Procedure 3 1 Installation Requirements Multicube Explorer has been designed to be compatible with LINUX and BSD MAC OSX platforms Multicube Explorer is written in C and can be compiled with a standard GNU C compiler version 4 1 2 Multicube Explorer can be compiled in two forms e without response surface models RSM support basic version e with RSM support enhanced version The following libraries and programs are needed for correctly compiling the basic version of the software e 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 serve
6. Multicube Explorer is SHEPARD and the related parameters are power an integer variable specifies the power of the model preprocess a variable with floating point value or log value specifies to use the logarithmic transformation value 10g 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 VVV VV WV Shepard plugin requires the GNU Scientific Library To compile Multicube Explorer to support the plugin specify the shepard option of configure command like in the following example mkdir build cd build lt sourcedir gt configure shepard make make install VV VV V 5 3 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 th
7. RSM in Multicube Explorer is RBF and the related parameters are 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 10g 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 VV V V VV V http www r project org 20 Multicube Explorer User Manual Release 1 0 Radial Basis Functions plugin requires the BOOST library and the GNU Scientific Library To compile Multicube Explorer to support the plugin specify the rbf lt boost_path gt option of configure command like in the following example gt mkdir build gt cd build gt lt sourcedir gt configure rbf usr local gt make gt make install 5 3 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
8. Release 1 0 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 Multicube Explorer Each rule is identified by a lt rule gt marker and it has an optional name attribute As an example lt rules gt lt rule gt lt greater equal gt lt parameter 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 x 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
9. db_read second_exploration db 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 of both databases loaded on the same plot gt db_plot_objectives first_exploration second_exploration 39 Release 1 0 Multicube Explorer User Manual Release 1 0 Shell Command name Options ee r r iiiiiiiiiii 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 gt iwidth energy 2D plot of the second 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_compute_ADRS Arguments AAA Options Description Computes the Average Distance from Reference Set ADRS Such distance is a quantitative measure of solut
10. to use the logarithmic transformation value log otherwise defines the value 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 VV VV V Spline plugin requires the language and environment for statistical computing and graphics R To compile Multicube Ex plorer to support the plugin specify the spline option of configure command like in the following example gt mkdir build gt cd build gt lt sourcedir gt configure spline gt make gt make install 5 3 3 Radial Basis Functions Radial Basis Functions RBF represent a widely used interpolation approximation model whose values depend 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
11. 3 step2 1 Information Evaluating point parl exp2 1024 par2_ stepl 1 pars step2 3 Information Evaluating point parl exp2 2048 par stepl 1 pars step2 3 Information Evaluating point parl exp2 4096 pat stepl 1 pars step2 3 Information Evaluating point parl expz 1024 parz stepl 2 par3 step2 3 Information Evaluating point parl exp2 2048 par stepl 2 pars step2 3 Information Evaluating point parl exp2 4096 par2 stepl 2 para stepz 3 Information Evaluating point parl exp2 1024 par stepl 1 pars step2 5 Information Evaluating point parl exp2 2048 par stepl 1l par3 step2 5 Information Evaluating point parl exp2 4096 par2_ stepl 1 pers step2 5 Information Evaluating point parl exp2 1024 par2 stepl 2 par3 step2 5 Information Evaluating point parl exp2 2048 par stepl 2 pars step2 5 Information Evaluating point parl exp2 4096 par2_ stepl 2 pare step2 5 Information Writing the database to disk Information Database correctly written Information Saving the database in CSV format Information Assigned value sum difference product to objectives Information Filtering the database for pareto points full db Current database contents parl exp2 1024 parZ _ stepl 1 par3_ step2 1 1026 1022 1024 parl exp2 1024 parz stepl 1 pbar3 step2 3 1028 1020 3072 parl expz 1024 parz stepl 2 pars step2 3 il 1029 1019 6144 parl exp2 1024 pare stepl 1 par3_ step2 5 1030 1018 5120 parl exp2
12. 5 Scrambled Using this approach the objective is to generate a subset of the 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 which was previously already generated m3_shell gt doe define doe m3_scrambled_doe 5 2 Optimizers The available optimizer plugins in Multicube Explorer are Pareto DoE APRS Adaptive windows Pareto Random Search 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 14 Multicube Explorer User Manual Release 1 0 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 The name for this optimizer in Multicube Explorer is m3_pareto_doe and the related parameters are e doe_temp_database a string variable that defines a filename if specified allows to save partial computation results into a file with the selected name e doe_tempdb_granularity an integer v
13. Multicube Explorer User Manual Release 1 0 Politecnico di Milano Italy and Universita della Svizzera italiana Switzerland December 23 2009 Multicube Explorer User Manual Contents 1 Overview of Multicube Explorer 1 1 Goals of Multicube Explorer 1 1 1 Automatic design space exploration REA A EI 11 3 Modular composition i 4 uscii nad 1 2 Architectureofthetool L3 Nagel ihelook iaia 1 4 Interaction with the simulator 2 License 3 Installation Requirements and Procedure dal 3 2 a 3 4 a0 Installation Requirements bastallaliof Procedure oca i ee mew wie bees dae eee oe Testing the installation lt Uninstall procedure sassi iii api POCOGIRBIEAI0OI cal Laren 4 The Shell of Multicube Explorer 5 Available Plugins dal did La POPSTAR RL ROERO LL 5 1 1 ariani MA BANGOR 64 cde owe eed Ba ee MeO ee ROD REDS wD 5 1 3 Two levels Full Factorial 5 1 4 Two Levels Full Factorial Extended ELO DOME 6 we os Oe HERES AAA Has Ge ee ta ee ee ee a oe ee oe eS Miel FCO cba cease hi da xa DER ea RO A ee AAA Mir Me be eee ence eee eee eee eae ee eee Bee ge oe amp ia Ga Delt theese ARL AA Se AE Der VENIR oasis RR ete i See PENS aelred e eS w Gal LIMONE sui Hi sla 53 1 Linear Regressi n nera OS EERE ERE the 0 IA EN 533 Rad
14. ain 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 counting 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 Multicube Explorer 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 Parallel Problem Solving From Nature PPSN VII The name for this optimizer in Multicube Explorer is m3_femo and the related parameter is generations an integer variable that defines the number of generations to consider Example usage 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 t
15. ariable that if doe_temp_database variable is specified allows to save partial computation results into a file every doe_tempdb_granularity points added to the working database Example usage m3_shell gt opt_define_optimizer m3_pareto_doe 5 2 2 APRS Adaptive windows Pareto Random Search is an optimization algorithm based on a dynamic window size which is reduced with the time spent in the exploration and with the goodness of the point found in the current window The window is cen tered on the current optimal solution and the new configuration is randomly selected within the window The name for this optimizer in Multicube Explorer is m3_aprs and the related parameters are e m3_aprs_initial_window an integer variable used to define the initial window size e m3_aprs_alpha a double variable 0 1 used to reduce the window size e m3_aprs_number_of_points an integer variable used to specify the desired number of points in the resulting database Example usage 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 Simulated Annealing algorithm a new configuration is constructed by imposing a random displacement If the cost function of this new state i
16. at flows through the network during the learning phase http www boost org http www gnu org software gsl http www gnu org software gsl 21 Multicube Explorer User Manual Release 1 0 The 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 Multicube Explorer is NN and the related parameters are 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 10g 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 VVVV VV V Neural Network plugin requires the Fast Artificial Neural Network library To compile Multicube Explorer to support the plugin specify the neural lt fann_path gt option of configure command like in the following example mkdir build cd build lt sourcedir gt configure neural usr local make make install VV VV V http leenissen dk fann 22 Multicube Explorer User Manual Release 1 0 6 Interfaces for the integration of new simulators This section d
17. current db on the disk to a specified file in a format readable from Multi cube Explorer Example usage gt db write MY EXPLORATION_DB db Shell Command name db_change_current Options E 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 Multicube Explorer 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 File name into which the current database should be exported string 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 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 Command name rArgumentss Options S S Reports all the architectural configurations stored into the curr
18. db_insert_point db_plot_2D db_plot_objectives db_read db_report db_report_html 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 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 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 11 Multicube Explorer User Manual Release 1 0 The design space exploration problem within Multicube Explorer is defined by a driver An XML driver m3_xml_driver is provided in Multicube Explorer Such driver allows
19. 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 Description Instantiates the Design of Experiments module to be used during the optimization Example usage gt doe define doe m3_random_doe Shell Command name Description Displays info message from the DoE module currently loaded in the Multicube Ex plorer environment if any If no doe module is defined then an error message is shown Example usage 34 Multicube Explorer User Manual Release 1 0 Shell Command name drv_define driver Options E e cccw gt iiiib Description Load a driver module into the Multicube Explorer environment On doing so de sign space is defined and parameters representing design parameter boundaries are organized into the Multicube Explorer 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 Mep 16 ds_parameters ics pn ics 2048 65536 icw 16 iwidth 1 Won 8 12cs 32768 1048576 12cw 4 16 pn 1 16 Databases in memory Name size root available 0 Shell Command name argu
20. e Pareto points in internal and csv format m3_shell gt db_write my_full db m3_shell gt db_export my_full csv Exit from the shell m3_shell gt exit The example can be automated by using an Multicube Explorer 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 31 Multicube Explorer User Manual bin m3explorer x simple sim ds xml f simple sim scr scr Information Creating the xml driver Information Loading the xml driver Information Assigned value true to clean directory Om exit Information Changing current DB to full db Information Database not existing Creating a new one Information Loading the full search doe Information Current doe has been set to Full search doe Information Current optimizer has been set to Pareto doe optimizer Information Starting with the pareto doe optimization process Information Evaluating point parl exp2 1024 par2_stepl 1 par3_ step2 1 Information Evaluating point parl exp2 2048 par stepl 1 pars step2 1 Information Evaluating point parl exp2 4096 par2_stepl 1 par3 step2 1 Information Skipping point pari exp2 1024 par stepl 2 par step2 1 Information Skipping point pari exp2 2048 par2 stepl 2 par3 step2 1 Information Skipping point parl exp2 4096 par2_ stepl 2 par
21. e m3explorer environment Example usage gt read_script my_script scr Shell Command name set Value to be inserted into the variable object copioni __ _ __ _ 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 Arguments Name of the variable to be set identifier The following variable names 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 33 Multicube Explorer User Manual Release 1 0 Shell Command name argumens TTT option _ _ S _ Description Shows the variable in the current Multicube Explorer environment and reports basic information about available Databases Example usage Shell Command name long request a list of the available options and arguments for each command Reports general help on Multicube Explorer commands Example usage gt help long 8 2 Plugins Commands Multicube Explorer 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
22. ed see Figure 4 e simple_sim_scr scr Multicube Explorer 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 par1i_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 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_step1 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 Multicube Explorer with its target design space gt lt installdir gt bin m3explorer x simple_sim_ds xml The target design
23. ed by the following regular expression A Za z_ A Za z0 9_ The parameters types can be divided into two categories e Scalar types e Variable vector types Scalar parameter types The scalar 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 e exp2 The values associated with an exp2 parameter type should be computed by Multicube Explorer by using a power of two progression For example lt parameter name ili_cache_block_size_bytes description type exp2 min 8 max 64 gt should be interpreted by Multicube Explorer as a parameter with range values 87 16 592 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
24. els considered are the minimum and maximum for each parameter m3_shell gt doe define doe m3 two _ level ff 13 Multicube Explorer User Manual Release 1 0 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 extension 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 Xpign SCRAM BLE Xiow 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 s x2 m x2 p 2 Ks km k With the implementation of this DoE done in Multicube Explorer it is also pos sible 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 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
25. ent db 38 Multicube Explorer User Manual Shell Command name db_filter_pareto rargumentss options sp n 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 1 energy delay gt db_filter_pareto Shell Command name db_plot_objectives Arguments ot A A 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 investigation is performed on the same plot for the two databases allowing graphical comparison of solution qualities Example usage set objectives energy delay db_change_current first_exploration db_read first_exploration db db_change_ current second_exploration
26. escribe how it is possible to integrate Multicube Explorer with a system simulator and how to define to Multi cube Explorer the design space to explore 6 1 Design Space Definition 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 Multicube Explorer 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 execu
27. 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 associated 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 83 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 x
28. he 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 possible it will again behave like FEMO Itis 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 17 Multicube Explorer User Manual Release 1 0 The optimizer here described and implemented in Multicube Explorer is derived by Marco Laumanns Analysis and Applications of Evolutionary Multiobjective Optimization Algorithms PhD thesis Swiss Federal Institute of Technology Ziirich Switzerland 2003 The name for this optimizer in Multicube Explorer is m3_gemo and the related parameter is e generations an integer variable that defines the number of generations to consider Example usage m3_shell gt opt_define_optimizer m3_gemo 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 The name for optimizer in Multicube Explorer is
29. hell gt opt_define_optimizer m3_mosa 5 2 4 MOPSO 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 The Multicube Explorer implementation divides the swarm into sub swarms as specified by the user where each sub swarm optimizes a linear combination of the objective functions This optimizers implemented in Multicube Explorer is called Multi Objective Particle 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 The name for this optimizer in Multicube Explorer is m3_mopso and the related parameters are iterations an integer variable specifying the number of iterations of the main loop of the MOPSO algorithm e sub_swarm_size an integer variable specifying the number of particles associated with each sub swarm e sub_swarm_number an integer variable specifying the number of sub swarms Example usage m3_shell gt opt_define_ optimizer m3_mopso
30. ial Basis Functions o rinda DN PACE 6 66k ee eee dr AAA ARA 5 35 Neural Network 664 6066 6444 44846 ini 6 Interfaces for the integration of new simulators 6 1 Design Space Definition o 6 1 1 Simulator Invocation 6 1 2 Parameters Definition 6 1 3 System Metrics Definition cseu2e dvi rada 6 1 4 FEBO o s so aia te dh eG toe wt Release 1 0 ON Ob B BR WO WW W YV C o NNN Multicube Explorer User Manual 7 8 6 2 Multicube Explorer Simulator Interface 6 2 1 Simulator input file S22 Simulator Output Files lt p e dene 6 2 3 Simulator Error Management Example of exploration with a simple simulator Shell Command List 8 1 8 2 8 3 pa A MU aci irse aa rara AAA AA eS SUr 66 pa hbo TRE o E es ee ee ee ee eae eee eee ee eee a a a ee ee NOW Se seit liga in oe eee eee ga de eee pa Plugins Commands a we in de wee et ee ew hae Bae ee dos delne Q06 sesei III die SoN A ee E e ee err dry See Oe ck wee rara PO AAU Soha ERE Poe ee eS Poe ee es Bees opt delme ONZE 24 cee uo eda EA o I ccc ee RS bee eee ee ee ee ease se UCI seul ee OES ee eee Oe eee ww MI oe Stee eb ee ee ES eee ey Se ee ee Ge SS PO VAG gt eee ew bee es we e Database Commands ok eco ee eS RE eee a HS A i II III db_change_current oca tiara ie dare da i 0 apa PETER Goss eee ee rosadas
31. ial 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 Multicube Explorer 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 Multicube Explorer User Manual Release 1 0 3 5 Documentation The documentation of Multicube Explorer is mainly composed by two documents e The present User Guide The Developer Guide This guide can be browsed either on the Multicube Explorer 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 10 Multicube Explorer User Manual Release 1 0 4 The Shell of Multicube Explorer To run Multicube Explorer you need to launch the following command gt lt installdir gt bin m3explorer Multicube Explorer Version release_1_0 Send bug reports to zaccaria elet polimi it gpalermo elet polimi it m3_shell gt and the Multicube Explorer Shell for the user interaction starts To exit the program just type exit followed by a return Typing the help command all the available Multicube Explorer commands with short descriptions are shown m3_shell gt help db_change_current db_compute_ADRS db_export db_export_xml db_filter_pareto
32. ion 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 called 1last_ADRS Example usage gt set objectives 1 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 performing a APRS exploration db_change_current aprs_DB doe_define doe m3 random doe opt_define_optimizer m3_aprs opt_tune computing aprs quality db_compute_adrs full_DB 40 Multicube Explorer User Manual Release 1 0 Shell Command name db_report_html The folder name where to save the report 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 nou ng set 12cw 2 8 set architecture_info 4 MPEG 2 Decoder SESC simulator db_report_html report 41 Multicube Explorer User Manual Release 1 0 9 Authors Vittorio Zaccaria Politecnico di Milano Gianluca Palermo Politecnico di Milano Giovanni Mariani ALaRI Universita de
33. l 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 string describing the nature of the system metric Multicube Explorer 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 Desired attributes and measurement units The desired attribute indicates whether it is desirable to have a small big value of a specific system metric In the current version of the Multicube Explorer tool this attribute is not propagated to the actual problem objectives which are an analytical function of the system metrics The measurement unit of the metrics are also not propagated to the problem objectives To set the objectives expression and the objective units please use the objectives and objectives_units variabiles 6 1 4 Feasibility rules The lt rules gt section is used by Multicube Explorer in order to not generate invalid or not feasible solutions during the auto mated exploration process The behavior of the simulator when these rules are not met is undefined Each rule is a boolean expression which should evaluate to true for a feasible configuration of the design space It is up to Multicube Explorer tool 25 Multicube Explorer User Manual
34. lla Svizzera italiana e Fabrizio Castro Politecnico di Milano 10 Acknowledgments Much of what Multicube Explorer 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 their contributions to the tool and their comments on the manual Cristina Silvano Politecnico di Milano William Fornaciari Politecnico di Milano Alessandro Sivieri Politecnico di Milano Al Hissi Mohammad ALaRI Universita della Svizzera italiana Carlos Kavka ESTECO 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 42
35. lorer 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 0 2 License Multicube 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 e 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
36. lue of A Example usage db_change_current training db_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 VV VV VV V VV V Linear Regression plugin requires the GNU Scientific Library To compile Multicube Explorer 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 make install VV VV Vv 5 3 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 2http www gnu org software gsl 19 Multicube Explorer User Manual Release 1 0 The name for this RSM in Multicube Explorer is SPLINE and the related parameter is preprocess a variable with floating point value or log value The parameter specifies
37. ment Options Description Shows information about the current driver loaded Example usage gt drv_show_info option CN gt opt_define optimizer m3_aprs Shell Command name rArguments Options 1 n Shows information about the current optimizer 35 Multicube Explorer User Manual Release 1 0 Shell Command name rargumentss SSS options SSS 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 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 Shell Command name Arguments Shell database name where to write the predictions string Name of the RSM to train string Options INN Description Executes the training phase of the selected RSM on the current database and pro duces predictions into the specified database Before la
38. ml 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 e file system permissions problems e license problems 28 Multicube Explorer User Manual Release 1 0 e internal exceptions e other e consistency or feasibility 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 Multicube Explorer 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 Multicube Explorer 29 Multicube Explorer User Manual Release 1 0 7 Example of exploration with a simple simulator In this section we report a simple example usage of Multicube Explorer The example consists ofthe exploration ofthe param eter 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 e simple _sim_ds xml Design space to be explor
39. nfigurations 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 E is FALSE e Aif Eis TRUE 6 2 Multicube Explorer Simulator Interface The Multicube Explorer Simulator interface is composed by 2 files one in output from Multicube Explorer to the simulator the other one in the opposite direction 6 2 1 Simulator input file The simulator input file should contain a preamble 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 7 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 ZT Multicube Explorer User Manual Release 1 0 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 lt parameter name active_processors
40. o es ICON poso pare AE A o PRO SOON EE TORE EE TENERE EEE TE db_filter_pareto eas ili le AI ee Lal os III db_compute_ADRS retara o es du topor AO 6 nb hehehe eae debe or 9 Authors 10 Acknowledgments Release 1 0 Multicube Explorer User Manual Release 1 0 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 Response Surface Design Modeling of Experiments M3Explorer Shell gt Optimization Algorithm Architecture database M3 Explorer Kernel XML Design Space Definition File Use Case Simulator 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 o
41. plorer User Manual Release 1 0 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 Multicube Explorer installation it is necessary specify in this step the associated options as presented in Section 5 3 Run make and make install to finish the installation gt make gt make install Optional To delete all the temporary 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_0 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_tests 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 factor
42. population based multi objective Evolution Algo rithm It contains 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 This optimizer 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 Parallel Problem Solving From Nature PPSN VII The name for this optimizer in Multicube Explorer is m3_semo and the related parameter is e generations an integer variable that defines the number of generations to consider Example usage 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 m
43. pported by well defined interfaces 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 DoE Plug in am x y ratio Core Optimizer am Plug in Design Figure 2 Architecture of the tool XML Design Space Definition XML amh Driver Space Representation Use Case Simulator 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 F
44. ptimal solutions to the architectural 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 has been achieved by not sacrificing the efficiency of the overall exploration engine The standard ANSI C programming language has been used for developing the open source framework The Standard Template Library as well as other open source libraries has been used during the development process Multicube Explorer User Manual Release 1 0 1 1 3 Modular composition One ofthe strength ofthe open source tool is the modularity ofits 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 su
45. r tested with version 2 6 31 The Gnuplot software tested with version 4 2 To compile Multicube Explorer with RSM modules enhanced version you will need to follow the instructions in Section 5 3 besides you will need the following libraries The GNU Scientific Library http www gnu org software gsl version 1 10 The language and environment for statistical computing and graphics R http www r project org version 2 6 2 e The BOOST library http www boost org version 1 35 0 e The Fast Artificial Neural Network library http leenissen dk fann version 2 1 Multicube Explorer can be configured to compile each RSM individually or all at the same time Please read Section 5 3 for the options that should be specified to the configure command for enabling each RSMs 3 2 Installation Procedure Multicube Explorer 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 Multicube Explorer tar gz The current release of the tool is 1 e Uncompress the downloaded archive gt tar zxvf m3explorer_release_1_0 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 Multicube Ex
46. s 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 Multicube Explorer is called Multi Objective Simulated Annealing MOSA and it is derived by Smith K L Everson R M Fieldsend J E Murphy C Misra R Dominance Based Multiobjective Simulated Annealing IEEE Trans action on Evolutionary Computation 12 3 323 342 2008 The name for this optimizer in Multicube Explorer is m3_mosa and the related parameters are e m3_mosa_epochs an integer variable identifying the number of iterations of the main MOSA loop e m3_mosa_epochs_lenght an integer variable identifying the number of configurations generated for each iteration e m3_mosa_temperature_decrease_coefficient a double variable 0 1 defines the coefficient for decreasing the temper ature at the end of each epoch 15 Multicube Explorer User Manual Release 1 0 e m3_mosa_perturbation_window an integer variable specifying the neighborhood w r t the current point within which the new configuration should be extracted randomly Example usage m3_s
47. s 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 Multicube Explorer framework are Full Search Random e Two Levels Full Factorial e 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 configuration 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 The implemented 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 lev
48. sion Linear regression is a method that models a linear 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 Multicube Explorer 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 va
49. sions specifying more than one value into the shell vector trainers The predictors are selected from the current DoE defined by the user The RSM parameters values are specified into shell vectors For each of the chosen RSM parameters the user has to specify a corresponding shell vector with a name composed of the parameter 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 If no or wrong value is specified for a parameter the default one is chosen Since the trainers are selected randomly from a reference database results can vary from one run ofthe command to another For this reason rsm_validate can repeat the entire mechanism for a number of times specified by the user with the shell vari able num_samples and finally the average value for each training is considered Ifthe user doesn t specify the variable num_samples a default value is considered 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 po
50. sociated 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 specification 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 smal
51. 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 1 Variable vector types The following types are introduced for producing variable vector types with specific constraints on the possible combinations of the components e 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 nane active processors dimension 7 on_set_size number_of_threads gt 24 Multicube Explorer User Manual Release 1 0 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 as
52. space is now loaded Now Multicube Explorer knows where the simulator is and which are the parameters associated with it Once in the Multicube Explorer 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 e Change the current database to a new database called ful1_db it will be filled by optimizer module with the explo ration results 30 Multicube Explorer User Manual Release 1 0 m3_shel1 gt db_change_current full_db Load the m3_full_doe DoE Full search considers all the possible combination 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 Multicube Explorer db format and in a standard csv format m3_shell gt db_write my_full db m3_shell gt db_export 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 Objectives can be any analytical expression of the metrics of the system m3_shell gt set objectives sum difference product m3_shell gt db_filter_pareto m3_shell gt db_report Write th
53. table 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_path_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 system met rics output The argument reference_xsd xsd_file_name is used for specifying the position of the reference Multicube Explorer 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 Multicube Explorer 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 23 Multicube Explorer User Manual Release 1 0 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 identifi
54. the integration of Multicube Explorer with other performance estimation tools by exploiting well defined XML interfaces that will be described later in section 6 The other two drivers m3_dtlz_driver andm3_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 Multicube Explorer should 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 Multicube Explorer can be both in interaction mode through the shell or in a script mode This second mode can be enabled by writing all the Multicube Explorer commands into a script file and then launching Mul ticube Explorer 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 12 Multicube Explorer User Manual Release 1 0 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 a set 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 i
55. ull search iterators Random search iterators global and neighborhood e 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 Multicube Explorer 1 3 Nature of the tool The Multicube Explorer tool is minimization tool that works by minimizing a set of objectives which are analytical expres sion of the metrics In case of objectives to be maximized they should be re casted to a minimization expression max Fx gt min f x 1 Multicube Explorer User Manual Release 1 0 1 4 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 Multicube Explorer shell Use Case Simulator Multicube Explorer XML System Configuration Figure 3 Interaction of Multicube Explorer with the Use Case Simulator Multicube Exp
56. unching 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 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 36 Multicube Explorer User Manual Release 1 0 Shell Command name Arguments Name of the RSM to validate string Options ee Description rsm_validate is used to analyze the behavior of the accuracy of the implemented RSM on the target architecture As a matter of fact it runs the command rsm_train for the selected RSM several times with several user defined training sets and with several user defined RSM parameters values The predictions are compared with the real values contained in the current database to produce a graph of the re sulting average normalized error versus the number of simulations where the num ber of simulations corresponds to the number of points used for training the RSM The number of points to use as training samples is specified by the user into the shell vector trainers rsm_validate chooses that points randomly from the current database It is possible to validate the RSM in respect to training sets with various dimen
57. wer 5 and preprocess log are selected the train ing and error computing are performed again on training sets with the specified dimensions Once all parameters configurations has been experimented the entire mechanism is repeated because num_samples 2 the graph with average values is generated and saved into the working directory 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 2 set trainers 200 400 600 800 1000 1200 1400 1600 1800 rsm_validate SHEPARD Example usage VVV VV VV MV 8 3 Database Commands Simulation results are stored into database db in memory Databases can be loaded stored from to the file system 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 multi objective optimization Following are Multicube Explorer 37 Multicube Explorer User Manual Release 1 0 commands for database handling Shell Command name Name of the db to read string Reads a database from disk Example usage gt db_read MY EXPLORATION_DB db Shell Command name File name into which the current database should be written string CIC E Description Writes the

Download Pdf Manuals

image

Related Search

Related Contents

  Draper V160-V projection screen  SERVICE MANUAL  部品交換説明書 ガラス割れセンサー  Control Unit Quick Installation and Operation Guide  Owner`s Manual - Northern Tool + Equipment  User Manual  H61M-C  FICHA TÉCNICA ATÚN LISTADO DJM 1 KG 20375  (F)\1932\02_1932\MMF3202__C1.jpg - club-amis  

Copyright © All rights reserved.
Failed to retrieve file