[OMPI users] Regarding the usage of MPI-One sided communications in HPC applications

2025-01-17 Thread 'Chandran, Arun' via Open MPI users
[Public]

Hi Experts,

I am trying to understand the usage of MPI's one-sided communication in HPC 
applications.

This research paper ( 
https://icl.utk.edu/publications/international-survey-mpi-users ) said it's 
popularity is behind  collectives, and point-to-point APIs.
Given the advantages over the two-sided communication, one-sided communication 
should have gained popularity, right?

I tried to search the codebase of:


  1.  NWCHEM (https://github.com/nwchemgit/nwchem)
  2.  WRF(https://github.com/wrf-model/WRF)
  3.  Quantum Espresso(https://github.com/QEF/q-e)
  4.  GROMACS (https://github.com/gromacs/gromacs)

But did not hit any result for the search string 'MPI_Win'. Do these 
applications use one-sided MPI_Get() and MPI_Put() via some other mechanism?

Can someone please comment about the usage of one-sided communication in HPC 
applications? Are there any real-world applications using it?

--Arun

To unsubscribe from this group and stop receiving emails from it, send an email 
to users+unsubscr...@lists.open-mpi.org.


Re: [OMPI users] Regarding the usage of MPI-One sided communications in HPC applications

2025-01-17 Thread Gilles Gouaillardet
It seems you understand the advantages of one-sided communications over the
other flavors, but did you carefully consider their drawbacks before
concluding they "should have gain popularity"?


Cheers,


Gilles

On Fri, Jan 17, 2025, 21:24 'Chandran, Arun' via Open MPI users <
users@lists.open-mpi.org> wrote:

> [Public]
>
> Hi Experts,
>
>
>
> I am trying to understand the usage of MPI’s one-sided communication in
> HPC applications.
>
>
>
> This research paper (
> https://icl.utk.edu/publications/international-survey-mpi-users ) said
> it’s popularity is behind  collectives, and point-to-point APIs.
>
> Given the advantages over the two-sided communication, one-sided
> communication should have gained popularity, right?
>
>
>
> I tried to search the codebase of:
>
>
>
>1. NWCHEM (https://github.com/nwchemgit/nwchem)
>2. WRF(https://github.com/wrf-model/WRF)
>3. Quantum Espresso(https://github.com/QEF/q-e)
>4. GROMACS (https://github.com/gromacs/gromacs)
>
>
>
> But did not hit any result for the search string ‘MPI_Win’. Do these
> applications use one-sided MPI_Get() and MPI_Put() via some other mechanism?
>
>
>
> Can someone please comment about the usage of one-sided communication in
> HPC applications? Are there any real-world applications using it?
>
> --Arun
>
> To unsubscribe from this group and stop receiving emails from it, send an
> email to users+unsubscr...@lists.open-mpi.org.
>

To unsubscribe from this group and stop receiving emails from it, send an email 
to users+unsubscr...@lists.open-mpi.org.


Re: [OMPI users] Regarding the usage of MPI-One sided communications in HPC applications

2025-01-17 Thread Alfio Lazzaro
One-sided communications are used in CP2K via the DBCSR library. See
https://github.com/cp2k/dbcsr.
The algorithm itself was described in

https://arxiv.org/abs/1705.10218

In some cases, the one-sided communications are quite handy in terms of
implementation (DBCSR does matrix multiplications). However, the
performance really depends on the MPI implementation support.

Il giorno ven 17 gen 2025 alle ore 13:24 'Chandran, Arun' via Open MPI
users  ha scritto:

> [Public]
>
> Hi Experts,
>
>
>
> I am trying to understand the usage of MPI’s one-sided communication in
> HPC applications.
>
>
>
> This research paper (
> https://icl.utk.edu/publications/international-survey-mpi-users ) said
> it’s popularity is behind  collectives, and point-to-point APIs.
>
> Given the advantages over the two-sided communication, one-sided
> communication should have gained popularity, right?
>
>
>
> I tried to search the codebase of:
>
>
>
>1. NWCHEM (https://github.com/nwchemgit/nwchem)
>2. WRF(https://github.com/wrf-model/WRF)
>3. Quantum Espresso(https://github.com/QEF/q-e)
>4. GROMACS (https://github.com/gromacs/gromacs)
>
>
>
> But did not hit any result for the search string ‘MPI_Win’. Do these
> applications use one-sided MPI_Get() and MPI_Put() via some other mechanism?
>
>
>
> Can someone please comment about the usage of one-sided communication in
> HPC applications? Are there any real-world applications using it?
>
> --Arun
>
> To unsubscribe from this group and stop receiving emails from it, send an
> email to users+unsubscr...@lists.open-mpi.org.
>


-- 
Alfio Lazzaro

To unsubscribe from this group and stop receiving emails from it, send an email 
to users+unsubscr...@lists.open-mpi.org.


Re: [OMPI users] Regarding the usage of MPI-One sided communications in HPC applications

2025-01-17 Thread 'Joseph Schuchart' via Open MPI users

Hi Arun,

The strength of RMA (low synchronization overhead) is also its main 
weakness (lack of synchronization). It's easy to move data between 
processes but hard to get the synchronization right so that processes 
read the right data. RMA has yet to find a good solution to the 
synchronization problem (and in my book bulk synchronization is not 
"good"). P2P does a pretty fine job at that, supported by hardware, and 
most classes of applications simply don't need the flexibility in 
communication pattern RMA would provide.


Collective operations can be fairly well optimized and almost certainly 
perform better at scale than an equivalent written out in RMA (e.g., 
Broadcast can be implemented in log(N) steps vs every issuing a GET from 
the root process).


Add to that the fact that MPI RMA was for the longest time not well 
supported by implementations (buggy & bad performance) so those who 
tried probably threw in the towel at some point. The UCX backend in OMPI 
has seen quite some improvements in the last year or two but people are 
hesitant to invest resources porting applications.


The MPI RMA-WG started gathering some application examples a while back 
and we are definitely interested in more. Here are two examples that we 
know of:


- NWCHEM via ARMCI (https://github.com/pmodels/armci-mpi/)
- MURPHY (https://www.murphy-code.dev/)

UPC++ can run over MPI RMA but certainly favors GASnet. You can also 
look at use cases for OpenSHMEM and NvSHMEM, which have somewhat 
different synchronization models but are similar at heart.


Hope that helps,
Joseph


On 1/17/25 07:24, 'Chandran, Arun' via Open MPI users wrote:


[Public]


Hi Experts,

I am trying to understand the usage of MPI’s one-sided communication 
in HPC applications.


This research paper ( 
https://icl.utk.edu/publications/international-survey-mpi-users ) said 
it’s popularity is behind  collectives, and point-to-point APIs.


Given the advantages over the two-sided communication, one-sided 
communication should have gained popularity, right?


I tried to search the codebase of:

 1. NWCHEM (https://github.com/nwchemgit/nwchem)
 2. WRF(https://github.com/wrf-model/WRF)
 3. Quantum Espresso(https://github.com/QEF/q-e)
 4. GROMACS (https://github.com/gromacs/gromacs)

But did not hit any result for the search string ‘MPI_Win’. Do these 
applications use one-sided MPI_Get() and MPI_Put() via some other 
mechanism?


Can someone please comment about the usage of one-sided communication 
in HPC applications? Are there any real-world applications using it?


--Arun

To unsubscribe from this group and stop receiving emails from it, send 
an email to users+unsubscr...@lists.open-mpi.org.


To unsubscribe from this group and stop receiving emails from it, send an email 
to users+unsubscr...@lists.open-mpi.org.