Matt,
Thank you so much! I think you might have cracked the case for me. Yes,
I'm on Linux, and I just looked up siterc and userrc files in the PGI
userguide. I think I'm going to start with a userrc file, since I prefer
to minimize customization as much as possible, and to test without
affecting other users. I have run into other issues with PGI, too, after
fixing the -pthread issue, which I'll bring up in a separate email.
Prentice
On 04/03/2017 06:24 PM, Matt Thompson wrote:
Coming in near the end here. I've had "fun" with PGI + Open MPI +
macOS (and still haven't quite solved it, see:
https://www.mail-archive.com/users@lists.open-mpi.org//msg30865.html,
still unanswered!) The solution that PGI gave me, and which seems the
magic sauce on macOS is to use a siterc file
(http://www.pgroup.com/userforum/viewtopic.php?p=21105#21105):
=================================
siterc for gcc commands PGI does not support
=================================
switch -ffast-math is hide;
switch -pipe is hide;
switch -fexpensive-optimizations is hide;
switch -pthread is
append(LDLIB1= -lpthread);
switch -qversion is
early
help(Display compiler version)
helpgroup(overall)
set(VERSION=YES);
switch -Wno-deprecated-declarations is hide;
switch -flat_namespace is hide;
====================================
If you use that, -pthread is "rerouted" to append -lpthread. You might
try that and see if that helps. Since you are on Linux (I assume?),
then you should be able to proceed as you shouldn't encounter the
libtool bug/issue/*shrug* that is breaking macOS use.
On Mon, Apr 3, 2017 at 5:14 PM, Reuti <re...@staff.uni-marburg.de
<mailto:re...@staff.uni-marburg.de>> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am 03.04.2017 um 23:07 schrieb Prentice Bisbal:
> FYI - the proposed 'here-doc' solution below didn't work for me,
it produced an error. Neither did printf. When I used printf, only
the first arg was passed along:
>
> #!/bin/bash
>
> realcmd=/usr/pppl/pgi/17.3/linux86-64/17.3/bin/pgcc.real
> echo "original args: $@"
> newargs=$(printf -- "$@" | sed s/-pthread//g)
The format string is missing:
printf "%s " "$@"
> echo "new args: $newargs"
> #$realcmd $newargs
> exit
>
> $ pgcc -tp=x64 -fast conftest.c
> original args: -tp=x64 -fast conftest.c
> new args: -tp=x64
>
> Any ideas what I might be doing wrong here?
>
> So, my original echo "" "$@" solution works, and another
colleague also suggested this expressions, which appears to work, too:
>
> newargs=${@/-pthread/}
>
> Although I don't know how portable that is. I'm guessing that's
very bash-specific syntax.
>
> Prentice
>
> On 04/03/2017 04:26 PM, Prentice Bisbal wrote:
>> A coworker came up with another idea that works, too:
>>
>> newargs=sed s/-pthread//g <<EOF
>> $@
>> EOF
>>
>> That should work, too, but I haven't test it.
>>
>> Prentice
>>
>> On 04/03/2017 04:11 PM, Andy Riebs wrote:
>>> Try
>>> $ printf -- "-E" ...
>>>
>>> On 04/03/2017 04:03 PM, Prentice Bisbal wrote:
>>>> Okay. the additional -E doesn't work,either. :(
>>>>
>>>> Prentice Bisbal Lead Software Engineer Princeton Plasma
Physics Laboratory http://www.pppl.gov
>>>> On 04/03/2017 04:01 PM, Prentice Bisbal wrote:
>>>>> Nevermind. A coworker helped me figure this one out. Echo is
treating the '-E' as an argument to echo and interpreting it
instead of passing it to sed. Since that's used by the configure
tests, that's a bit of a problem, Just adding another -E before
$@, should fix the problem.
>>>>>
>>>>> Prentice
>>>>>
>>>>> On 04/03/2017 03:54 PM, Prentice Bisbal wrote:
>>>>>> I've decided to work around this problem by creating a
wrapper script for pgcc that strips away the -pthread argument,
but my sed expression works on the command-line, but not in the
script. I'm essentially reproducing the workaround from
https://www.open-mpi.org/community/lists/users/2009/04/8724.php
<https://www.open-mpi.org/community/lists/users/2009/04/8724.php>.
>>>>>>
>>>>>> Can anyone see what's wrong with my implementation the
workaround? It's a very simple sed expression. Here's my script:
>>>>>>
>>>>>> #!/bin/bash
>>>>>>
>>>>>> realcmd=/path/to/pgcc
>>>>>> echo "original args: $@"
>>>>>> newargs=$(echo "$@" | sed s/-pthread//)
>>>>>> echo "new args: $newargs"
>>>>>> #$realcmd $newargs
>>>>>> exit
>>>>>>
>>>>>> And here's what happens when I run it:
>>>>>>
>>>>>> /path/to/pgcc -E conftest.c
>>>>>> original args: -E conftest.c
>>>>>> new args: conftest.c
>>>>>>
>>>>>> As you can see, the -E argument is getting lost in
translation. If I add more arguments, it works fine:
>>>>>>
>>>>>> /path/to/pgcc -A -B -C -D -E conftest.c
>>>>>> original args: -A -B -C -D -E conftest.c
>>>>>> new args: -A -B -C -D -E conftest.c
>>>>>>
>>>>>> It only seems to be a problem when -E is the first argument:
>>>>>>
>>>>>> $ /path/to/pgcc -E -D -C -B -A conftest.c
>>>>>> original args: -E -D -C -B -A conftest.c
>>>>>> new args: -D -C -B -A conftest.c
>>>>>>
>>>>>> Prentice
>>>>>>
>>>>>> On 04/03/2017 02:24 PM, Aaron Knister wrote:
>>>>>>> To be thorough couldn't one replace -pthread in the slurm
.la files with -lpthread? I ran into this last week and this was
the solution I was thinking about implementing. Having said that,
I can't think of a situation in which the -pthread/-lpthread
argument would be required other than linking against statically
compiled SLURM libraries and even then I'm not so sure about that.
>>>>>>>
>>>>>>> -Aaron
>>>>>>>
>>>>>>> On 4/3/17 1:46 PM, �ke Sandgren wrote:
>>>>>>>> We build slurm with GCC, drop the -pthread arg in the .la
files, and
>>>>>>>> have never seen any problems related to that. And we do
build quite a
>>>>>>>> lot of code. And lots of versions of OpenMPI with
multiple different
>>>>>>>> compilers (and versions).
>>>>>>>>
>>>>>>>> On 04/03/2017 04:51 PM, Prentice Bisbal wrote:
>>>>>>>>> This is the second suggestion to rebuild Slurm
>>>>>>>>>
>>>>>>>>> The other from �ke Sandgren, who recommended this:
>>>>>>>>>
>>>>>>>>>> This usually comes from slurm, so we always do
>>>>>>>>>>
>>>>>>>>>> perl -pi -e 's/-pthread//'
/lap/slurm/${version}/lib/libpmi.la <http://libpmi.la>
>>>>>>>>>> /lap/slurm/${version}/lib/libslurm.la <http://libslurm.la>
>>>>>>>>>>
>>>>>>>>>> when installing a new slurm version. Thus no need for a
fakepg wrapper.
>>>>>>>>>
>>>>>>>>> I don't really have the luxury to rebuild Slurm at the
moment. How would
>>>>>>>>> I rebuild Slurm to change this behavior? Is rebuilding
Slurm with PGI
>>>>>>>>> the only option to fix this in slurm, or use �ke's
suggestion above?
>>>>>>>>>
>>>>>>>>> If I did use �ke's suggestion above, how would that
affect the operation
>>>>>>>>> of Slurm, or future builds of OpenMPI and any other
software that might
>>>>>>>>> rely on Slurm, particulary with regards to building
those apps with
>>>>>>>>> non-PGI compilers?
>>>>>>>>>
>>>>>>>>> Prentice
>>>>>>>>>
>>>>>>>>> On 04/03/2017 10:31 AM, Gilles Gouaillardet wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> The -pthread flag is likely pulled by libtool from the
slurm libmpi.la <http://libmpi.la>
>>>>>>>>>> <http://libmpi.la> and/or libslurm.la
<http://libslurm.la> <http://libslurm.la>
>>>>>>>>>> Workarounds are
>>>>>>>>>> - rebuild slurm with PGI
>>>>>>>>>> - remove the .la files (*.so and/or *.a are enough)
>>>>>>>>>> - wrap the PGI compiler to ignore the -pthread option
>>>>>>>>>>
>>>>>>>>>> Hope this helps
>>>>>>>>>>
>>>>>>>>>> Gilles
>>>>>>>>>>
>>>>>>>>>> On Monday, April 3, 2017, Prentice Bisbal
<pbis...@pppl.gov <mailto:pbis...@pppl.gov>
>>>>>>>>>> <mailto:pbis...@pppl.gov <mailto:pbis...@pppl.gov>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Greeting Open MPI users! After being off this list
for several
>>>>>>>>>> years, I'm back! And I need help:
>>>>>>>>>>
>>>>>>>>>> I'm trying to compile OpenMPI 1.10.3 with the PGI
compilers,
>>>>>>>>>> version 17.3. I'm using the following configure options:
>>>>>>>>>>
>>>>>>>>>> ./configure \
>>>>>>>>>> --prefix=/usr/pppl/pgi/17.3-pkgs/openmpi-1.10.3 \
>>>>>>>>>> --disable-silent-rules \
>>>>>>>>>> --enable-shared \
>>>>>>>>>> --enable-static \
>>>>>>>>>> --enable-mpi-thread-multiple \
>>>>>>>>>> --with-pmi=/usr/pppl/slurm/15.08.8 \
>>>>>>>>>> --with-hwloc \
>>>>>>>>>> --with-verbs \
>>>>>>>>>> --with-slurm \
>>>>>>>>>> --with-psm \
>>>>>>>>>> CC=pgcc \
>>>>>>>>>> CFLAGS="-tp x64 -fast" \
>>>>>>>>>> CXX=pgc++ \
>>>>>>>>>> CXXFLAGS="-tp x64 -fast" \
>>>>>>>>>> FC=pgfortran \
>>>>>>>>>> FCFLAGS="-tp x64 -fast" \
>>>>>>>>>> 2>&1 | tee configure.log
>>>>>>>>>>
>>>>>>>>>> Which leads to this error from libtool during make:
>>>>>>>>>>
>>>>>>>>>> pgcc-Error-Unknown switch: -pthread
>>>>>>>>>>
>>>>>>>>>> I've searched the archives, which ultimately lead to
this work
>>>>>>>>>> around from 2009:
>>>>>>>>>>
>>>>>>>>>>
https://www.open-mpi.org/community/lists/users/2009/04/8724.php
<https://www.open-mpi.org/community/lists/users/2009/04/8724.php>
>>>>>>>>>>
<https://www.open-mpi.org/community/lists/users/2009/04/8724.php
<https://www.open-mpi.org/community/lists/users/2009/04/8724.php>>
>>>>>>>>>>
>>>>>>>>>> Interestingly, I participated in the discussion that
lead to that
>>>>>>>>>> workaround, stating that I had no problem compiling
Open MPI with
>>>>>>>>>> PGI v9. I'm assuming the problem now is that I'm
specifying
>>>>>>>>>> --enable-mpi-thread-multiple, which I'm doing because a
user
>>>>>>>>>> requested that feature.
>>>>>>>>>>
>>>>>>>>>> It's been exactly 8 years and 2 days since that
workaround was
>>>>>>>>>> posted to the list. Please tell me a better way of
dealing with
>>>>>>>>>> this issue than writing a 'fakepgf90' script. Any
suggestions?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Prentice
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> users mailing list
>>>>>>>>>> users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
>>>>>>>>>>
https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
>>>>>>>>>>
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> users mailing list
>>>>>>>>>> users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
>>>>>>>>>>
https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> users mailing list
>>>>>>>>> users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
>>>>>>>>>
https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> users mailing list
>>>> users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
>>>> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
>>>
>>
>
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
>
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org
iEYEARECAAYFAljiu0YACgkQo/GbGkBRnRpGowCgha3O1wvYyQQOrsYuUqSGJq2B
qHEAnRyT0PHY75NmmI9Efv4CkM7aJjVp
=f5Xk
-----END PGP SIGNATURE-----
_______________________________________________
users mailing list
users@lists.open-mpi.org <mailto:users@lists.open-mpi.org>
https://rfd.newmexicoconsortium.org/mailman/listinfo/users
<https://rfd.newmexicoconsortium.org/mailman/listinfo/users>
--
Matt Thompson
Man Among Men
Fulcrum of History
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users