Useful Environment Variables
I was surprised to find I hadn’t written anything about the environment variables one can set in ROMIO.
I don’t think I have a well-thought-out theory of when to use an environment variable vs when to use an MPI_Info key.
In this post, I’ll talk about ROMIO environment variables in general. The GPFS, PVFS2, and XFS drivers also have environment variables one can set, but those variables need to be set only in very specific instances.
- ROMIO_FSTYPE_FORCE: ROMIO will pick a file system driver by calling
stat(2)
and looking at the fs type field. You can also prefix the path with a driver name (e.g.pvfs2:/path/to/file
orufs:/home/me/stuff
), which bypasses the stat check. This environment variable provides a third way. Set the value to the prefix (e.g.export ROMIO_FSTYPE_FORCE="ufs:"
) and ROMIO will treat every file as if it resides on that file system. You are likely to get some strange behavior if you for instance try to make lustre-specific ioctl() calls on a plain unix file. I added the facility a while back in cases where it might be hard to modify the path or if I wanted to rule out a bug in a ROMIO driver - ROMIO_PRINT_HINTS: dump out the hints ROMIO is going to use on this file. Sometimes file systems will override user hints or otherwise communicate something back to the user through hints. Helpful to confirm what you think is going on (as in “hey, I requested this other optimization. Why is that optimization happening?”)
- ROMIO_HINTS: used to select a custom “system hints” file. See system hints