Christopher,

Building with gnu is a non-starter for us. If we ever encounter an
issue, we can't just point our users to something else as a proposed
fix. There's also technical reasons why this may not work beyond pure
C code. (Fortran and C++ both being special)

Fortran compilers from different vendors do not inter-operate with each other, so your users must use PathScale
compilers so they can build their apps with PathScale Fortran compilers.

i could say something similar with C++ compilers, but i'd have to add
- C++ bindings were deprecated from the MPI Standard
- even if you configure Open MPI with --disable-mpi-cxx, configure will check for a valid C++ compiler (feel free to consider this as an Open MPI bug that will be likely fixed in the future) my point is that if your users do not need MPI C++ bindings, then there is no need to worry about the C++ compiler being used
(as long as Open MPI configure is happy with it)
Boost MPI is deemed as superior to (now deprecated) MPI C++ bindings by many C++ programmers, so this can be a good/better alternative.

imho, Open MPI is a middleware, so this is a bit different than "i cannot build my app with compiler X", especially since there is little or no value (from a performance point of view) to use C compiler X versus GNU C compiler. for example, if i were unable to build the glibc and/or the linux kernel with compiler from vendor X, i would live happily
with using the GNU compilers for that purpose.

as an end user, i would find totally acceptable from PathScale :
- update your glibc (that won't happen, but i cannot blame PathScale for me using an EOL distro) - Open MPI requires a C99 compiler, so it cannot be built with PathScale compilers. this is not a bug, this is a feature. - build Open MPI with GNU C/C++ and Pathscale Fortran compilers (no performance benefit can be expected from using PathScale C/C++ compilers anyway, so mixing compilers is perfectly acceptable) /* of course, i would not accept this answer if i was unable to build my optimized math libs */

on the other hand, i would find more arguable if i had to patch Open MPI.
/* my first impression is that if GNU compilers can build Open MPI, PathScale compilers cannot because they are broken/feature incomplete,
    so the compilers should be fixed, not Open MPI */

anyway, this was just how i was seeing things.

I've not tested the proposed work-around flag and not sure how
reliable it is or the impact. (I'll give it a poke and see what
happens) (Maybe this is the best solution for v2.x+)

let me clarify this, the "--disable-c99" option is just a safety net.
with the first patch you proposed, configure would not abort if the compiler is not C99 capable.
i found that a bit dangerous, so i added this option which basically means
"i (think i) know what i am doing, so let's not abort if the compiler is not C99 capable"

Cheers,

Gilles
_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to