2.6 KiB
Environment variables
Some environment variables can be used to adjust settings during the execution
of libovni, they all begin with the OVNI_
prefix. Be sure that all threads of
the same node use the same environment variables.
OVNI_TMPDIR
During the execution of your program, a per-thread buffer is kept where the new events are being recorded. When this buffer is full, it is written to disk and emptied, an operation known as flush. This may take a while depending on the underliying filesystem.
Keep in mind that the thread will be blocked until the flush ends, so if your filesystem is slow it would interrupt the execution of your program for a long time. It is advisable to use the fastest filesystem available (see the tmpfs(5) and df(1) manual pages).
You can select a temporary trace directory where the buffers will be flushed
during the execution by setting the environment variable OVNI_TMPDIR
. The last
directory will be created if doesn't exist. In that case, as soon as a process
calls ovni_proc_fini()
, the traces of all its threads will be moved to the
final directory at $PWD/ovni
. Example:
OVNI_TMPDIR=$(mktemp -u /dev/shm/ovni.XXXXXX) srun ./your-app
To test the different filesystem speeds, you can use hyperfine and dd. Take a closer look at the max time:
$ hyperfine 'dd if=/dev/zero of=/gpfs/projects/bsc15/bsc15557/kk bs=2M count=10'
Benchmark 1: dd if=/dev/zero of=/gpfs/projects/bsc15/bsc15557/kk bs=2M count=10
Time (mean ± σ): 71.7 ms ± 130.4 ms [User: 0.8 ms, System: 10.2 ms]
Range (min … max): 14.7 ms … 1113.2 ms 162 runs
Warning: Statistical outliers were detected. Consider re-running this
benchmark on a quiet PC without any interferences from other programs. It
might help to use the '--warmup' or '--prepare' options.
$ hyperfine 'dd if=/dev/zero of=/tmp/kk bs=2M count=10'
Benchmark 1: dd if=/dev/zero of=/tmp/kk bs=2M count=10
Time (mean ± σ): 56.2 ms ± 5.7 ms [User: 0.6 ms, System: 14.8 ms]
Range (min … max): 45.8 ms … 77.8 ms 63 runs
$ hyperfine 'dd if=/dev/zero of=/dev/shm/kk bs=2M count=10'
Benchmark 1: dd if=/dev/zero of=/dev/shm/kk bs=2M count=10
Time (mean ± σ): 11.4 ms ± 0.4 ms [User: 0.5 ms, System: 11.1 ms]
Range (min … max): 9.7 ms … 12.5 ms 269 runs
OVNI_TRACEDIR
By default, the runtime trace will be placed in the ovni
directory, inside the
working directory. You can specify a different location to place the trace by
setting the OVNI_TRACEDIR
environment variable. It accepts a relative or
absolute path, which will be created if it doesn't exist.