FAQ
How do I convert my Python Multiprocessing program to Dragon ?
How do I debug my Dragon program ?
Use the -l
option when running Dragon, e.g., dragon -l DEBUG my_app.py
.
Possible log levels are NONE
, DEBUG
, INFO
, WARNING
, ERROR
, or CRITICAL
.
The Dragon logs will show debug output from all services alongside your program.
How can I change the size of the default memory pool ?
The size of the default memory pool in bytes is controlled by the environment
variable DEFAULT_SEG_SZ
during startup. The default is 2^32
or four GBytes
per node. If we want to increase the memory to eight GBytes, we set the
variable as follows in bash: export DRAGON_DEFAULT_SEG_SZ=8589934592
.
How do I find the p_uid of the current process ?
Python Multiprocessing:
multiprocessing.current_process().pid
. Note that Dragon replaces the OSpid
with thep_uid
, as thepid
is not unique on a Distributed System.Dragon Native:
dragon.native.process.current()
Dragon Client & Infrastructure:
dragon.infrastructure.parameters.this_process.my_puid
How do I enable the (TCP|RDMA)-based transport ?
References to a RDMA-based transport exist in a few places in the documentation and refer to an optional extension which is not included in the open-source version of Dragon. For inquiries about Dragon’s high speed RDMA-based transport, please contact HPE by emailing dragonhpc@hpe.com.
The TCP-based transport is enabled by default. To specify use of the RDMA (where
available) or TCP-based transport explicitly, the Dragon launcher provides the
--transport
option, though the only choice on the open source implementation is
tcp
.
# Explicitly use the RDMA-based transport
$ dragon --transport hsta my-dragon-script.py
# Use the tcp-based transport via the runtime's default setting
$ dragon my-dragon-script.py
# Use the TCP-based transport
$ dragon --transport tcp my-dragon-script.py
Where can I find the Environment Variables that control the Dragon Run-time ?
What do I do if I need to clean up any Dragon processes or experiments that did not complete properly?
In the event your experiment goes awry, we provide a helper script,
dragon-cleanup
, to clean up any zombie processes and memory. The script
dragon-cleanup
is placed in the [dragon install dir]/bin
and added to the
$PATH
environment variable after loading the Dragon module.
Can I use Dragon to manage MPI jobs?
This functionality is currently only available on systems where the HPE Cray MPITCH library is installed.
How can I get the best performance from my Distributed Dictionary?
There are a number of performance tips and tricks and in the enclosing section on the Design of the Distributed Dictionary, where many examples are also provided.