FranklinQuad Core Upgrade
Quick Start Guide
Access to Franklin
Software
Status & StatsNERSC MOTD Announcements Known Problems Current Queue Look Completed Jobs List Job Stats |
Franklin IO Performance Tips
Lustre File Striping for Parallel IO
Franklin uses the Lustre file system. For many applications a
technique called file striping will increase IO performance. File
striping will primarily improve performance for codes doing parallel
IO on either a single node or multiple nodes using multiple nodes
simultaneously to access one or more large files such as
with MPI-IO, parallel HDF5 or parallel NetCDF.
The default striping on Franklin is set to 4 on the /scratch
Lustre file system.
This is optimized for the greatest number of codes running at NERSC.
Users who feel that an
application would benefit from a different
striping pattern should contact
consult@nersc.gov.
What is file striping? The Lustre file system is made up of an underlying set of file systems called Object Storage Targets (OST's), which are essentially a set of parallel IO servers. A file is said to be striped when read and write operations access multiple OST's concurrently. File striping is a way to increase IO performance since writing or reading from multiple OST's simultaneously increases the available IO bandwidth. Striping will likely have little impact for the following codes:
For MPI applications with parallel IO, multiple processors accessing multiple OST's can provide large IO bandwidths. Using all the available OST's on Franklin will provide maximum performance. There are a few disadvantages to striping. Interactive commands such as ls -l will be slower for striped files. Additionally, striped files are more likely to suffer from data loss from a hardware failure since the the file is spread across multiple OST's.
Striping commands To set striping for a file or directory use the command % lfs setstripe % lfs setstripe filename [stripe-size] [OST-offset] [stripe-count] % lfs setstripe myfile 0 -1 -1 % lfs setstripe myfile 0 -1 1 The lfs find command will give the striping pattern for a file or directory. % lfs find -v directory/file % lfs find -v testdirectory OBDS: 0: ost1_UUID ACTIVE 1: ost2_UUID ACTIVE 2: ost3_UUID ACTIVE 3: ost4_UUID ACTIVE 4: ost5_UUID ACTIVE 5: ost6_UUID ACTIVE 6: ost7_UUID ACTIVE 7: ost8_UUID ACTIVE 8: ost9_UUID ACTIVE 9: ost10_UUID ACTIVE 10: ost11_UUID ACTIVE 11: ost12_UUID ACTIVE 12: ost13_UUID ACTIVE 13: ost14_UUID ACTIVE 14: ost15_UUID ACTIVE 15: ost16_UUID ACTIVE testdirectory/ default stripe_count: 1 stripe_size: 0 stripe_offset: -1 This shows a stripe count of 1 (no striping), the stripe size is set to 0 (meaning use the default), and the stripe offset is set to -1 which means to round robin the files across the OST's. Always use -1 for stripe_offset. See the man page for lfs for more info. |
![]() |
Page last modified: Tue, 08 Apr 2008 22:22:25 GMT Page URL: http://www.nersc.gov/nusers/systems/franklin/io.php Web contact: webmaster@nersc.gov Computing questions: consult@nersc.gov Privacy and Security Notice |
![]() |