Difference between revisions of "Best practices on Lustre parallel file systems"

From ScientificComputing
Jump to: navigation, search
(Best practices)
Line 1: Line 1:
 +
<!--
 
==Introduction==
 
==Introduction==
Lustre is a type of parallel distributed file system, generally used for large-scale cluster computing. Files are distributed across multiple servers, and then striped across multiple disks.  
+
Lustre is a type of parallel distributed file system, generally used for large-scale cluster computing. Files are distributed across multiple servers, and then striped across multiple disks.
  
 +
The Lustre file system is shared among many users. It is optimized for parallel I/O and large files. Please note that
 +
 +
*working with a large number of small files
 +
*running thousands of unnecessary I/O operations per second (running Open/Close in a loop)
 +
*accessing the same file with hundreds of processes
 +
 +
will not only slow down your jobs. It can overload the entire file system affecting all users. Therefore please carefully read our best practices guide before using <tt>/cluster/work</tt> or <tt>/cluster/scratch</tt>.
 +
 +
==Lustre architecture==
 
A Lustre file system has three major functional units:
 
A Lustre file system has three major functional units:
  
Line 15: Line 25:
  
 
==Best practices==
 
==Best practices==
The Lustre file system is shared among many users. It is optimized for parallel I/O and large files. Please note that
 
 
*working with a large number of small files
 
*running thousands of unnecessary I/O operations per second (running Open/Close in a loop)
 
*accessing the same file with hundreds of processes
 
 
will not only slow down your jobs. It can overload the entire file system affecting all users. Therefore please carefully read our best practices guide before using <tt>/cluster/work</tt> or <tt>/cluster/scratch</tt>.
 
 
 
===Limit repetitive Open/Close operations===
 
===Limit repetitive Open/Close operations===
 
If you need to write a lot of values into a file as part of a loop, then there are multiple ways of achieving this task. Please make sure that you never put the open and close statements inside the loop as shown in this Python example:
 
If you need to write a lot of values into a file as part of a loop, then there are multiple ways of achieving this task. Please make sure that you never put the open and close statements inside the loop as shown in this Python example:
Line 101: Line 103:
 
* It is possible to create files with non-default striping parameters with the lfs command
 
* It is possible to create files with non-default striping parameters with the lfs command
 
* A subdirectory '''inherits''' all stripe parameters from its parent directory (if not changed via lfs setstripe)
 
* A subdirectory '''inherits''' all stripe parameters from its parent directory (if not changed via lfs setstripe)
 +
 +
-->

Revision as of 12:15, 12 February 2019