[mpich-discuss] Cannot build mpich2-1.0.8p1 (nemesis) with PGI 8.0-4 on Linux x86_64

Gus Correa gus at ldeo.columbia.edu
Tue Mar 31 10:54:20 CDT 2009


Hi Dave, list

Dave: Thank you very much for the configure.in
patch and for your help.

I applied the patch, did "make distclean", deleted all old
build files and directories, configured again, did make again.
However, I still get the same exact error on the make phase.

Somehow the preprocessor macro HAVE_GCC_AND_X86_64_ASM
continues to be undefined in src/include/mpichconf.h.
Likewise HAVE_GCC_ATTRIBUTE is also undefined.
I guess the lack of HAVE_GCC_AND_X86_64_ASM
is what eventually leads to the error.

By contrast on my "Gnu only (gcc,g++,gfortran)) build,
on my "Intel only (icc, icpc, ifort) build,
and on my two hybrid (Gnu+Intel and Gnu+PGI) builds,
both macros (HAVE_GCC_AND_X86_64_ASM and HAVE_GCC_ATTRIBUTE)
are defined as 1 on the src/include/mpichconf.h file.

There may be more that needs to be patched in configure.in, I'd guess.

I will email to you off list the output of configure,
config.log, and src/include/mpichconf.h

Many thanks again.

Gus Correa
---------------------------------------------------------------------
Gustavo Correa
Lamont-Doherty Earth Observatory - Columbia University
Palisades, NY, 10964-8000 - USA
---------------------------------------------------------------------

Dave Goodell wrote:
> On Mar 30, 2009, at 8:02 PM, Gus Correa wrote:
> 
>>> Did you successfully build the original mpich2-1.0.8 (non-patch) 
>>> release with these same PGI compilers?
>>
>> Since you asked, I tried mpich2-1.0.8 (non-patch) with PGI 8.0-4.
>> It fails with the same exact error.  :(
> 
> As I suspected.  In a way this is good because it means that we didn't 
> break anything in our small p1 patch ;)
> 
>> I also tried to replace PGI 8.0-4 with PGI 7.2-5,
>> and build mpich2-1.0.8p1 (patch).
>> No difference whatsoever, same exact error again :(
> 
> Not surprising.  In looking at your configure output and the 
> configure.in from MPICH2-1.0.8p1, it's clear that the PGI compilers 
> won't ever work without a modification.  We make an explicit check for 
> either gcc (by any name) or icc (only named "icc") before checking for 
> inline assembly.  So when CC=pgcc we don't even check for inline 
> assembly capability.
> 
> Please try the attached patch to configure.in and let me know if this 
> solves your problem.  This area of the configure.in is a hack and this 
> patch is just another hack on top of that, but it might get you unstuck 
> for now.  To apply the patch, put it in the same directory as the 
> top-level configure.in and run "patch -p1 < pgcc_atomics.patch".
> 
>> FYI, I also tried a hybrid build of mpich2-1.0.8 (patch),
>> using Gnu gcc/g++ and PGI pgf90 release 8.0-4.
>> This one builds correctly, no error! :)
>>
>> So, somehow the problem may be in using pgcc instead of gcc, right?
>> Wouldn't the PGI developers be interested in giving you
>> a hand here?
> 
> They might be interested and willing, but the bug is all on our side, 
> I'm afraid.
> 
>>> In the mean time you could install one of the other channels such as 
>>> ch3:sock for the PGI-compiled version.  The intranode performance 
>>> won't be as good but it should work just fine.
>>
>> I can, but I wonder if this will bring in other type of problems.
>> Not my direct experience, but other people reported runtime problems
>> with the ch3:sock on x86_64 and recent kernels.
>> See this thread:
>>
>> http://marc.info/?l=npaci-rocks-discussion&m=123175012813683&w=2
>>
>> On the other hand, nemesis seems to work.
> 
> Hmm... well, a substantial number of bugs were fixed between 1.0.7 and 
> 1.0.8.  I believe that ch3:sock should be very stable in 1.0.8 (modulo 
> some heavy dynamic process usages).  In fact, in 1.0.8 I suspect that 
> ch3:sock might be more stable than ch3:nemesis.  The main reason to use 
> nemesis in 1.0.8 is for improved intranode performance.
> 
> -Dave
> 
> 



More information about the mpich-discuss mailing list