|
From: janjust <tja...@un...> - 2011-06-28 17:45:58
|
Hi,
I'm trying to build valgrind for testing some simple MPI programs;
however, when building valgrind everything but the libmpiwrap_<platform>.so
builds. The error that I'm getting is:
-----
mpicc -I../include -g -O -fno-omit-frame-pointer -Wall -fpic -m64 -MT
libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF
.deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o
libmpiwrap_amd64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo
'./'`libmpiwrap.c
pgcc-Error-Unknown switch: -fno-omit-frame-pointer
pgcc-Error-Unknown switch: -Wall
pgcc-Error-Unknown switch: -MT
pgcc-Error-Unknown switch: -MP
pgcc-Error-Unknown switch: -MF
make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1
make[2]: Leaving directory
`/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src'
make: *** [all] Error 2
-bash-3.2$
-------
Also when I ran ./configure --prefix=
I get this when it's testing for compliant C compilers:
------
checking primary target for usable MPI2-compliant C compiler and mpi.h...
yes, mpicc
checking secondary target for usable MPI2-compliant C compiler and mpi.h...
no
------
I've searched forums with similar discussion topics with no luck.
Any suggestions on how to tackle this? Any pointers would be greatly
appreciated.
Thanks!
--
View this message in context: http://old.nabble.com/Valgrind-MPI-fails-to-build-libmpiwrapers-tp31948567p31948567.html
Sent from the Valgrind - Users mailing list archive at Nabble.com.
|
|
From: Dave G. <go...@mc...> - 2011-06-28 18:15:10
|
On Jun 28, 2011, at 12:45 PM CDT, janjust wrote: > I'm trying to build valgrind for testing some simple MPI programs; > however, when building valgrind everything but the libmpiwrap_<platform>.so > builds. The error that I'm getting is: > > ----- > mpicc -I../include -g -O -fno-omit-frame-pointer -Wall -fpic -m64 -MT > libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF > .deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o > libmpiwrap_amd64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo > './'`libmpiwrap.c > pgcc-Error-Unknown switch: -fno-omit-frame-pointer > pgcc-Error-Unknown switch: -Wall > pgcc-Error-Unknown switch: -MT > pgcc-Error-Unknown switch: -MP > pgcc-Error-Unknown switch: -MF > make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1 > make[2]: Leaving directory > `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory > `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src' > make: *** [all] Error 2 > -bash-3.2$ > ------- Unfortunately, valgrind's build process for the MPI wrappers is a bit narrow minded about what it expects from the MPI installation. Also, the configure test for a working "mpicc" is too weak compared to the way that mpicc is used. I wrote a patch to improve the logic a little while back, but it hasn't been applied yet: https://bugs.kde.org/show_bug.cgi?id=274078 But even if that patch was applied I think that would have just disabled the Valgrind MPI wrappers for you by default instead. In your case, you have an "mpicc" compiler wrapper around a PGI compiler. The PGI compiler doesn't understand the same set of options as GCC or ICC, so it's erroring out during the MPI wrapper build step. To get un-stuck right away, you might be able to reconfigure with MPI_CC="mpicc -noswitcherror", although I can't predict with any certainty whether the built wrappers will work correctly even if they do finish compiling. Other options include using a version of MPI that is built with GCC instead of PGI, or disabling the Valgrind MPI wrappers altogether if you don't need that additional level of functionality. -Dave |
|
From: janjust <tja...@un...> - 2011-06-28 19:56:57
|
Hi Dave,
Thanks for the reply. ; Setting $MPI_CC="mpicc -noswitcherror" moved the
build a bit further but it exited with a different error, this time:
-------
make[2]: Entering directory
`/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi'
mpicc -noswitcherror -I../include -g -O -fno-omit-frame-pointer -Wall
-fpic -m64 -MT libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF
.deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o
libmpiwrap_amd64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo
'./'`libmpiwrap.c
pgcc-Warning-Unknown switch: -fno-omit-frame-pointer
pgcc-Warning-Unknown switch: -Wall
pgcc-Warning-Unknown switch: -MT
pgcc-Warning-Unknown switch: -MP
pgcc-Warning-Unknown switch: -MF
pgcc-Error-Output would overwrite input file:
libmpiwrap_amd64_linux_so-libmpiwrap.o
make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1
make[2]: Leaving directory
`/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src'
make: *** [all] Error 2
----------
You are correct my mpicc is wrapped around a pgi compiler, and if I unload
the pgi module that is setting the env_vars to it, and use a module that
sets gcc instead it doesn't recognize an MPI2-cc like compiler at all.
As to your suggestion of using a different MPI built with GCC. Say I have my
own locally compiled MPI library with GCC, how do I go about pointing
valgrind to this version?
Again, thanks for the reply.
-Tommy
Bugzilla from go...@mc... wrote:
>
> On Jun 28, 2011, at 12:45 PM CDT, janjust wrote:
>
>> I'm trying to build valgrind for testing some simple MPI programs;
>> however, when building valgrind everything but the
>> libmpiwrap_<platform>.so
>> builds. The error that I'm getting is:
>>
>> -----
>> mpicc -I../include -g -O -fno-omit-frame-pointer -Wall -fpic -m64
>> -MT
>> libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF
>> .deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o
>> libmpiwrap_amd64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo
>> './'`libmpiwrap.c
>> pgcc-Error-Unknown switch: -fno-omit-frame-pointer
>> pgcc-Error-Unknown switch: -Wall
>> pgcc-Error-Unknown switch: -MT
>> pgcc-Error-Unknown switch: -MP
>> pgcc-Error-Unknown switch: -MF
>> make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1
>> make[2]: Leaving directory
>> `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory
>> `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src'
>> make: *** [all] Error 2
>> -bash-3.2$
>> -------
>
> Unfortunately, valgrind's build process for the MPI wrappers is a bit
> narrow minded about what it expects from the MPI installation. Also, the
> configure test for a working "mpicc" is too weak compared to the way that
> mpicc is used. I wrote a patch to improve the logic a little while back,
> but it hasn't been applied yet:
> https://bugs.kde.org/show_bug.cgi?id=274078
>
> But even if that patch was applied I think that would have just disabled
> the Valgrind MPI wrappers for you by default instead.
>
> In your case, you have an "mpicc" compiler wrapper around a PGI compiler.
> The PGI compiler doesn't understand the same set of options as GCC or ICC,
> so it's erroring out during the MPI wrapper build step. To get un-stuck
> right away, you might be able to reconfigure with MPI_CC="mpicc
> -noswitcherror", although I can't predict with any certainty whether the
> built wrappers will work correctly even if they do finish compiling.
>
> Other options include using a version of MPI that is built with GCC
> instead of PGI, or disabling the Valgrind MPI wrappers altogether if you
> don't need that additional level of functionality.
>
> -Dave
>
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Valgrind-users mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-users
>
>
--
View this message in context: http://old.nabble.com/Valgrind-MPI-fails-to-build-libmpiwrapers-tp31948567p31949562.html
Sent from the Valgrind - Users mailing list archive at Nabble.com.
|
|
From: Dave G. <go...@mc...> - 2011-06-28 20:45:23
|
On Jun 28, 2011, at 2:56 PM CDT, janjust wrote: > Thanks for the reply. ; Setting $MPI_CC="mpicc -noswitcherror" moved the > build a bit further but it exited with a different error, this time: > > ------- > make[2]: Entering directory > `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi' > mpicc -noswitcherror -I../include -g -O -fno-omit-frame-pointer -Wall > -fpic -m64 -MT libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF > .deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o > libmpiwrap_amd64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo > './'`libmpiwrap.c > pgcc-Warning-Unknown switch: -fno-omit-frame-pointer > pgcc-Warning-Unknown switch: -Wall > pgcc-Warning-Unknown switch: -MT > pgcc-Warning-Unknown switch: -MP > pgcc-Warning-Unknown switch: -MF > pgcc-Error-Output would overwrite input file: > libmpiwrap_amd64_linux_so-libmpiwrap.o > make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1 > make[2]: Leaving directory > `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src/mpi' > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory > `/autofs/na1_home/janjust/valgrind/valgrind_sources/valgrind_clean_src' > make: *** [all] Error 2 > ---------- Hmm... not sure why that's happening. It looks like a bad makefile recipe is getting generated somehow. I'll poke at it when I get a little more time. > You are correct my mpicc is wrapped around a pgi compiler, and if I unload > the pgi module that is setting the env_vars to it, and use a module that > sets gcc instead it doesn't recognize an MPI2-cc like compiler at all. > > As to your suggestion of using a different MPI built with GCC. Say I have my > own locally compiled MPI library with GCC, how do I go about pointing > valgrind to this version? Just configure Valgrind with "--with-mpicc=/path/to/my/mpicc", replacing "/path/to/my" appropriately. -Dave |
|
From: Dave G. <go...@mc...> - 2011-06-28 21:00:42
|
On Jun 28, 2011, at 3:45 PM CDT, Dave Goodell wrote: > On Jun 28, 2011, at 2:56 PM CDT, janjust wrote: > >> Thanks for the reply. ; Setting $MPI_CC="mpicc -noswitcherror" moved the >> build a bit further but it exited with a different error, this time: >> >> ------- ... >> pgcc-Warning-Unknown switch: -fno-omit-frame-pointer >> pgcc-Warning-Unknown switch: -Wall >> pgcc-Warning-Unknown switch: -MT >> pgcc-Warning-Unknown switch: -MP >> pgcc-Warning-Unknown switch: -MF >> pgcc-Error-Output would overwrite input file: >> libmpiwrap_amd64_linux_so-libmpiwrap.o >> make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1 ... >> ---------- > > Hmm... not sure why that's happening. It looks like a bad makefile recipe is getting generated somehow. I'll poke at it when I get a little more time. Ahh, if I had just thought for a moment before firing off that last email I would have realized what happened in time. Autoconf is probably detecting that your main compiler is gcc and using that. So it sets some combination of automake conditionals to use gcc-style dependency tracking rules that are emitted inline into the Makefile. However your mpicc is using a different compiler under the hood and pgcc doesn't understand the "-MT target" format, among other things. So the dependency tracking rules that are used here are incorrect when compiling the MPI wrappers. I suspect you can get past this particular error while still using the wrappers for pgcc by passing "--disable-dependency-tracking" to Valgrind's configure. You may still want to pursue the GCC-based-MPI strategy for other reasons. -Dave |
|
From: janjust <tja...@un...> - 2011-06-28 22:46:23
|
Hi Dave,
Thank you so much for your help, that worked!
Much appreciated!
-Tommy
Bugzilla from go...@mc... wrote:
>
> On Jun 28, 2011, at 3:45 PM CDT, Dave Goodell wrote:
>
>> On Jun 28, 2011, at 2:56 PM CDT, janjust wrote:
>>
>>> Thanks for the reply. ; Setting $MPI_CC="mpicc -noswitcherror" moved
>>> the
>>> build a bit further but it exited with a different error, this time:
>>>
>>> -------
> ...
>>> pgcc-Warning-Unknown switch: -fno-omit-frame-pointer
>>> pgcc-Warning-Unknown switch: -Wall
>>> pgcc-Warning-Unknown switch: -MT
>>> pgcc-Warning-Unknown switch: -MP
>>> pgcc-Warning-Unknown switch: -MF
>>> pgcc-Error-Output would overwrite input file:
>>> libmpiwrap_amd64_linux_so-libmpiwrap.o
>>> make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1
> ...
>>> ----------
>>
>> Hmm... not sure why that's happening. It looks like a bad makefile
>> recipe is getting generated somehow. I'll poke at it when I get a little
>> more time.
>
> Ahh, if I had just thought for a moment before firing off that last email
> I would have realized what happened in time. Autoconf is probably
> detecting that your main compiler is gcc and using that. So it sets some
> combination of automake conditionals to use gcc-style dependency tracking
> rules that are emitted inline into the Makefile. However your mpicc is
> using a different compiler under the hood and pgcc doesn't understand the
> "-MT target" format, among other things. So the dependency tracking rules
> that are used here are incorrect when compiling the MPI wrappers.
>
> I suspect you can get past this particular error while still using the
> wrappers for pgcc by passing "--disable-dependency-tracking" to Valgrind's
> configure. You may still want to pursue the GCC-based-MPI strategy for
> other reasons.
>
> -Dave
>
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Valgrind-users mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-users
>
>
--
View this message in context: http://old.nabble.com/Valgrind-MPI-fails-to-build-libmpiwrapers-tp31948567p31950666.html
Sent from the Valgrind - Users mailing list archive at Nabble.com.
|