Differences

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

Link to this comparison view

Next revision
Previous revision
gui_tips [2026/06/12 14:19]
admin created
gui_tips [2026/07/22 04:07] (current)
hermann
Line 39: Line 39:
   * ''​is:​error''​   * ''​is:​error''​
   * ''​is:​warning''​   * ''​is:​warning''​
 +
 +===== Options (Tools => Options) =====
 +
 +Several interface options are accessible from **Tools => Options**. They are grouped below by what each one actually controls.
 +
 +==== Number of Workers ====
 +
 +The GUI option "Tools => Options | Advanced | Automatically detect the number of processors available"​ controls how many workers Dinamica EGO uses to execute a model in parallel. Here, "​processors"​ refers to the number of CPU cores (or logical processors) available on the machine. If you are running your models using the command line, the equivalent is the "​-processors"​ option, set to 0 for automatic detection (uses the total number of processor cores).
 +
 +Automatic detection sizes the number of workers to the number of processors available. However, oversubscribing this number — i.e., using more workers than you have processors — can be beneficial when the task being executed is heavily I/O-bound, since workers spend part of their time waiting on I/O rather than using the CPU, and extra workers can keep the CPU busy during those waits.
 +
 +==== Memory Management ====
 +
 +The memory management option "Tools => Options | Advanced"​ controls how Dinamica EGO handles input and resulting maps in memory versus on disk. If you are using the command line tool, the equivalent is the "​-memory-allocation-policy"​ option.
 +
 +Five policies are available:
 +
 +  * **Prefer Memory** — keeps input and resulting maps in memory whenever possible. If there isn't enough free memory, maps are stored on disk and brought back piece by piece. Execution might fail if there isn't enough free memory left for other operations.
 +  * **Balanced** — keeps input maps on disk and tries to keep resulting maps in memory whenever possible, storing them on disk instead if memory is limited or if doing so could constrain memory available for other operations. //​(-memory-allocation-policy 1)//
 +  * **Prefer Disk** — keeps all maps, including resulting ones, on disk, loading them into memory piece by piece as needed.
 +  * **Memory Only** — keeps input and resulting maps entirely in memory. If there isn't enough free memory, an error is reported and execution is aborted.
 +  * **Aggressive** — keeps resulting maps in memory whenever possible, falling back to disk (and reloading piece by piece) only when memory is insufficient. //​(-memory-allocation-policy 4)//
 +
 +**Aggressive** is the preferred setting for maximizing performance,​ since it favors keeping resulting maps in memory. **Balanced** is a more conservative,​ safer choice — it keeps input maps on disk and is more cautious about keeping resulting maps in memory, reducing the risk of running low on memory for other operations at some cost to performance.
 +
 +==== Native Expression Compilation ====
 +
 +Make sure the "​[[plugins_4|Enhancement Plugin for Dinamica EGO]]" extension is installed and the GUI option "Tools => Options | Advanced | Disable compilation of native expressions"​ is unchecked. This allows expressions to be compiled to native code, which improves performance.
 +
 +==== Virtualization ====
 +
 +The "Tools => Options | Advanced | Virtualization"​ option controls how Dinamica EGO handles maps with different extents, resolutions,​ or numbers of lines and columns (also known as raster map virtualization). See [[image_virtualization|Image Virtualization]] for the full explanation of what virtualization does and what each of the available options (Not Allowed, Unrestricted,​ Limited) means.
 +
 +==== Message Log Level ====
 +
 +The GUI option "Tools => Options | System | Message log level" controls the amount of messages generated during model execution — it is not a performance setting. Setting it to Result reduces the volume of messages shown. //This helps when running models with lots of loop containers like [[Repeat]], [[While]], [[For]] etc, which would otherwise generate a large number of messages//.
 +
 +When the log level is set to Debug or above, it is also possible to define which specific debugging actions (called **log subsystems**) should be logged.
 +
 +==== Model Backups ====
 +
 +The checkbox "​Create backup copy of the current model script upon saving",​ under "Tools => Options | General | Model Backup",​ makes Dinamica EGO copy the content of a model script file every time it is about to be overwritten by a "​Save"​ or "Save As" — this protects against accidental loss of a previous version of the model.
 +
 +The "​Backup Folder"​ field controls where these copies are placed. If left empty, copies are placed in the same folder as the original model. To restore a model to a previous state, copy the corresponding file back from the backup folder to its original location.
 +
 +==== EGO Script Formatting ====
 +
 +The settings under "​Options | EGO Script"​ control how a model selection is formatted when it is copied and pasted as EGO Script into an external text editor. See [[#​sketch|Sketch]] for the copy/paste mechanism itself.
  
 ===== Library ===== ===== Library =====
Line 46: Line 94:
   * The **Favorites** tab shows the functors that have been marked with a star. To mark a functor as a favorite, click the star next to its name.   * The **Favorites** tab shows the functors that have been marked with a star. To mark a functor as a favorite, click the star next to its name.
   * You can reorder the tabs ("​All",​ "​Favorites",​ etc.) by dragging a tab to its new position in the tab bar.   * You can reorder the tabs ("​All",​ "​Favorites",​ etc.) by dragging a tab to its new position in the tab bar.
 +  * A submodel'​s group in the Library — including subgroup placement — is set by whoever creates or edits it; see [[submodels#​updating_local_submodels|Updating Local Submodels]] for details. This does not apply to ordinary functors, whose Library placement is fixed by their own definition.
  
 ===== Sketch ===== ===== Sketch =====
 +
 +This panel is also referred to as the Model Presentation panel; see [[model_presentation|Model Presentation]] for the full reference on its panels and bars.
  
   * You can zoom using the mouse wheel.   * You can zoom using the mouse wheel.
Line 53: Line 104:
   * If a selected functor is not visible, you can center the view on it by clicking its name in its action bar (the bar shown above a functor when it is selected).   * If a selected functor is not visible, you can center the view on it by clicking its name in its action bar (the bar shown above a functor when it is selected).
   * You can copy the path of the model open in the sketch by hovering the mouse over the tab bearing the model'​s name and pressing **Ctrl+C**, or by left-clicking the tab and choosing the corresponding option from the menu that opens. In this menu, you can choose between the full file name of the model and the name of the folder where the model is saved.   * You can copy the path of the model open in the sketch by hovering the mouse over the tab bearing the model'​s name and pressing **Ctrl+C**, or by left-clicking the tab and choosing the corresponding option from the menu that opens. In this menu, you can choose between the full file name of the model and the name of the folder where the model is saved.
-  * To connect functors that are far apart and not visible on screen at the same time, select the source functor and—without selecting the destination functor—scroll the view so that the destination functor becomes visible (note that the source functor'​s action bar remains visible). Choose the "​create connection"​ option in the action bar and click the destination functor.+  * To connect functors that are far apart and not visible on screen at the same time, select the source functor and—without selecting the destination functor—scroll the view so that the destination functor becomes visible (note that the source functor'​s action bar remains visible). Choose the "​create connection"​ option in the action bar and click the destination functor. See [[model_presentation#​connecting_distant_functors|Connecting Distant Functors]] for this and the alternative method below.
   * Another way to connect distant functors that are not simultaneously visible is to use the selection-navigation mechanism:   * Another way to connect distant functors that are not simultaneously visible is to use the selection-navigation mechanism:
     - Click the source (output) functor. You may also simply search for this functor in the interface'​s functor Explorer and then click the **"​View functor"​** button in that Explorer.     - Click the source (output) functor. You may also simply search for this functor in the interface'​s functor Explorer and then click the **"​View functor"​** button in that Explorer.
Line 60: Line 111:
     - Click the destination functor to complete the connection.     - Click the destination functor to complete the connection.
   * You can use **Alt+Right Arrow** and **Alt+Left Arrow** to navigate between your most recent functor selections: **Alt+Left Arrow** returns to the previous selection, and **Alt+Right Arrow** advances to the next one. You can also skip across multiple selections by holding **Alt** while moving from selection to selection with the arrow keys.   * You can use **Alt+Right Arrow** and **Alt+Left Arrow** to navigate between your most recent functor selections: **Alt+Left Arrow** returns to the previous selection, and **Alt+Right Arrow** advances to the next one. You can also skip across multiple selections by holding **Alt** while moving from selection to selection with the arrow keys.
-  * When you select a connection between two functors, the connection action bar is shown in the upper-right corner of the sketch. Hovering the mouse over the name of each port in this action bar displays a tooltip for the port and for the functor it belongs to, including its banner, comment, and alias. +  * When you select a connection between two functors, the [[model_presentation#​connection_action_bar|connection action bar]] is shown in the upper-right corner of the sketch. Hovering the mouse over the name of each port in this action bar displays a tooltip for the port and for the functor it belongs to, including its banner, comment, and alias. 
-  * The functor information panel (shown when you click the "?"​ icon in a functor'​s action bar) can be used to identify which connection represents the link to a given port of the functor. Click the desired port name in the port list, and the connection corresponding to that port is selected in the model view.+  * The [[model_presentation#​functor_information_panel|functor information panel]] (shown when you click the "?"​ icon in a functor'​s action bar) can be used to identify which connection represents the link to a given port of the functor. Click the desired port name in the port list, and the connection corresponding to that port is selected in the model view.
   * The functor information panel can also be used to find out which port is connected, being edited, or being viewed. This information is shown next to the corresponding port name.   * The functor information panel can also be used to find out which port is connected, being edited, or being viewed. This information is shown next to the corresponding port name.
   * You can reorder the tabs corresponding to the open models by dragging a tab to its new position in the tab bar.   * You can reorder the tabs corresponding to the open models by dragging a tab to its new position in the tab bar.
Line 69: Line 120:
     * **Red border** – the functor has one or more errors.     * **Red border** – the functor has one or more errors.
     * **Green border** – the functor exports input and/or output ports as part of a submodel.     * **Green border** – the functor exports input and/or output ports as part of a submodel.
-    * **Blue border** – the functor'​s input and/or output ports are exported to a wizard.+    * **Blue border** – the functor'​s input and/or output ports are exported to a wizard. ​(Note: functors that are part of a submodel cannot export input and/or output ports to wizards.)
   * After copying the current selection of the displayed model using **Copy Selection** or **Ctrl+C**, you can paste that selection either (a) into another model, or (b) into an external text editor. In case (b), the selection is pasted using the EGO Script representation of that fragment. Ports connected to functors that were not selected and copied are shown as disconnected (''​.UNBOUND''​). The settings specified in **Options | EGO Script** are used when writing the fragment.   * After copying the current selection of the displayed model using **Copy Selection** or **Ctrl+C**, you can paste that selection either (a) into another model, or (b) into an external text editor. In case (b), the selection is pasted using the EGO Script representation of that fragment. Ports connected to functors that were not selected and copied are shown as disconnected (''​.UNBOUND''​). The settings specified in **Options | EGO Script** are used when writing the fragment.
   * Likewise, you can paste a script fragment into a model after copying it from an external text editor to the system clipboard. The only restriction is that the fragment must be syntactically valid. Ports connected to variables whose definitions were not copied are treated as disconnected.   * Likewise, you can paste a script fragment into a model after copying it from an external text editor to the system clipboard. The only restriction is that the fragment must be syntactically valid. Ports connected to variables whose definitions were not copied are treated as disconnected.
Line 102: Line 153:
  
   * The Issue Panel also retains the most recent errors and warnings generated during model execution. To view them, keep the **"​Also show last execution issues"​** toggle enabled.   * The Issue Panel also retains the most recent errors and warnings generated during model execution. To view them, keep the **"​Also show last execution issues"​** toggle enabled.
 +
 +