[overture] Re: Building v24 on Blue Gene P

  • From: "J. P. Bernstein" <astro@xxxxxxx>
  • To: overture@xxxxxxxxxxxxx
  • Date: Wed, 2 May 2012 10:39:12 -0500 (CDT)

Thanks, Bill.

Regarding the BG/P build, the P++ build with this configuration:

./configure --enable-PXX --with-CC=mpixlc_r --with-CFLAGS="-qarch=450d 
-qtune=450" --with-CXX=mpixlcxx_r --with-CXXFLAGS="-qarch=450d -qtune=450" 
--disable-mpirun-check --with-mpi-libs="" --without-PADRE --prefix=`pwd`

(the new thing is the PADRE option you suggested) is failing with:

mpixlcxx_r           -o test2000_01  test2000_01.o 
-L/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/install/lib  
-L/usr/casc/overture/local-i686-redhat-linux/opt/mpich/lib  -lmpich -L../src 
-lPpp -lPpp_static -lPpp  
-L/usr/casc/overture/local-i686-redhat-linux/opt/mpich/lib  -lmpich -lc  -lm
/bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/bin/ld: cannot find -lmpich
gmake[3]: *** [test2000_01] Error 1
gmake[3]: *** Waiting for unfinished jobs....
"../include/A++.h", line 1405.21: 1540-1091 (W) The friend declaration 
"APP_view" specifies a default argument expression and is not a definition.
. . .
gmake[3]: Leaving directory 
`/gpfs/home/jpbernst/Code/Overture/A++P++-0.8.0/P++/TESTS'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/A++P++-0.8.0/P++'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/gpfs/home/jpbernst/Code/Overture/A++P++-0.8.0/P++'
make: *** [all-recursive] Error 1

Thus, it seems that the:

--disable-mpirun-check --with-mpi-libs=""

configure options are not having the expected result and that some spurious mpi 
lib is getting set. P++ builds successfully without the PADRE option. Is this a 
known issue?

On another topic, in support of the BG/P build effort, I took your advise on 
trying to build Overture in serial on a more traditional Linux system. I was 
able to build A++ and Mesa without much incident. However, the Overture build, 
with default configuration, failed with:
 
g++ -fPIC -I/home/jpbernst/Code/GEM/Overture.v24/include -I.   -DUSE_MESA 
-I/home/jpbernst/Code/GEM/A++P++-0.8.0/A++/install/include 
-I/home/jpbernst/Code/GEM/Mesa-7.10.3/include -I/usr/X11R6/include  
-DBL_USE_DOUBLE -DBL_Solaris 
-I/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE   -g 
-I/home/jpbernst/Code/GEM/Mesa-7.10.3/src/mesa/main 
-I/home/jpbernst/Code/GEM/Mesa-7.10.3/src/mesa/glapi 
-I/home/jpbernst/Code/GEM/Mesa-7.10.3/src/mesa -c osRender.C
In file included from 
/home/jpbernst/Code/GEM/Mesa-7.10.3/include/GL/../../src/mesa/main/context.h:53,
                 from osRender.C:215:
/home/jpbernst/Code/GEM/Mesa-7.10.3/include/GL/../../src/mesa/main/mtypes.h:40:25:
 error: glapi/glapi.h: No such file or directory
/home/jpbernst/Code/GEM/Mesa-7.10.3/include/GL/../../src/mesa/main/mtypes.h:1283:
 error: ‘_glthread_Mutex’ does not name a type
. . .
osRender.C:230: error: ‘GLcontext’ does not name a type
osRender.C:231: error: ISO C++ forbids declaration of ‘GLvisual’ with no type
osRender.C:231: error: expected ‘;’ before ‘*’ token
osRender.C:232: error: ISO C++ forbids declaration of ‘GLframebuffer’ with no 
type
osRender.C:232: error: expected ‘;’ before ‘*’ token
osRender.C: In member function ‘int 
GL_GraphicsInterface::offScreenRenderMesa(const char*, GraphicsParameters&)’:
osRender.C:299: error: ‘GLcontext’ was not declared in this scope
osRender.C:299: error: ‘CC’ was not declared in this scope
osRender.C:299: error: expected primary-expression before ‘)’ token
osRender.C:299: error: expected `;' before ‘OSMesaGetCurrentContext’
osRender.C:313: error: ‘oldCC’ was not declared in this scope
osRender.C:313: error: expected primary-expression before ‘)’ token
osRender.C:313: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:314: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:314: error: expected primary-expression before ‘)’ token
osRender.C:314: error: expected `;' before ‘CC’
osRender.C:322: error: expected primary-expression before ‘)’ token
osRender.C:322: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:359: error: ‘struct osmesa_context’ has no member named ‘gl_ctx’
osRender.C:359: error: expected primary-expression before ‘)’ token
osRender.C:359: error: expected `)' before ‘oldCC’
make[1]: *** [osRender.o] Error 1
make[1]: Leaving directory `/gpfs/home/jpbernst/Code/GEM/Overture.v24/Ogshow'
make: *** [all] Error 2
682.610u 53.347s 12:24.76 98.8% 0+0k 0+550952io 0pf+0w

This is odd since the Mesa build was error-free and mapi/glapi was included in 
the Mesa source dirs config. I revisited the Overture instructions for building 
Mesa and found that there were no instructions as to explicitly setting the 
Mesa source dirs. Thus, I tried several Mesa rebuilds either without source 
dirs specified or with a subsets of them specified followed by an Overture 
rebuild for each. None of the attempts resolved the failure above or resulted 
in a different failure. Are you able to shed any light on this one?

Best,

Joe

----- Original Message -----
From: "Bill Henshaw" <henshaw@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Friday, April 27, 2012 8:46:15 AM
Subject: [overture] Re: Building v24 on Blue Gene P


Hi Joe:


On 04/26/2012 01:15 PM, J. P. Bernstein wrote:
> Thanks, Eric. That was the problem.
>
> I have a new failure below.
>
> But first, I got around the A++.h not found error by setting:
>
> CC_INCLUDES_FOR_DEPEND =  $(Include) $(OverturePrecision) -DUSE_MESA 
> -I$(APlusPlus)/include -I$(OpenGL)/include $(BOXLIB_DEFS)
>
> in MakeDefs.bgp (only the APlusPlus bit is relevent to this problem, I 
> think). However, I noticed that the build had warnings about "8" and "4" 
> compiler options. I determined that those warnings originated from the 
> following code in the configure script:
>
> $FortranDouble = "-r8 -i4";
>
> The warnings disappeared after adding the following to the configure script:
>
> if( $machine eq "bgp"&&  $double ne "" )
> {
>    $FortranDouble = "";
> }
For xlf I think you should use:

# dbl4: promotes 4-byte reals to 8-bytes : real*4 -> real*8 (does not change 
real*8)
     $FortranDouble = "-qautodbl=dbl4";


> Still during mpixlcc_r compilation, the build next failed with the errors 
> below:
>
> "partitioning.C", line 204.43: 1540-0256 (S) A parameter of type 
> "std::vector<int,std::allocator<int>  >  &" cannot be initialized with an 
> expression of type "int *".
> "partitioning.C", line 204.43: 1540-1205 (I) The error occurred while 
> converting to parameter 1 of 
> "PADRE_Distribution<BaseArray,Array_Domain_Type,SerialArray_Domain_Type>::getProcessorSet(ProcessorSet&)
>  const".
>
> Any thoughts on those? I have not been able to find the cause.

When building P++ you should use the configure option  --without-PADRE, doing 
this
should eliminate the above error I believe.

...Bill


Other related posts: