User`s guide

Cray XMT Programming Environment Users Guide
A typical application might use dslr_pread and dslr_pwrite in the following
manner:
1. Start up and allocate a small buffer to be initialized from a file.
2. Call dslr_pread specifying the name of the file providing the data, the offset
of the data in the file, a pointer to the buffer allocated in 1, and the length of the
data.
3. Process and change the data.
4. Call dslr_pwrite to store the data back to the file (or to a new modified data
file).
5. Repeat 3 and 4 as often needed, using snapshots as a way to preserve forward
progress in case of failure or for the sake of sharing the system.
It is possible to mix uses of dslr_snapshot/dslr_restore and uses of
dslr_pwrite/dslr_pread as needed in an application.
!
Caution: The snapshot library functions can only be used one at a time; they
cannot be used in parallel. Any attempt to use snapshot library functions in parallel
will eventually result in corruption of the snapshot data and possible uncontrolled
failure of the snapshot library or of one or more instances of fsworker.
6.3 Maintaining File System and I/O Parallelism
The snapshot library is intended primarily for saving and retrieving large data sets on
platforms with a Lustre file system. Lustre supports parallel access and is highly
tunable, allowing users and administrators to set many options, including file stripe
widths and block sizes. With proper provisioning and tuning, Lustre can sustain many
gigabytes per second of throughput. Because the performance of the underlying
Lustre configuration bounds the throughput of most snapshot library operations,
careful Lustre tuning is essential for optimal snapshot performance.
A detailed discussion of Lustre provisioning, configuration and tuning are beyond
the scope of this document. One rule of thumb, however, makes a good starting
point when using dslr_snapshot and dslr_restore in single-file mode with
multiple fsworkers. Setting the block size to 32 megabytes and a file stripe width
of all object storage server (OSS) nodes (-1) generally yields good results. Typically,
for multi-file mode the directory is striped to a single object storage target (OST).
The lfs command allows a user to set these parameters on a per-directory basis.
See the setstripe/getstripe documentation in the lfs man page for more
information. Contact your system administrator for more detailed information on
tuning Lustre to the requirements of a particular application.
70 S247920