Re: [OMPI users] openmpi 1.10.2 and PGI 15.9

2016-07-25 Thread Gilles Gouaillardet

Michael,


i will followup on that in the devel mailing list.


imho, there are three ways to see this :

1) this is an environment (e.g. user) issue: if you want it to work, 
then slurm should be rebuilt with pgi compiler.


2) this is a libtool issue : it does not support mixing .la files built 
with gcc and pgcc (e.g. -pthread option is unknown by pgcc)


3) this is an other libtool issue : -noswitcherror should be passed by 
libtool to the PGI compiler



Open MPI is not to be blamed here.

that being said, i am pragmatic so i do not mind hacking (one more time 
...) libtool in OpenMPI to fix libtool or even make it PGI/GNU friendly



Cheers,


Gilles


On 7/26/2016 2:52 AM, Michael Di Domenico wrote:

On Mon, Jul 25, 2016 at 4:53 AM, Gilles Gouaillardet  wrote:

as a workaround, you can configure without -noswitcherror.

after you ran configure, you have to manually patch the generated 'libtool'
file and add the line with pgcc*) and the next line like this :

/* if pgcc is used, libtool does *not* pass -pthread to pgcc any more */


# Convert "-framework foo" to "foo.ltframework"
 # and "-pthread" to "-Wl,-pthread" if NAG compiler
 if test -n "$inherited_linker_flags"; then
   case "$CC" in
 nagfor*)
   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
$SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED
's/-pthread/-Wl,-pthread/g'`;;
 pgcc*)
   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
$SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread//g'`;;
 *)
   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
$SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
   esac


i guess the right way is to patch libtool so it passes -noswitcherror to $CC
and/or $LD, but i was not able to achieve that yet.


Thanks.  I managed to work around the issue, by hand compiling the
single module that failed during the build process.  but something is
definitely amiss in the openmpi compile system when it comes to pgi
___
users mailing list
us...@open-mpi.org
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2016/07/29707.php





Re: [OMPI users] openmpi 1.10.2 and PGI 15.9

2016-07-25 Thread Michael Di Domenico
On Mon, Jul 25, 2016 at 4:53 AM, Gilles Gouaillardet  wrote:
>
> as a workaround, you can configure without -noswitcherror.
>
> after you ran configure, you have to manually patch the generated 'libtool'
> file and add the line with pgcc*) and the next line like this :
>
> /* if pgcc is used, libtool does *not* pass -pthread to pgcc any more */
>
>
># Convert "-framework foo" to "foo.ltframework"
> # and "-pthread" to "-Wl,-pthread" if NAG compiler
> if test -n "$inherited_linker_flags"; then
>   case "$CC" in
> nagfor*)
>   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
> $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED
> 's/-pthread/-Wl,-pthread/g'`;;
> pgcc*)
>   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
> $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread//g'`;;
> *)
>   tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" |
> $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;;
>   esac
>
>
> i guess the right way is to patch libtool so it passes -noswitcherror to $CC
> and/or $LD, but i was not able to achieve that yet.


Thanks.  I managed to work around the issue, by hand compiling the
single module that failed during the build process.  but something is
definitely amiss in the openmpi compile system when it comes to pgi


Re: [OMPI users] openmpi 1.10.2 and PGI 15.9

2016-07-25 Thread Gilles Gouaillardet

Michael,


as a workaround, you can configure without -noswitcherror.

after you ran configure, you have to manually patch the generated 
'libtool' file and add the line with pgcc*) and the next line like this :


/* if pgcc is used, libtool does *not* pass -pthread to pgcc any more */


   # Convert "-framework foo" to "foo.ltframework"
# and "-pthread" to "-Wl,-pthread" if NAG compiler
if test -n "$inherited_linker_flags"; then
  case "$CC" in
nagfor*)
  tmp_inherited_linker_flags=`$ECHO 
"$inherited_linker_flags" | $SED 's/-framework \([^ 
$]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;;

pgcc*)
  tmp_inherited_linker_flags=`$ECHO 
"$inherited_linker_flags" | $SED 's/-framework \([^ 
$]*\)/\1.ltframework/g' | $SED 's/-pthread//g'`;;

*)
  tmp_inherited_linker_flags=`$ECHO 
"$inherited_linker_flags" | $SED 's/-framework \([^ 
$]*\)/\1.ltframework/g'`;;

  esac


i guess the right way is to patch libtool so it passes -noswitcherror to 
$CC and/or $LD, but i was not able to achieve that yet.


Cheers,

Gilles

On 7/23/2016 12:31 AM, Michael Di Domenico wrote:

So, the -noswitcherror is partially working.  I added the switch into
my configure line LDFLAGS param.  I can see the parameter being passed
to libtool, but for some reason libtool is refusing to passing it
along at compile.

if i sh -x the libtool command line, i can see it set in a few
variables, but at the end when eval's the compile line for pgcc the
option is missing.

if i cut and past the eval line and hand put it back in, the library
compiles with a pgcc warning instead of an error which i believe what
i want, but i'm not sure why libtool is dropping the switch



