[OMPI users] Regarding the usage of MPI-One sided communications in HPC applications
[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
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
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
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.