[lustre-discuss] problem getting high performance output to single file

Mohr Jr, Richard Frank (Rick Mohr) rmohr at utk.edu
Tue May 19 09:15:55 PDT 2015


> On May 19, 2015, at 11:40 AM, Schneider, David A. <davidsch at slac.stanford.edu> wrote:
> 
> When working from hdf5 and mpi, I have seen a number of references about tuning parameters, I haven't dug into this yet. I first want to make sure lustre has the high output performance at a basic level. I tried to write a C program uses simple POSIX calls (open and looping over writes) but I don't see much increase in performance (I've tried 8 and 19 OST's, 1MB and 4MB chunks, I write a 6GB file). 
> 
> Does anyone know if this should work? What is the simplest C program I could write to see an increase in output performance after I stripe? Do I need separate processes/threads with separate file handles?

If you are looking for a simple shared-file test, you could try something like this:

1) Create a file with a stripe size of 1 GB and a stripe count of 6.

2) Write an MPI program where each process writes 1 GB of sequential data.  Each process should first seek to (mpi_rank)*(1GB) and then write 1 GB.  This will ensure that all processes are writing to non-overlapping parts of the file.

3) Start the program running on 6 nodes (1 process per node).

In a scenario like that, you should effectively be getting file-per-process speeds even though you are writing to a shared file because each process is writing to a different OST.

--
Rick Mohr
Senior HPC System Administrator
National Institute for Computational Sciences
http://www.nics.tennessee.edu



More information about the lustre-discuss mailing list