Configuration Files¶
Many components of the yggdrasil framework’s behavior can be controlled by options in the configuration file. When installed yggdrasil creates a user config file called ‘.yggdrasil.cfg’ in your home directory or the direcotry associated with your conda or virtual environment (if you are using a conda or virtual environment). By editting the options in the user config file, you can customize the behavior of your framework runs. The exact location of your config file can be found by running:
$ yggconfig --show-file
Further customization for specific runs can be achieved by creating a local config file called ‘.yggdrasil.cfg’ in the directory where the interface will be run. Any options not found in the local will be filled in with values from the user config file. Any options not found in the user config file will be filled in with default package values.
There are also several options you can provide to the yggconfig
CLI to modify the configuration file. To see the options available, run yggconfig -h
.
Updating the Compilation Tools¶
To update the compilation tools that yggdrasil uses when building models of a certain language against the yggdrasil interface, you can use the --XXX-compiler
, --XXX-linker
, and --XXX-archiver
options (where XXX
is the language). For example, to configure yggdrasil to use the clang++ compiler tools for C++ models (if they are not the default), you would run:
$ yggconfig --c++-compiler=clang++ --c++-linker=clang++ --c++-archiver=libtool
You do not need to specify all three (e.g. you could just specify the compiler) and you can provide just the toolname or the full path to the executable. e.g.:
$ yggconfig --c-compiler=/full/path/to/gcc
Make sure that the tools you select are compatible with each other or you may get linking errors. You can run ygginfo
to verify that yggdrasil is using the specified tools.
Debug Options¶
Options for controlling the level of information printed during a run can be controlled by options in the ‘[debug]’ section of the config files. Each one can have any of the valid logging levels. These include:
NOTSET: Do not print any messages.
CRITICAL: Print only messages logged as critical.
ERROR: Print messages logged as error or critical.
WARNING: Print messages logged as warning, error, or critical.
INFO: Print messages logged as info, warning, error, or critical.
DEBUG: Print messages logged as debug, info, warning, error, or critical.
The debug options are:
Option |
Default |
Description |
---|---|---|
ygg |
INFO |
Controls the level of messages printed by the yggdrasil framework itself. |
rmq |
WARNING |
Controls the level of messages printed by RabbitMQ. |
client |
INFO |
Controls the level of messages printed by yggdrasil calls from the models. |
Language Options¶
Each supported language has a dedicated section in the config file with options that control how models of that language will be handled. The following options are available to all languages:
Option |
Description |
---|---|
commtypes |
A list of communication mechanisms types available
for use in the language. If libraries are installed
that later enable a new communication mechanism,
running |
disable |
A boolean determining if models in the specified language should be disabled. This option serves as a for isolating languages for testing. |
Options available for all compiled languages include:
Option |
Description |
---|---|
compiler |
Name of, or full path to, the compiler that should be used for compiling models. |
compiler_flags |
A list of flags that should be used when calling the compiler. |
linker |
Name of, or full path to, the linker that should be used for linking models (and the interface library). |
linker_flags |
A list of flags that should be used when calling the linker. |
archiver |
Name of, or full path to, the archiver that should be used for creating static interface libraries. |
archiver_flags |
A list of flags that should be used when calling the archiver. |
XXX_executable |
Full path to the executable that should be used for a compilation tool (compiler, linker, or archiver) with the name XXX. |
Options available for all interpreted languages include:x
Option |
Description |
---|---|
interpreter |
Full path to the interpreter executable that should be used for running models. |
interpreter_flags |
A list of flags that should be used when calling the interpreter. |
In addition to these general options, some languages also have specific options related to their treatment of models or dependencies.
C Options¶
If they are not installed in a standard location or you would like to use an alternate version than the one identified by yggdrasil, it may be necessary for you to manually specify the location of dependency headers and/or libraries. These can be set using the following config options (with are also used to configure C++ model compilations).
Option |
Description |
---|---|
rapidjson_include |
Full path to the directory containing the rapidjson headers. |
zmq_include |
Full path to the zmq.h header. |
zmq_static |
Full path to the zmq.lib/libzmq.a static library. |
zmq_shared |
Full path to the zmq.dll/libzmq.so/libzmq.dylib dynamic/shared object library. |
czmq_include |
Full path to the czmq.h header. |
czmq_static |
Full path to the czmq.lib static library. |
czmq_shared |
Full path to the czmq.dll/libczmq.so/libczmq.dylib dynamic/shared object library. |
python_include |
Full path to the Python.h header. |
python_static |
Full path to the pythonX.X.lib/libpythonX.X.a static library. |
python_shared |
Full path to the pythonX.X.dll/libpythonX.X.so/ libpythonX.X.dylib dynamic/shared object library. |
c++_include |
Full path to the stdlib.h C++ header. |
c++_static |
Full path to the libc++.a static library. |
c++_shared |
Full path to the libc++.so/libc++.dylib C++ dynamic/shared object library. |
macos_sdkroot |
Full path to the Mac SDK that should be used. |
Matlab Options¶
Option |
Description |
---|---|
startup_waittime_s |
Time (in seconds) that should be waited for a Matlab shared engine to start before raising an error. On some systems this will need to be >10s in order to allow for long Matlab startup times. |
disable_engine |
Boolean controling whether or not Matlab shared engines should be used to run models. This option is useful when debugging Matlab models as the shared engine, while reducing startup time, can result in orphaned processes for models that raise errors. |
matlabroot |
The full path to the Matlab root directory. |
version |
The version of Matlab being used to run models. This option should only be set by yggdrasil and is only used to speedup reporting of the version. |
RabbitMQ Options¶
Options in the ‘[RMQ]’ section control the behavior of RabbitMQ connections. If the option is left blank, the default RabbitMQ option is used. These include:
Option |
Default |
Description |
---|---|---|
namespace |
RabbitMQ exchange. |
|
host |
localhost |
RabbitMQ server host. |
vhost |
RabbitMQ server virtual host. |
|
user |
guest |
RabbitMQ server user name. |
password |
guest |
RabbitMQ server password. |
Parallel Options¶
Options in the ‘[parallel]’ section control the behavior of parallelization. Although, not supported in the current version of yggdrasil, these include:
Option |
Default |
Description |
---|---|---|
cluster |
List of IP address of cluster nodes. |