Hi,

There are a few things that you could test to see whether they make difference.


  1.  Try to modify the number of aggregators used in collective I/O (assuming 
that the code uses collective I/O). You could try e.g. to set it to the number 
of nodes used (the algorithm determining the number of aggregators 
automatically is sometimes overly aggressive). E.g.



mpirun –mca io_ompio_num_aggregators 16 -np 256 ./executable name



(assuming here that you run 256 processes distributed on 16 nodes). Based on 
our tests from a while back gpfs was not super sensitive to this, but you never 
know, its worth a try.



  1.  If your data is large and mostly contiguous,  you could try to disable 
data sieving for write operations, e.g.



mpirun --mca fbtl_posix_write_datasieving 0 -np 256 ./…

Let me know if these make a difference. There are quite a couple of info 
objects that the gpfs fs component understands and that potentially could be 
used to tune the performance, but I do not have experience with them, they are 
based on code contributed by the HLRS a couple of years ago. You can still have 
a look at them and see whether some of them would make sense (source location: 
ompi/ompi/mca/fs/gpfs/fs_gpfs_file_set_info.c).

Thanks
Edgar


From: users <users-boun...@lists.open-mpi.org> On Behalf Of Eric Chamberland 
via users
Sent: Saturday, June 11, 2022 9:28 PM
To: Open MPI Users <users@lists.open-mpi.org>
Cc: Eric Chamberland <eric.chamberl...@giref.ulaval.ca>; Ramses van Zon 
<r...@scinet.utoronto.ca>; Vivien Clauzon <vivien.clau...@michelin.com>; 
dave.mar...@giref.ulaval.ca; Thomas Briffard <thomas.briff...@michelin.com>
Subject: Re: [OMPI users] MPI I/O, Romio vs Ompio on GPFS


Hi,

just almost found what I wanted with "--mca io_base_verbose 100"

Now I am looking at performances for GPFS and I must say OpenMPI 4.1.2 performs 
very poorly when it comes the time to write.

I am launching a 512 processes, read+compute (ghosts components of a mesh), and 
then later write a 79Gb file.

Here are the timings (all in seconds):

--------------------

IO module ;  reading+ghost computing ; writing

ompio       ;   24.9   ; 2040+ (job got killed before completion)

romio321 ;  20.8    ; 15.6

--------------------

I have run many times the job with Ompio module (the default) and Romio and the 
timings are always similar to those given.

I also activated maximum debug output with " --mca mca_base_verbose 
stdout,level:9  --mca mpi_show_mca_params all --mca io_base_verbose 100" and 
got a few lines but nothing relevant to debug:

Sat Jun 11 20:08:28 2022<stdout>:chrono::ecritMaillageMPI::debut VmSize: 
6530408 VmRSS: 5599604 VmPeak: 7706396 VmData: 5734408 VmHWM: 5699324 <etiq_143>
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] io:base:delete: 
deleting file: resultat01_-2.mail
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] io:base:delete: 
Checking all available modules
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] io:base:delete: 
component available: ompio, priority: 30
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] io:base:delete: 
component available: romio321, priority: 10
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] io:base:delete: 
Selected io component ompio
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] 
io:base:file_select: new file: resultat01_-2.mail
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] 
io:base:file_select: Checking all available modules
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] 
io:base:file_select: component available: ompio, priority: 30
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] 
io:base:file_select: component available: romio321, priority: 10
Sat Jun 11 20:08:28 2022<stdout>:[nia0073.scinet.local:236683] 
io:base:file_select: Selected io module ompio

What else can I do to dig into this?

Are there parameters ompio is aware of with GPFS?

Thanks,

Eric

--

Eric Chamberland, ing., M. Ing

Professionnel de recherche

GIREF/Université Laval

(418) 656-2131 poste 41 22 42
On 2022-06-10 16:23, Eric Chamberland via users wrote:
Hi,

I want to try romio with OpenMPI 4.1.2 because I am observing a big performance 
difference with IntelMPI on GPFS.

I want to see, at *runtime*, all parameters (default values, names) used by MPI 
(at least for the "io" framework).

I would like to have all the same output as "ompi_info --all" gives me...

I have tried this:

mpiexec --mca io romio321  --mca mca_verbose 1  --mca mpi_show_mca_params 1 
--mca io_base_verbose 1 ...

But I cannot see anything about io coming out...

With "ompi_info" I do...

Is it possible?

Thanks,

Eric


--

Eric Chamberland, ing., M. Ing

Professionnel de recherche

GIREF/Université Laval

(418) 656-2131 poste 41 22 42

Reply via email to