Tobias,

Fwiw, MPI_Comm_compare can be used to compare communicators.
Hopefully, this is also compiler friendly.

Cheers,

Gilles

On Tuesday, October 20, 2015, Tobias Hilbrich <tobias.hilbr...@tu-dresden.de>
wrote:

> Hi all,
>
> a wonderful puzzle for the OSX folks in your team (Reproducer attached):
>
> Attached source file builds with Xcode 7.0.0, but fails since the release
> of Xcode 7.0.1. I post it here since it results from an "if (MPI_COMM_NULL
> == MPI_COMM_SELF)". I am actually curious whether this is somehow off by
> itself, or whether it has something to do with how you define these
> constants. Overall, the situation is that this worked with previous clang
> compilers (and that it again works for more recent versions from
> mac-ports), so likely not your fault at all.
>
> The issue I get is:
> $ mpicc osx-10.10.5-xcode-7.0.1-openmpi-problem.c
> clang: error: unable to execute command: Segmentation fault: 11
> clang: error: clang frontend command failed due to signal (use -v to see
> invocation)
> Apple LLVM version 7.0.0 (clang-700.0.72)
> Target: x86_64-apple-darwin14.5.0
> Thread model: posix
> clang: note: diagnostic msg: PLEASE submit a bug report to
> http://developer.apple.com/bugreporter/ and include the crash backtrace,
> preprocessed source, and associated run script.
> clang: note: diagnostic msg:
> ********************
> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> ...
> ********************
>
> As I said above the culprit is "if (MPI_COMM_NULL == MPI_COMM_SELF)".
> Also, this doesn't works either:
> -  "if (MPI_COMM_SELF == MPI_COMM_NULL)"
> But then, these work:
> -  "if (MPI_COMM_SELF == MPI_COMM_WORLD)"
> -  "if (MPI_COMM_WORLD == MPI_COMM_SELF)"
>
> So it appears it has something to do with MPI_COMM_NULL specifically.
>
> Maybe you already know of the issue. Maybe you can provide something to
> alleviate this issue in your releases, since it may take a while until we
> get a newer Xcode version on most OSX'es.
>
> My "ompi_info" is at the bottom of the mail.
>
> With that thanks for your looking into this, and many thanks for your
> wonderful MPI implementation,
> -Tobias
>
> $ ompi_info
>                Package: Open MPI saibot@Tobiass-MacBook-Pro.local
>                         Distribution
>               Open MPI: 1.8.4
> Open MPI repo revision: v1.8.3-330-g0344f04
>  Open MPI release date: Dec 19, 2014
>               Open RTE: 1.8.4
> Open RTE repo revision: v1.8.3-330-g0344f04
>  Open RTE release date: Dec 19, 2014
>                   OPAL: 1.8.4
>     OPAL repo revision: v1.8.3-330-g0344f04
>      OPAL release date: Dec 19, 2014
>                MPI API: 3.0
>           Ident string: 1.8.4
>                 Prefix: /Users/saibot/local/openmpi-1.8.4
> Configured architecture: x86_64-apple-darwin14.0.0
>         Configure host: Tobiass-MacBook-Pro.local
>          Configured by: saibot
>          Configured on: Sun Jan  4 09:27:07 CET 2015
>         Configure host: Tobiass-MacBook-Pro.local
>               Built by: saibot
>               Built on: Sun Jan  4 09:33:26 CET 2015
>             Built host: Tobiass-MacBook-Pro.local
>             C bindings: yes
>           C++ bindings: yes
>            Fort mpif.h: no
>           Fort use mpi: no
>      Fort use mpi size: deprecated-ompi-info-value
>       Fort use mpi_f08: no
> Fort mpi_f08 compliance: The mpi_f08 module was not built
> Fort mpi_f08 subarrays: no
>          Java bindings: no
> Wrapper compiler rpath: unnecessary
>             C compiler: gcc
>    C compiler absolute: /usr/bin/gcc
> C compiler family name: GNU
>     C compiler version: 4.2.1
>           C++ compiler: g++
>  C++ compiler absolute: /usr/bin/g++
>          Fort compiler: none
>      Fort compiler abs: none
>        Fort ignore TKR: no
>  Fort 08 assumed shape: no
>     Fort optional args: no
>         Fort INTERFACE: no
>   Fort ISO_FORTRAN_ENV: no
>      Fort STORAGE_SIZE: no
>     Fort BIND(C) (all): no
>     Fort ISO_C_BINDING: no
> Fort SUBROUTINE BIND(C): no
>      Fort TYPE,BIND(C): no
> Fort T,BIND(C,name="a"): no
>           Fort PRIVATE: no
>         Fort PROTECTED: no
>          Fort ABSTRACT: no
>      Fort ASYNCHRONOUS: no
>         Fort PROCEDURE: no
>          Fort C_FUNLOC: no
> Fort f08 using wrappers: no
>        Fort MPI_SIZEOF: no
>            C profiling: yes
>          C++ profiling: yes
>  Fort mpif.h profiling: no
> Fort use mpi profiling: no
>  Fort use mpi_f08 prof: no
>         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.4)
>           MCA compress: bzip (MCA v2.0, API v2.0, Component v1.8.4)
>           MCA compress: gzip (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA crs: none (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA db: hash (MCA v2.0, API v1.0, Component v1.8.4)
>                 MCA db: print (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA event: libevent2021 (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA hwloc: hwloc191 (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA if: bsdx_ipv6 (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA if: posix_ipv4 (MCA v2.0, API v2.0, Component v1.8.4)
>        MCA installdirs: env (MCA v2.0, API v2.0, Component v1.8.4)
>        MCA installdirs: config (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA pstat: test (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA sec: basic (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA shmem: mmap (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA shmem: posix (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA shmem: sysv (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA timer: darwin (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA dfs: app (MCA v2.0, API v1.0, Component v1.8.4)
>                MCA dfs: orted (MCA v2.0, API v1.0, Component v1.8.4)
>                MCA dfs: test (MCA v2.0, API v1.0, Component v1.8.4)
>             MCA errmgr: default_app (MCA v2.0, API v3.0, Component v1.8.4)
>             MCA errmgr: default_hnp (MCA v2.0, API v3.0, Component v1.8.4)
>             MCA errmgr: default_orted (MCA v2.0, API v3.0, Component
>                         v1.8.4)
>             MCA errmgr: default_tool (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA ess: env (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA ess: hnp (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA ess: singleton (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA ess: slurm (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA ess: tool (MCA v2.0, API v3.0, Component v1.8.4)
>              MCA filem: raw (MCA v2.0, API v2.0, Component v1.8.4)
>            MCA grpcomm: bad (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA iof: hnp (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA iof: mr_hnp (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA iof: mr_orted (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA iof: orted (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA iof: tool (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA odls: default (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA oob: tcp (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA plm: isolated (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA plm: rsh (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA plm: slurm (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA ras: simulator (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA ras: slurm (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: lama (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: mindist (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: ppr (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: rank_file (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: resilient (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: round_robin (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: seq (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA rmaps: staged (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA rml: oob (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA routed: binomial (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA routed: debruijn (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA routed: direct (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA routed: radix (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA state: app (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: hnp (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: novm (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: orted (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: staged_hnp (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: staged_orted (MCA v2.0, API v1.0, Component v1.8.4)
>              MCA state: tool (MCA v2.0, API v1.0, Component v1.8.4)
>          MCA allocator: basic (MCA v2.0, API v2.0, Component v1.8.4)
>          MCA allocator: bucket (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA bcol: basesmuma (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA bcol: ptpcoll (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA bml: r2 (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA btl: self (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA btl: sm (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA btl: tcp (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA btl: vader (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: basic (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: hierarch (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: inter (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: libnbc (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: ml (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: self (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: sm (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA coll: tuned (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA dpm: orte (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA fbtl: posix (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA fcoll: dynamic (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA fcoll: individual (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA fcoll: static (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA fcoll: two_phase (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA fcoll: ylib (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA fs: ufs (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA io: ompio (MCA v2.0, API v2.0, Component v1.8.4)
>                 MCA io: romio (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA mpool: grdma (MCA v2.0, API v2.0, Component v1.8.4)
>              MCA mpool: sm (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA osc: rdma (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA osc: sm (MCA v2.0, API v3.0, Component v1.8.4)
>                MCA pml: v (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA pml: bfo (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA pml: cm (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA pml: ob1 (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA pubsub: orte (MCA v2.0, API v2.0, Component v1.8.4)
>             MCA rcache: vma (MCA v2.0, API v2.0, Component v1.8.4)
>                MCA rte: orte (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA sbgp: basesmsocket (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA sbgp: basesmuma (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA sbgp: p2p (MCA v2.0, API v2.0, Component v1.8.4)
>           MCA sharedfp: individual (MCA v2.0, API v2.0, Component v1.8.4)
>           MCA sharedfp: lockedfile (MCA v2.0, API v2.0, Component v1.8.4)
>           MCA sharedfp: sm (MCA v2.0, API v2.0, Component v1.8.4)
>               MCA topo: basic (MCA v2.0, API v2.1, Component v1.8.4)
>          MCA vprotocol: pessimist (MCA v2.0, API v2.0, Component v1.8.4)
>
>
>
>

Reply via email to