Tips and Recommendations¶
A number of tips, recommendations and explainations that might be useful is listed here:
sdbis a shorter way of calling the
sim_dbcommand line tool and does not differ in any other way.
If the sim_db/ directory is empty after having cloned a projet that uses sim_db, go into the sim_db/ directory and run these two commands;
$ git submodule initand
$ git submodule update.
For C++ the instance of
SimDBmust be initialized at the beginning of the simulation and kept to the end. This is because its initializer and destructor take the time of the simulation as well as writing a number of thing to the database, including the simulations status. The same is true for Python, but in addition the
close()method need to be called. For C
sim_db_dtor()must for the same reason, be called at the beginning and end of the simulation.
sim_db_dtor()also does clean up and must be called to avoid memory leaks.
It is recommended to add a ‘name (string): name of simulation run’ and a ‘describtion (string): describtion of simulation’ to explain which simulation it is and the intent of the simulation. This makes it much easier to navigate all the simulations that accumulates at a later time.
add_and_runcommands will print the output from the run_command to the terminal while the program runs, but it may take some time before start printing the output.
It is recommended to use ‘root/’ in the run_command to give the path to the executable_program relative to the project’s root directory. This is because the ‘root/’ will be replaced with the full path to the file when running the simulation, which may be necessary when running on a cluster or supercomputer.
Any stand alone hashtages,
#, that occure in the run_command will be replaced with the number passed after the
-nflag in the
runcommand. Ex. :
mpirun -n # python program.py.
Small results can be written to the database, but large results are recommended to be saved in a subdirectory in a result made by
unique_results_dirinside a result directory.
If sim_db is not working as expected, it might be because sim_db is both included and installed (usually not done on purpose) and an unexpected version of sim_db is therefore used. So, if sim_db is not working as expected run
which sim_dbto check that you are using the expected version and that it is located in the expected directory (will indirectly tell you if it is installed or included).
For all commands that end with _sim, this ending can be omitted.
addcan for instance be used instead of
cd_results_dircommand replaces the currect shell process with a new one, so one can return to the original directory and shell instance with the
The command line tool can be called with
python sim_db/sim_db/__main__.py'instead of just
'sdb', if it is perferable.
Numpy arrays can be passed to the Python write method as long as type_of_value is set.
Multiple default names for the parameter files can be added in prioritized order in settings.txt to replace or in addition to sim_params.txt.
If add error message occur during the simulation, consider adding the error message as a comment,
add_comment --id 'ID' --filename 'standard_error.out'. An explaination may be appended in addition.