<mandatory Fortran notice>

Stop using mpif.h.

Upgrading to use the "mpi" module is a very simple upgrade, and gives you at 
least some measure of type safety and argument checking (e.g., it would have 
failed to compile with that missing ierror argument).

If you have a modern enough Fortran compiler (e.g., gfortran >= 4.9 or any 
recent ifort or ...), you can upgrade to use the "mpi_f08" module, which gives 
much better type safety and argument checking than the "mpi" module.  There's a 
bit of work involved to upgrade your code from mpif.h->mpi_f08, but it'll be 
well worth it.

</mandatory Fortran notice>


> On Apr 15, 2015, at 2:32 AM, MOHR STEPHAN 239883 <stephan.m...@cea.fr> wrote:
> 
> Hi George,
> 
> I think you forgot the ierror argument in the call to mpi_irecv, but after 
> correcting this it works fine. Thanks a lot for pointing out the issue of the 
> eager limit!
> 
> But as you said, this does not directly solve my one-sided problem...
> 
> Thanks,
> Stephan
> From: users [users-boun...@open-mpi.org] on behalf of George Bosilca 
> [bosi...@icl.utk.edu]
> Sent: Tuesday, April 14, 2015 17:49
> To: Open MPI Users
> Subject: Re: [OMPI users] mpi_type_create_struct not working for large counts
> 
> This is one of the most classical bugs with point-to-point applications. 
> Sends behave as non blocking as long as the amount of data is below the eager 
> limit. Once the eager limit is passed, sends have a blocking behavior which 
> requires that the peer has a posted receive. This explains why it is working 
> for 100 but not for 1000.
> 
> The correct application is attached below. This doesn’t validate the 
> one-sided run thou.
> 
>   George.
> 
> 
> > On Apr 14, 2015, at 11:07 , MOHR STEPHAN 239883 <stephan.m...@cea.fr> wrote:
> > 
> > Hi Nathan,
> > 
> > I tried with send/recv, but the outcome is the same. It works for small 
> > counts (e.g. n=100), but hangs for larger ones (e.g. n=1000).
> > I attached my modified program.
> > 
> > Thanks,
> > Stephan
> > ________________________________________
> > From: users [users-boun...@open-mpi.org] on behalf of Nathan Hjelm 
> > [hje...@lanl.gov]
> > Sent: Tuesday, April 14, 2015 16:44
> > To: Open MPI Users
> > Subject: Re: [OMPI users] mpi_type_create_struct not working for large 
> > counts
> > 
> > Can you try using send/recv with the datatype in question? It could be a
> > problem with either the one-sided code or the datatype code. Could you
> > also give master a try?
> > 
> > -Nathan
> > 
> > On Tue, Apr 14, 2015 at 06:43:31AM +0000, MOHR STEPHAN 239883 wrote:
> >>   Hi Howard,
> >> 
> >>   I tried with 1.8.5rc1, but it doesn't work either.
> >> 
> >>   The output of ompi_info is attached.
> >> 
> >>   Thanks,
> >>   Stephan
> >> 
> >>     ----------------------------------------------------------------------
> >> 
> >>   From: users [users-boun...@open-mpi.org] on behalf of Howard Pritchard
> >>   [hpprit...@gmail.com]
> >>   Sent: Monday, April 13, 2015 19:41
> >>   To: Open MPI Users
> >>   Subject: Re: [OMPI users] mpi_type_create_struct not working for large
> >>   counts
> >>   HI Stephan,
> >>   For starters, would you mind sending the output you get when you run the
> >>   ompi_info command?
> >>   If you could, it would be great if you could try running the test against
> >>   the latest 1.8.5rc1?
> >>   The test appears to work without problem using mpich, at least with 4
> >>   ranks.
> >>   Thanks,
> >>   Howard
> >>   2015-04-13 10:40 GMT-06:00 MOHR STEPHAN 239883 <stephan.m...@cea.fr>:
> >> 
> >>     Hi there,
> >> 
> >>     I've got an issue when using a derived data type created by
> >>     mpi_type_create_struct in a one-sided communication.
> >> 
> >>     The problem can be reproduced using the small standalone program which 
> >> I
> >>     attached. It just creates a type which should be equivalent to n
> >>     contiguous elements. This type is then used in a mpi_get. With a value
> >>     n=100 it works fine, but with n=1000 it either hangs (version 1.8.1) or
> >>     crashes (version 1.6.5).
> >> 
> >>     Any help is appreciated.
> >> 
> >>     Best regards,
> >>     Stephan
> >>     _______________________________________________
> >>     users mailing list
> >>     us...@open-mpi.org
> >>     Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> >>     Link to this post:
> >>     http://www.open-mpi.org/community/lists/users/2015/04/26695.php
> > 
> >>                 Package: Open MPI stephanm@girofle Distribution
> >>                Open MPI: 1.8.5rc1
> >>  Open MPI repo revision: v1.8.4-184-g481d751
> >>   Open MPI release date: Apr 05, 2015
> >>                Open RTE: 1.8.5rc1
> >>  Open RTE repo revision: v1.8.4-184-g481d751
> >>   Open RTE release date: Apr 05, 2015
> >>                    OPAL: 1.8.5rc1
> >>      OPAL repo revision: v1.8.4-184-g481d751
> >>       OPAL release date: Apr 05, 2015
> >>                 MPI API: 3.0
> >>            Ident string: 1.8.5rc1
> >>                  Prefix: /local/stephanm/openmpi-1.8.5rc1_intel
> >> Configured architecture: x86_64-unknown-linux-gnu
> >>          Configure host: girofle
> >>           Configured by: stephanm
> >>           Configured on: Tue Apr 14 07:32:10 CEST 2015
> >>          Configure host: girofle
> >>                Built by: stephanm
> >>                Built on: Tue Apr 14 08:05:43 CEST 2015
> >>              Built host: girofle
> >>              C bindings: yes
> >>            C++ bindings: yes
> >>             Fort mpif.h: yes (all)
> >>            Fort use mpi: yes (full: ignore TKR)
> >>       Fort use mpi size: deprecated-ompi-info-value
> >>        Fort use mpi_f08: yes
> >> Fort mpi_f08 compliance: The mpi_f08 module is available, but due to 
> >> limitations in the ifort compiler, does not support the following: array 
> >> subsections, direct passthru (where possible) to underlying Open MPI's C 
> >> functionality
> >>  Fort mpi_f08 subarrays: no
> >>           Java bindings: no
> >>  Wrapper compiler rpath: runpath
> >>              C compiler: icc
> >>     C compiler absolute: 
> >> /local/stephanm/composer_xe_2013_sp1.0.080/bin/intel64/icc
> >>  C compiler family name: INTEL
> >>      C compiler version: 1400.20130728
> >>            C++ compiler: icpc
> >>   C++ compiler absolute: 
> >> /local/stephanm/composer_xe_2013_sp1.0.080/bin/intel64/icpc
> >>           Fort compiler: ifort
> >>       Fort compiler abs: 
> >> /local/stephanm/composer_xe_2013_sp1.0.080/bin/intel64/ifort
> >>         Fort ignore TKR: yes (!DEC$ ATTRIBUTES NO_ARG_CHECK ::)
> >>   Fort 08 assumed shape: no
> >>      Fort optional args: yes
> >>          Fort INTERFACE: yes
> >>    Fort ISO_FORTRAN_ENV: yes
> >>       Fort STORAGE_SIZE: yes
> >>      Fort BIND(C) (all): yes
> >>      Fort ISO_C_BINDING: yes
> >> Fort SUBROUTINE BIND(C): yes
> >>       Fort TYPE,BIND(C): yes
> >> Fort T,BIND(C,name="a"): yes
> >>            Fort PRIVATE: yes
> >>          Fort PROTECTED: yes
> >>           Fort ABSTRACT: yes
> >>       Fort ASYNCHRONOUS: yes
> >>          Fort PROCEDURE: yes
> >>           Fort C_FUNLOC: yes
> >> Fort f08 using wrappers: yes
> >>         Fort MPI_SIZEOF: yes
> >>             C profiling: yes
> >>           C++ profiling: yes
> >>   Fort mpif.h profiling: yes
> >>  Fort use mpi profiling: yes
> >>   Fort use mpi_f08 prof: yes
> >>          C++ exceptions: no
> >>          Thread support: posix (MPI_THREAD_MULTIPLE: no, OPAL support: 
> >> yes, OMPI progress: no, ORTE progress: yes, Event lib: yes)
> >>           Sparse Groups: no
> >>  Internal debug support: no
> >>  MPI interface warnings: yes
> >>     MPI parameter check: runtime
> >> Memory profiling support: no
> >> Memory debugging support: no
> >>         libltdl support: yes
> >>   Heterogeneous support: no
> >> mpirun default --prefix: no
> >>         MPI I/O support: yes
> >>       MPI_WTIME support: gettimeofday
> >>     Symbol vis. support: yes
> >>   Host topology support: yes
> >>          MPI extensions:
> >>   FT Checkpoint support: no (checkpoint thread: no)
> >>   C/R Enabled Debugging: no
> >>     VampirTrace support: yes
> >>  MPI_MAX_PROCESSOR_NAME: 256
> >>    MPI_MAX_ERROR_STRING: 256
> >>     MPI_MAX_OBJECT_NAME: 64
> >>        MPI_MAX_INFO_KEY: 36
> >>        MPI_MAX_INFO_VAL: 256
> >>       MPI_MAX_PORT_NAME: 1024
> >>  MPI_MAX_DATAREP_STRING: 128
> >>           MCA backtrace: execinfo (MCA v2.0, API v2.0, Component v1.8.5)
> >>            MCA compress: bzip (MCA v2.0, API v2.0, Component v1.8.5)
> >>            MCA compress: gzip (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA crs: none (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA db: hash (MCA v2.0, API v1.0, Component v1.8.5)
> >>                  MCA db: print (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA event: libevent2021 (MCA v2.0, API v2.0, Component 
> >> v1.8.5)
> >>               MCA hwloc: hwloc191 (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA if: posix_ipv4 (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA if: linux_ipv6 (MCA v2.0, API v2.0, Component v1.8.5)
> >>         MCA installdirs: env (MCA v2.0, API v2.0, Component v1.8.5)
> >>         MCA installdirs: config (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA memory: linux (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA pstat: linux (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA sec: basic (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA shmem: mmap (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA shmem: posix (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA shmem: sysv (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA timer: linux (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA dfs: app (MCA v2.0, API v1.0, Component v1.8.5)
> >>                 MCA dfs: orted (MCA v2.0, API v1.0, Component v1.8.5)
> >>                 MCA dfs: test (MCA v2.0, API v1.0, Component v1.8.5)
> >>              MCA errmgr: default_app (MCA v2.0, API v3.0, Component v1.8.5)
> >>              MCA errmgr: default_hnp (MCA v2.0, API v3.0, Component v1.8.5)
> >>              MCA errmgr: default_orted (MCA v2.0, API v3.0, Component 
> >> v1.8.5)
> >>              MCA errmgr: default_tool (MCA v2.0, API v3.0, Component 
> >> v1.8.5)
> >>                 MCA ess: env (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA ess: hnp (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA ess: singleton (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA ess: slurm (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA ess: tool (MCA v2.0, API v3.0, Component v1.8.5)
> >>               MCA filem: raw (MCA v2.0, API v2.0, Component v1.8.5)
> >>             MCA grpcomm: bad (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA iof: hnp (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA iof: mr_hnp (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA iof: mr_orted (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA iof: orted (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA iof: tool (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA odls: default (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA oob: tcp (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA plm: isolated (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA plm: rsh (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA plm: slurm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA ras: loadleveler (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA ras: simulator (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA ras: slurm (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: lama (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: mindist (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: ppr (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: rank_file (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: resilient (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: round_robin (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: seq (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA rmaps: staged (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA rml: oob (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA routed: binomial (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA routed: debruijn (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA routed: direct (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA routed: radix (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA state: app (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA state: hnp (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA state: novm (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA state: orted (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA state: staged_hnp (MCA v2.0, API v1.0, Component v1.8.5)
> >>               MCA state: staged_orted (MCA v2.0, API v1.0, Component 
> >> v1.8.5)
> >>               MCA state: tool (MCA v2.0, API v1.0, Component v1.8.5)
> >>           MCA allocator: basic (MCA v2.0, API v2.0, Component v1.8.5)
> >>           MCA allocator: bucket (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA bcol: basesmuma (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA bcol: ptpcoll (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA bml: r2 (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA btl: openib (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA btl: self (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA btl: sm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA btl: tcp (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA btl: vader (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: basic (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: hierarch (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: inter (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: libnbc (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: ml (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: self (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: sm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA coll: tuned (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA dpm: orte (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA fbtl: posix (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA fcoll: dynamic (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA fcoll: individual (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA fcoll: static (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA fcoll: two_phase (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA fcoll: ylib (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA fs: ufs (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA io: ompio (MCA v2.0, API v2.0, Component v1.8.5)
> >>                  MCA io: romio (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA mpool: grdma (MCA v2.0, API v2.0, Component v1.8.5)
> >>               MCA mpool: sm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA osc: rdma (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA osc: sm (MCA v2.0, API v3.0, Component v1.8.5)
> >>                 MCA pml: v (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA pml: bfo (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA pml: cm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA pml: ob1 (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA pubsub: orte (MCA v2.0, API v2.0, Component v1.8.5)
> >>              MCA rcache: vma (MCA v2.0, API v2.0, Component v1.8.5)
> >>                 MCA rte: orte (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA sbgp: basesmsocket (MCA v2.0, API v2.0, Component 
> >> v1.8.5)
> >>                MCA sbgp: basesmuma (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA sbgp: p2p (MCA v2.0, API v2.0, Component v1.8.5)
> >>            MCA sharedfp: individual (MCA v2.0, API v2.0, Component v1.8.5)
> >>            MCA sharedfp: lockedfile (MCA v2.0, API v2.0, Component v1.8.5)
> >>            MCA sharedfp: sm (MCA v2.0, API v2.0, Component v1.8.5)
> >>                MCA topo: basic (MCA v2.0, API v2.1, Component v1.8.5)
> >>           MCA vprotocol: pessimist (MCA v2.0, API v2.0, Component v1.8.5)
> > 
> >> _______________________________________________
> >> users mailing list
> >> us...@open-mpi.org
> >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> >> Link to this post: 
> >> http://www.open-mpi.org/community/lists/users/2015/04/26713.php
> > 
> > <test_mpi_sendrecv.f90>_______________________________________________
> > users mailing list
> > us...@open-mpi.org
> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> > Link to this post: 
> > http://www.open-mpi.org/community/lists/users/2015/04/26720.php
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2015/04/26721.php
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post: 
> http://www.open-mpi.org/community/lists/users/2015/04/26733.php


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to