On Tue, Jul 19, 2016 at 5:27 AM, Sylvain Jeaugey  wrote:

As a workaround, you can also try adding -noswitcherror to PGCC flags.

On 07/11/2016 03:52 PM, Åke Sandgren wrote:

Looks like you are compiling with slurm support.

If so, you need to remove the "-pthread" from libslurm.la and libpmi.la

On 07/11/2016 02:54 PM, Michael Di Domenico wrote:

I'm trying to get openmpi compiled using the PGI compiler.

the configure goes through and the code starts to compile, but then
gets hung up with

entering: openmpi-1.10.2/opal/mca/common/pmi
CC common_pmi.lo
CCLD libmca_common_pmi.la
pgcc-Error-Unknown switch: - pthread
___
users mailing list
us...@open-mpi.org
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post:
http://www.open-mpi.org/community/lists/users/2016/07/29635.php


---
This email message is for the sole use of the intended recipient(s) and may
contain
confidential information.  Any unauthorized review, use, disclosure or
distribution
is prohibited.  If you are not the intended recipient, please contact the
sender by
reply email and destroy all copies of the original message.
---
___
users mailing list
us...@open-mpi.org
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post:
http://www.open-mpi.org/community/lists/users/2016/07/29692.php

___
users mailing list
us...@open-mpi.org
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2016/07/29702.php




Re: [OMPI users] ompi_info -c does not print configure arguments

2016-07-25 Thread Gilles Gouaillardet

Jeff,


i made https://github.com/open-mpi/ompi/pull/1898 in order to add this 
feature



Cheers,


Gilles


On 7/24/2016 10:13 AM, Gilles Gouaillardet wrote:

Jeff,

currently there is no way to retrieve the configure command line.

I previously discussed this with Jeff S. and it seems autotools do not 
provide a reliable way to retrieve the configure command line.
I will have a look at how mpich is doing it, and try to mimick that in 
ompi.
if there is a consensus an approximation of the configure command line 
is better than nothing, then I will push the changes.


Cheers,

Gilles

On Sunday, July 24, 2016, Jeff Hammond > wrote:


ompi_info -h indicates that -c shows configuration options, ie
configure arguments:

$
/home/projects/x86-64-knl/openmpi/1.10.2/intel/17.0.042/bin/ompi_info
-h

--

The ompi_info command can be used to provide detailed information on

your Open MPI installation.  Syntax:


-a|--all Show all configuration options and MCA
parameters

   -am Aggregate MCA parameter set file list

   --archShow architecture Open MPI was compiled on

-c|--config  Show configuration options



So I expect something like what mpichversion gives me, which I
find incredibly useful:

$ ~/MPICH/install-ch3-ofi-psm2/bin/mpichversion

MPICH Version: 3.2

MPICH Release date:unreleased development copy

MPICH Device: ch3:nemesis

MPICH configure: CC=icc CXX=icpc FC=ifort F77=ifort
--with-ofi=~/OFI/install-psm2 --with-device=ch3:nemesis:ofi
--prefix=~/MPICH/install-ch3-ofi-psm2

MPICH CC: icc-O2

MPICH CXX: icpc   -O2

MPICH F77: ifort   -O2

MPICH FC: ifort   -O2


Unfortunately, I see nothing that is directly convertible to
configure arguments in the following:

$
/home/projects/x86-64-knl/openmpi/1.10.2/intel/17.0.042/bin/ompi_info
-c

   Configured by: XXX

   Configured on: Mon Apr 18 18:47:25 EDT 2016

  Configure host: XXX

Built by: XXX

Built on: Mon Apr 18 19:16:55 EDT 2016

  Built host: XXX

  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


/home/projects/x86-64-knl/intel/compilers/2017-beta/compilers_and_libraries_2017.0.042/linux/bin/intel64/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: yes

  Wrapper compiler rpath: runpath

  C compiler:

/home/projects/x86-64-knl/intel/compilers/2017-beta/compilers_and_libraries_2017.0.042/linux/bin/intel64/icc

 C compiler absolute:

  C compiler family name: INTEL

  C compiler version: 1700.20160315

 C char size: 1

 C bool size: 1

C short size: 2

  C int size: 4

 C long size: 8

C float size: 4

   C double size: 8

  C pointer size: 8

C char align: 1

C bool align: 1

 C int align: 4

   C float align: 4

  C double align: 8

C++ compiler:

/home/projects/x86-64-knl/intel/compilers/2017-beta/compilers_and_libraries_2017.0.042/linux/bin/intel64/icpc

   C++ compiler absolute: none

   Fort compiler:

/home/projects/x86-64-knl/intel/compilers/2017-beta/compilers_and_libraries_2017.0.042/linux/bin/intel64/ifort

   Fort compiler abs:

 Fort ignore TKR: yes (!DEC$ ATTRIBUTES NO_ARG_CHECK ::)

   Fort 08 assumed shape: yes

  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 USE...ONLY: yes

   Fort C_FUNLOC: yes

 Fort f08 using wrappers: yes

 Fort MPI_SIZEOF: yes

   Fort integer size: 4