Frequently asked questions (FAQs)
Q: I am getting the following error: pymongo.errors.DocumentTooLarge: 'findAndModify' command document too large. What can I do?
A: You can change the default setup for background I/O.
Q: I cannot find a model in the database, what can I do?
A: You can use tags and then search the database for known tags, metadata and data.
Q: The statements in the model are evaluated in an order that is non-intuitive. I wish certain statements to be evaluated now and other statements - only later.
A: You can consider using the --on-demand option to either texts session or texts script. Read more here.
Q: Slurm does not accept batch jobs with --account but texts adds my username as the default account.
A: Open an ipython session and run the following code:
from virtmat.middleware.resconfig import get_default_resconfig, get_resconfig_loc
cfg = get_default_resconfig()
cfg.default_worker.accounts.append(None)
cfg.default_worker.default_account = None
cfg.to_file(get_resconfig_loc())
Then run texts again. Then use the variable update (using :=) to enforce reevaluation of the resources. A simple %rerun var will not be sufficient.
Q: How can I set a datastore configuration alternative to the default $HOME/.fireworks/datastore_config.yaml?
A: This can be done using the vre-middleware’s Python API. For example, within an iPython command line session:
from virtmat.middleware.resconfig import get_resconfig_loc, get_default_resconfig
cfg = get_default_resconfig()
wcfg = cfg.workers[0] # SEE NOTE
wcfg.envvars.update({'DATASTORE_CONFIG': '/alternative/path_to/my_project/datastore_config.yaml'})
wcfg.default_envvars.append('DATASTORE_CONFIG')
cfg.default_worker = wcfg
cfg.to_file(get_resconfig_loc())
NOTE: In this example worker[0] is assumed as the relevant worker for the datastore configuration. If available, other workers can be selected by using the corresponding index, eg worker[n].
Q: How can I avoid creating launch directories (launcher_YYYY-DD-MM-hh-mm-ss-??????) everywhere in my system?
A: This can be achieved by setting up a default launchdir in the resource configuration, res_config.yaml file. All new launch folders, and data, from the worker’s launches will be stored in the configured default launchdir.
The set-up of the default_launchdir can be done using the vre-middleware’s Python API:
from virtmat.middleware.resconfig import get_resconfig_loc, get_default_resconfig
cfg = get_default_resconfig()
wcfg = cfg.workers[0] # NOTE
wcfg.default_launchdir = '/path/to/my/desired/default_launchdir'
cfg.default_worker = wcfg
cfg.to_file(get_resconfig_loc())
NOTE: In this example worker[0] is assumed as the relevant worker for the launchdir configuration. If available, other workers can be selected by using the corresponding index, e.g. worker[n].
Q: The datastore mechanism is not effective and launch output data gets stored in gridfs by fireworks.
A: Add this setting into your ~/.fireworks/FW_config.yaml file or into your custom FireWorks configuration file:
GRIDFS_FALLBACK_COLLECTION: null