Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
tutorial:dinamica_ego_script_language_and_console_launcher [2013/07/30 14:20]
juliana
tutorial:dinamica_ego_script_language_and_console_launcher [2013/08/13 16:21]
admin [What will you learn?]
Line 5: Line 5:
  
   * Naming variables with alias   * Naming variables with alias
-  * Dinamica EGO programming language+  * [[:EGO Script|Dinamica EGO programming language]]
   * Dinamica EGO Console launcher   * Dinamica EGO Console launcher
  
  
-As a model becomes more and more complex, you may find useful to save it in EGO format to keep developing ​ the model using EGO programming language on a text editor, e.g. NotePad or Context.\\ +As a model becomes more and more complex, you may find useful to save it in EGO format to keep developing ​ the model using [[:EGO Script|EGO programming language]] on a text editor, ​(e.g. [[http://​notepad-plus-plus.org/​|NotePad++]] or [[http://​www.contexteditor.org|Context]]). For example, the Amazon logging model [[http://​dx.doi.org/​10.1007/​s00267-009-9337-1|(Merry et al, 2009)]] developed in Dinamica EGO involves more than one thousand script lines. Both script formats ​([[:XML Script|EGOML/​XML]][[:EGO Script|EGO]]) ​are 100% compatible, so users can take back and forth a model from the graphical interface to the text editor without losing any information. Advanced modelers will greatly benefit from this well structured and tractable programming language. ​
-\\ +
-\\ +
-For example, the Amazon logging model [[http://​dx.doi.org/​10.1007/​s00267-009-9337-1|Merry et al, 2009]] developed in Dinamica EGO involves more than one thousand script lines. Both script formats XML, EGO are 100% compatible, so users can take back and forth a model from the graphical interface to the text editor without losing any information. Advanced modelers will greatly benefit from this well structured and tractable programming language. ​+
  
 <note tip>​**TIP**:​ EGO format is also a good way to merge two models, since you can cut and paste parts of scripts.</​note>​ <note tip>​**TIP**:​ EGO format is also a good way to merge two models, since you can cut and paste parts of scripts.</​note>​
Line 20: Line 17:
 Write in the alias field “initial_landscape”,​ click on //Calc Distance Map// and write the alias “distance_to_deforested”. Now save the model in EGO format. Write in the alias field “initial_landscape”,​ click on //Calc Distance Map// and write the alias “distance_to_deforested”. Now save the model in EGO format.
  
-Open in a text editor ​(preferentially one that highlights the script in C++ formate.g. Notepad++, available on http://​notepad-plus.sourceforge.net) ​the model “simulate_deforestation_from_1997_2000_30years_ahead.ego”. ​ The EGO script is as follows: ​+Open in a text editor, the model “simulate_deforestation_from_1997_2000_30years_ahead.ego”. The EGO script is as follows: ​
  
 {{ :​tutorial:​script_1.1.jpg |}} {{ :​tutorial:​script_1.1.jpg |}}
Line 27: Line 24:
 {{ :​tutorial:​script_4.1.jpg |}} {{ :​tutorial:​script_4.1.jpg |}}
  
-Now that you have learned a bit about programming with EGO script language, another resource available in Dinamica EGO is the Console Launcher. Any model saved in Dinamica EGO, either XML or EGO, can be run from the command prompt. Running the model from the command prompt increases model performance,​ as the model becomes free of the burden of the graphical interface.  In addition, from the command prompt, Dinamica EGO takes advantage of multiprocessor architecture,​ either splitting execution pipelines on different processors or running several functors’ internal algorithms using parallel processing. Therefore, execution becomes much faster. Depending on the amount of data loaded in the memory, it is also possible to disable disk swapping+Now that you have learned a bit about programming with EGO script language, another resource available in Dinamica EGO is the Console Launcher. Any model saved in Dinamica EGO, either ​EGOML/XML or EGO, can be run from the command prompt. Running the model from the command prompt increases model performance,​ as the model becomes free of the burden of the graphical interface. ​
  
-<note tip>​**TIP**: ​ Windows 32 bits only handles up to 3 gigabytes of memory for a single process.</​note>​+<note tip>​**TIP**: ​ Windows 32 bits only handles up to 3 gigabytes of memory for a single process. See the question [[:​faq#​performance|How much memory (RAM) is Dinamica EGO able to handle?]] in Dinamica EGO's FAQ for additional information about memory.</​note>​
  
 To facilitate running a model from the command prompt, we have developed a Console Launcher tool. Its use is strongly advised for complex models and others with large amount of data. Also, Console Launcher allows for queuing models and running them sequentially Call the Console Launcher from the tools subfolder in the Start/​Programs/​Dinamica EGO shortcut. It will open the following interface. To facilitate running a model from the command prompt, we have developed a Console Launcher tool. Its use is strongly advised for complex models and others with large amount of data. Also, Console Launcher allows for queuing models and running them sequentially Call the Console Launcher from the tools subfolder in the Start/​Programs/​Dinamica EGO shortcut. It will open the following interface.
Line 37: Line 34:
 <WRAP center round box 60%> <WRAP center round box 60%>
 Some parameters of Console Launcher are:  Some parameters of Console Launcher are: 
- 
--Model: name of the model  
  
 -Scheduler: how the model functors are going be sequenced ​ -Scheduler: how the model functors are going be sequenced ​
Line 46: Line 41:
 -Log Level: Maximum level of log report ​ -Log Level: Maximum level of log report ​
  
--Use Predefined seed: Check it to use a predefined seed to generate random numbers ​+-Use Predefined seed: Check it to use a predefined seed to generate random numbers. Using a predefined seed forces Dinamica EGO to always generate the same output, even if the model is stochastic. ​
  
--Processors:​ number of processors that model will use ( Use 0 to automatically detect the number available) ​+-Processors:​ number of processors/​cores ​that model will use (Use 0 to automatically detect the number available) ​
  
--Run Model: Check it to run model completely+-Run Model: Check it to run model completely, otherwise, Dinamica EGO will load all models and exit. Disable this flag to validate a large number of models.
 </​WRAP>​ </​WRAP>​
  
 You can save the Console Launcher configuration into a batch file too. This is useful in case you want to couple Dinamica EGO with other software. You can save the Console Launcher configuration into a batch file too. This is useful in case you want to couple Dinamica EGO with other software.
  
-<note tip>​**TIP**:​ another way to loosely couple other computer programs with Dinamica EGO is by means of functor Run External Process, available in the Control Tab.  By using this functor, you will be able to make a call to an external program from within Dinamica, pass to this program intermediate results and feed its output back again into the Dinamica EGO model. </​note> ​+<note tip>​**TIP**:​ another way to loosely couple other computer programs with Dinamica EGO is by means of functor ​[[:Run External Process]], available in the Control Tab.  By using this functor, you will be able to make a call to an external program from within Dinamica, pass to this program intermediate results and feed its output back again into the Dinamica EGO model. </​note> ​
  
 [[tutorial:​final_remarks| Next Session]] [[tutorial:​final_remarks| Next Session]]