====== Dinamica Console ====== Dinamica Console is the command-line interface for running Dinamica EGO model scripts without opening the graphical interface. It is well suited for batch processing, scheduled runs, and execution on machines without a display. ===== Syntax ===== DinamicaConsole {OPTIONS} The '''' argument is required and specifies the model script that will be executed. The special argument ''--'' can be used to terminate flag options, forcing all following arguments to be treated as positional arguments. ===== Execution Options ===== * ''-predefined-seed'' — Use a predefined value as the seed of the random number generators, instead of a value derived from the current time. Useful for producing reproducible runs. * ''-granularity=[granularity]'' — Override the default granularity multiplier value used to break jobs into parallel tasks. * ''-propagate-exceptions'' — Propagate top-level exceptions instead of only reporting them and exiting. * ''-disable-submodel-expansions'' — Disable submodel expansions before running the script. See [[submodels#submodel_expansion_and_execution|Submodel Expansion and Execution]] for details on what expansion does. * ''-disable-copy-optimization'' — Disable data copy optimization during script execution. //Only use this setting if you know what you are doing//. * ''-remove-redundant-carriers'' — Remove all unnecessary intermediate carrier functors before executing a model. See [[submodels#submodel_expansion_and_execution|Submodel Expansion and Execution]] for details. * ''-dont-run'' — Parse and validate the model script, but do not execute it. Useful together with ''-output'' to only convert a script. ===== Workers and Memory ===== * ''-processors=[processors]'' — Override the number of logical processors (workers) that should be used. Pass 0 to automatically use the total number of processor cores instead. * ''-disable-parallel-functors'' — Disable parallel processing of independent functors. * ''-disable-parallel-steps'' — Disable parallel processing of independent loop steps. * ''-disable-parallel-map-load'' — Disable loading maps in parallel. * ''-memory-allocation-policy=[memory-allocation-policy]'' — Policy used to control memory allocation. Values: ''PREFER_MEMORY=0'', ''BALANCED=1'', ''PREFER_DISK=2'', ''MEMORY_ONLY=3'', ''AGGRESSIVE=4''. See [[options#memory_management|Memory Management]] for what each policy does; ''BALANCED'' and ''AGGRESSIVE'' are generally recommended for performance, with ''AGGRESSIVE'' being the more performance-oriented and ''BALANCED'' the more conservative choice. * ''-disable-native-expressions'' — Disable compilation of image expressions to native code. Expressions are evaluated using the default interpretation facility instead. ===== Accelerators ===== * ''-accelerators-policy=[accelerators-policy]'' — Policy used to select accelerator (OpenCL) devices. Values: ''NO_DEVICES=0'', ''ALL_DEVICES=1'', ''USER_CONFIG=2''. * ''-list-accelerators'' — Show the available accelerator devices and exit, without running the script. ===== Logging ===== * ''-log-level=[log-level]'' — Set the execution log level. Values: ''UNCONDITIONAL=0'', ''ERROR=1'', ''WARNING=2'', ''RESULT=3'', ''INFO=4'', ''INFO2=5'', ''DEBUG=6'', ''DEBUG2=7''. Note that this controls the volume of messages generated, not performance. * ''-log-subsystem=[log-subsystem]'' — Set the execution log subsystem flags, restricting debugging information to specific subsystems. Only takes effect when ''-log-level'' is set to ''DEBUG'' or ''DEBUG2''. Values are bit flags that can be combined by summing them: ''GENERAL=1'', ''OPENCL=2'', ''SCRIPT_READER_WRITER=4'', ''FUNCTOR_SCHEDULER=8'', ''FUNCTOR_DEPENDENCE_GRAPH=16'', ''FUNCTOR_EXECUTION=32'', ''FILESYSTEM=64'', ''MAP_IO_HANDLER=128'', ''FUNCTOR_COPY_ANALYSIS=256'', ''SUBMODEL=512'', ''EXECUTION_BASICS=1024'', ''GRAPHICAL_INTERFACE=2048'', ''DATABASE=4096'', ''TABLE_IO_HANDLER=8192'', ''MAP_HANDLING=16384'', ''TABLE_HANDLING=32768'', ''SYSTEM_COMMUNICATION=65536''. * ''-beep'' — Beep to indicate that the execution has completed. During execution, the console only displays messages at the ''INFO2'' level and below, regardless of the configured ''-log-level''. Each worker also writes its own log file, named ''log_X.txt'' (where ''X'' is the worker number), which mirrors what the console shows: only messages at the ''INFO2'' level and below, even if a ''DEBUG''/''DEBUG2'' level is configured. When debug information is enabled, it is written separately to a per-worker file named ''debug_X.txt'' instead, following the same naming scheme; ''DEBUG'' and ''DEBUG2'' messages never appear in ''log_X.txt'' or on the console. Both the log and debug files are created in the same folder as the model script being executed. ===== Metadata ===== * ''-metadata-profile=[metadata-profile]'' — Type of the profile used to write file metadata. Values: ''CUSTOM=0'', ''CSR/UFMG_ptBR=1'', ''CSR/UFMG_en=2''. * ''-map-metadata-template-filename=[filename]'' — Filename with the template used to write map metadata. Assumes the use of the ''CUSTOM'' profile. * ''-map-metadata-file-extension=[extension]'' — File extension used to write map metadata. Assumes the use of the ''CUSTOM'' profile. ===== Model Output ===== * ''-output=[output]'' — Write an output file representing the input model script, without needing to open the GUI to export it. The output format is chosen based on the file extension: ''.ego'' for EGO Script, ''.xml''/''.egoml'' for XML Script, ''.dot'' for a Graphviz representation of the model, and ''.egomlx'' for a bundle script. * ''-dont-run'' — Combine with ''-output'' to only convert a script to another format without executing it. * ''-verifier=[verifier]'' — Set the functor verifier used to validate the script before execution. Values: ''NonIntrusiveScriptVerifier'', ''IntrusiveScriptVerifier''. * ''-write-semicolon-in-csv'' — Write CSV files using semicolons as value separators (and commas as decimal marks) instead of the English standard format. ===== Integration ===== * ''-session-name=[session-name]'' — Create a session with the given name to share data between Dinamica EGO and an external R application via the "Calculate R Expression" functor. ===== Miscellaneous ===== * ''-profile'' — Enable profiling the execution. When combined with an interactive terminal, this opens a text-based UI with tabs for the message log, worker status, accelerator usage, and resource (memory) tracking. * ''-ask-to-start'' — Wait for a confirmation (press ENTER) before running the model. * ''-ask-to-close'' — Wait for a confirmation (press ENTER) before closing the console window after execution finishes. * ''-list-functors'' — Show the available functors and exit, without running the script. * ''-version'' — Show version information and exit. * ''+h'', ''-help'' — Display the help menu. ===== Deprecated Options ===== The following options are accepted for backward compatibility but are ignored: * ''-scheduler=[scheduler]'' * ''-disable-map-swapping'' ===== Examples ===== Run a model script using automatic worker detection and the default settings: DinamicaConsole "C:\models\my_model.ego" Run a model script with 4 workers, the Aggressive memory policy, and beep when finished: DinamicaConsole -processors=4 -memory-allocation-policy=4 -beep "C:\models\my_model.ego" Convert a model script to XML without running it: DinamicaConsole -dont-run -output="C:\models\my_model.xml" "C:\models\my_model.ego" List the available accelerator devices: DinamicaConsole -list-accelerators "C:\models\my_model.ego" Run a model script with a reduced, more verbose log level for troubleshooting, restricted to the functor scheduler subsystem: DinamicaConsole -log-level=6 -log-subsystem=8 "C:\models\my_model.ego" Run a model script at the Debug level, logging multiple subsystems at once by summing their flags — here, ''GENERAL=1'' + ''FUNCTOR_SCHEDULER=8'' + ''MAP_IO_HANDLER=128'' = ''137'': DinamicaConsole -log-level=6 -log-subsystem=137 "C:\models\my_model.ego"