[overture] Re: Building v24 on Blue Gene P

Thanks, Bill.

Just be sure, are you saying to replace

MultigridCompositeGrid::MultigridCompositeGridData::MultigridCompositeGridData& 

with:

MultigridCompositeGrid::

That results in:

"MultigridCompositeGrid.C", line 165.1: 1540-0400 (S) 
"MultigridCompositeGrid::MultigridCompositeGridData::operator=(const 
MultigridCompositeGridData &)" has a conflicting declaration.
"/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/MultigridCompositeGrid.h",
 line 86.29: 1540-0424 (I) "operator=" is declared on line 86 of 
"/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/MultigridCompositeGrid.h".
"MultigridCompositeGrid.C", line 62.1: 1540-1101 (W) A return value of type 
"int" is expected.

Sorry, I am somewhat new to C++.

----- Original Message -----
From: "Bill Henshaw" <henshaw@xxxxxxxx>
To: overture@xxxxxxxxxxxxx
Sent: Wednesday, April 4, 2012 1:38:45 PM
Subject: [overture] Re: Building v24 on Blue Gene P

Hi Joe:
   You will need to edit that file and remove the duplicate

MultigridCompositeGridData::MultigridCompositeGridData

This error appears with newer versions of compilers.

...Bill


On 04/03/2012 01:32 PM, J. P. Bernstein wrote:
> Hello Bill,
>
> Several include issues later (archived below), led to considerable build 
> progression to the following failure:
>
> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 
> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   
> -I/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include 
> -DBL_USE_DOUBLE -DBL_Solaris   -g -DUSE_PPP -c MultigridCompositeGrid.C
> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/A++.h",
>  line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a 
> default argument expression and is not a definition.
> . . .
> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/p_inline_func.h",
>  line 465.12: 1540-1103 (W) The address of a local variable or temporary is 
> used in a return expression.
> . . .
> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/A++.h",
>  line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a 
> default argument expression and is not a definition.
> . . .
> "MultigridCompositeGrid.C", line 164.1: 1540-2611 (S) The name 
> "MultigridCompositeGrid::MultigridCompositeGridData::MultigridCompositeGridData"
>  can only be used to declare a constructor.
> "MultigridCompositeGrid.C", line 62.1: 1540-1101 (W) A return value of type 
> "int" is expected.
> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/p_inline_func.h",
>  line 465.12: 1540-1103 (W) The address of a local variable or temporary is 
> used in a return expression.
> . . .
> make[1]: *** [MultigridCompositeGrid.o] Error 1
> make[1]: Leaving directory 
> `/gpfs/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/Grid'
> make: *** [all] Error 2
>
> Is that familiar?
>
> Archive:
>
> Includes in $Overture/static/Makefile.in are currently (work in progress):
>
> # These are for OpenGL and motif
> #OpenGLInclude = $(OpenGL)/include
> SystemInclude = /usr/include
> # -I$(MOTIF)/include/Motif-1.2 for lesstif on red-hat
> INCLUDE=  -I$(OpenGLInclude)
>
> # motif includes should come before the xlib includes since xlib may also 
> have motif in it
> # wdh: put OpenGL includes before motif since on the Dec MOTIF=/usr and there 
> is a /usr/include/GL
> # *wdh* 041017 fix a problem with P++ and gcc 3.3.3 -- seg faults at 
> completion of the code
> # *wdh* 041017 CCFLAGS2=   $(INCLUDE) -I$(MOTIF)/include 
> -I$(MOTIF)/include/Motif-1.2  $(CCFLAGSG)
> CCFLAGS2=   $(CCFLAGSG) $(INCLUDE) -I$(MOTIF)/include
>
> .SUFFIXES:
> .SUFFIXES:.C .o .f .o .c .o .F .o
> .C.o:; $(CC) $(CCFLAGS2) -c $*.C
> .c.o:; $(cc) $(CFLAGS) -I. -I$(MOTIF)/include -I$(SystemInclude) 
> -I/usr/X11R6/include -c $*.c
>
> On Apr 3, 2012, at 11:56 AM, Bill Henshaw wrote:
>
>> Joe:
>>    GLfloat, GLdouble are OpenGL variables. You will still need to include 
>> the OpenGL header files when compiling, and undo that change you made to 
>> moglNull.C
>>
>> ...Bill
>>
>>
>> On 04/03/2012 09:17 AM, J. P. Bernstein wrote:
>>> Thanks, Bill.
>>>
>>> I was able to get around the mogl.o missing target error when I replaced 
>>> mogl with moglNull in the following:
>>>
>>> $Overture/Makefile.in:178:             static/mog.C static/overlay.c 
>>> static/initOvertureGlobalVariables.C \
>>>
>>> $Overture/lib/Makefile.in:219:RapsodiStaticFiles= ../static/mogl.o 
>>> ../static/overlay.o ../static/initOvertureGlobalVariables.o \
>>>
>>> $Overture/static/Makefile.in:25:Source=  mogl.C overlay.C 
>>> initOvertureGlobalVariables.C initStaticMappingVariables.C \
>>>
>>> $Overture/tests/Makefile.in:24:giMain = giMain.o ../static/mogl.o 
>>> ../static/overlay.o
>>>
>>> Erik, in particular, can you please take a look at the rest of this message 
>>> (though comments are most welcome from anyone, of course)?
>>>
>>> Now the build dies with:
>>>
>>> --------------------
>>> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include 
>>> -DBL_USE_DOUBLE -DBL_Solaris   -g -DUSE_PPP -I/include -I/GLUT  -I/include  
>>> -c moglNull.C
>>> mpixlc_r -qarch=450d -qtune=450 -qmaxmem=16384  
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   -g 
>>> -DSHM -DUSE_PPP -I. -I/include -I/include -c overlay.c
>>> "overlay.c", line 236.21: 1506-356 (W) Compilation unit is empty.
>>> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384 
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include 
>>> -DBL_USE_DOUBLE -DBL_Solaris   -g -DUSE_PPP -I/include -I/GLUT  -I/include  
>>> -c initOvertureGlobalVariables.C
>>> "moglNull.C", line 31.10: 1540-0836 (S) The #include file<GL/glu.h>   is 
>>> not found.
>>> make[1]: *** [moglNull.o] Error 1
>>> make[1]: *** Waiting for unfinished jobs....
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/A++.h",
>>>  line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a 
>>> default argument expression and is not a definition.
>>> . . .
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/p_inline_func.h",
>>>  line 465.12: 1540-1103 (W) The address of a local variable or temporary is 
>>> used in a return expression.
>>> . . .
>>> make[1]: Leaving directory 
>>> `/gpfs/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/static'
>>> make: *** [all] Error 2
>>> --------------------
>>>
>>> I found the solution is to comment out the following in 
>>> $Overture/static/moglNull.C
>>>
>>> #include<GL/glu.h>
>>>
>>> Next, the build fails with:
>>>
>>> --------------------
>>> mpixlcxx_r -qarch=450d -qtune=450 -qmaxmem=16384
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   
>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include 
>>> -DBL_USE_DOUBLE -DBL_Solaris   -g -DUSE_PPP -I/include -I/GLUT  -I/include  
>>> -c initStaticMappingVariables.C
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/A++.h",
>>>  line 1405.21: 1540-1091 (W) The friend declaration "APP_view" specifies a 
>>> default argument expression and is not a definition.
>>> . . .
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/mogl.h", line 
>>> 40.11: 1540-0063 (S) The text "*" is unexpected.
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/mogl.h", line 
>>> 197.42: 1540-0063 (S) The text "left" is unexpected.
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/mogl.h", line 
>>> 201.42: 1540-0063 (S) The text "left" is unexpected.
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/mogl.h", line 
>>> 205.49: 1540-0040 (S) The text "aspectRatio" is unexpected.  "GLdouble" may 
>>> be undeclared or ambiguous.
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include/mogl.h", line 
>>> 210.41: 1540-0040 (S) The text "fovy" is unexpected.  "GLdouble" may be 
>>> undeclared or ambiguous.
>>> "moglNull.C", line 176.33: 1540-0063 (S) The text "GLdouble" is unexpected.
>>> "moglNull.C", line 180.33: 1540-0063 (S) The text "GLdouble" is unexpected.
>>> "moglNull.C", line 184.40: 1540-0063 (S) The text "GLdouble" is unexpected.
>>> "moglNull.C", line 189.32: 1540-0063 (S) The text "GLdouble" is unexpected.
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/P++.h",
>>>  line 1339.21: 1540-1091 (W) The friend declaration "APP_view" specifies a 
>>> default argument expression and is not a definition.
>>> . . .
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/p_inline_func.h",
>>>  line 465.12: 1540-1103 (W) The address of a local variable or temporary is 
>>> used in a return expression.
>>> make[1]: *** [moglNull.o] Error 1
>>> make[1]: *** Waiting for unfinished jobs....
>>> "/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include/p_inline_func.h",
>>>  line 465.12: 1540-1103 (W) The address of a local variable or temporary is 
>>> used in a return expression.
>>> . . .
>>> make[1]: Leaving directory 
>>> `/gpfs/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/static'
>>> make: *** [all] Error 2
>>> --------------------
>>>
>>> It looks to me that mogl.h still has to be included in order to define 
>>> things needed to create the empty stubs for mogl functions. Is that 
>>> correct, Erik? While I continue to look into this, can you please comment 
>>> on the errors?
>>>
>>> Best,
>>>
>>> Joe
>>>
>>>
>>> On Apr 2, 2012, at 5:54 PM, Bill Henshaw wrote:
>>>
>>>> Hi Joe:
>>>>    The Overture/configure script should replace mogl.C with moglNull.C
>>>> in the Overture/static directory and compile that.
>>>>
>>>>   mogl.C is the Motif/OpenGL interface and is where all Motif code is 
>>>> located.
>>>>
>>>> ...Bill
>>>>
>>>>
>>>> On 04/02/2012 03:20 PM, J. P. Bernstein wrote:
>>>>> Hello Bill, Kyler, Erik,
>>>>>
>>>>> I was able to patch v24 with Erik's patches enabling noGL and noPERL 
>>>>> config options in addition to noX11 (I am still working on getting Mesa 
>>>>> compiled for the BG/P backend to have the option to go with just noX11 
>>>>> and noPERL).
>>>>>
>>>>> The build runs for many minutes and then dies with:
>>>>>
>>>>> make[1]: Entering directory 
>>>>> `/gpfs/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/static'
>>>>> perl ../config/makeDepend -f depend -Y -- 
>>>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/include -I.   
>>>>> -I/home/jpbernst/Code/Overture/LLNL-CISM/A++P++-0.8.0/P++/install/include 
>>>>> -DBL_USE_DOUBLE -DBL_Solaris -- mogl.C overlay.C 
>>>>> initOvertureGlobalVariables.C initStaticMappingVariables.C xColours.C 
>>>>> ReferenceCounting.C OvertureInit.C RapsodiInit.C memoryUsage.C
>>>>> make[1]: *** No rule to make target `mogl.o', needed by `static_date'.  
>>>>> Stop.
>>>>> make[1]: *** Waiting for unfinished jobs....
>>>>> run makedepend ...
>>>>> ...done
>>>>> touch depend_date
>>>>> make[1]: *** Waiting for unfinished jobs....
>>>>> make[1]: Leaving directory 
>>>>> `/gpfs/home/jpbernst/Code/Overture/LLNL-CISM/Overture.v24/static'
>>>>> make: *** [all] Error 2
>>>>>
>>>>> Is mogl related to OpenGL? That is, Erik, is that something that the noGL 
>>>>> config option should deprecate? In the $Overture/static, I see 
>>>>> moglNull.C. . .
>>>>>
>>>>> Best,
>>>>>
>>>>> Joe
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "J. P. Bernstein"<astro@xxxxxxx>
>>>>> To: overture@xxxxxxxxxxxxx
>>>>> Sent: Monday, April 2, 2012 3:29:11 PM
>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>
>>>>> Hello Bill,
>>>>>
>>>>> Would you be able to send me some information about specific machines 
>>>>> Overture has been run on and some performance metrics on those machines? 
>>>>> I am putting together an application for discretionary time on the 
>>>>> Argonne Blue Gene/P and including such information would be very 
>>>>> beneficial.
>>>>>
>>>>> Best,
>>>>>
>>>>> Joe
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Bill Henshaw"<henshaw@xxxxxxxx>
>>>>> To: overture@xxxxxxxxxxxxx
>>>>> Sent: Saturday, March 31, 2012 5:36:18 PM
>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>
>>>>> Thanks Erik,
>>>>>     I had forgot that you had built a null version of OpenGL.
>>>>> ...Bill
>>>>>
>>>>> On 03/29/2012 03:58 PM, Erik Wilson wrote:
>>>>>> Similar to the noX11 flag, the patch I sent (attached for everyone else)
>>>>>> add options for noGL and noPERL configure flags. OpenGL functionality is
>>>>>> removed via a null implementation; just in case Mesa proves too
>>>>>> difficult to compile.
>>>>>>
>>>>>> Cheers,
>>>>>>     -Erik
>>>>>>
>>>>>> On 03/28/2012 02:54 PM, J. P. Bernstein wrote:
>>>>>>> Thanks, Bill.
>>>>>>>
>>>>>>> Can you please clarify if those changes are in v24, or if you are 
>>>>>>> referring to changes post v24?
>>>>>>>
>>>>>>> Indeed, I am close to compiling Mesa on BG/P. I am getting a failure 
>>>>>>> due to the compiler not being recognized at the latter stage of 
>>>>>>> compiling libmesa itself. I am corresponding with the Mesa folks about 
>>>>>>> that.
>>>>>>>
>>>>>>> Thanks for your offer of help regarding the perl script. I am handy 
>>>>>>> with perl, so I agree that that step should not be hard.
>>>>>>>
>>>>>>> Best,
>>>>>>>
>>>>>>> Joe
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "Bill Henshaw"<henshaw@xxxxxxxx>
>>>>>>> To: overture@xxxxxxxxxxxxx
>>>>>>> Sent: Wednesday, March 28, 2012 4:48:51 PM
>>>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>>>
>>>>>>> Hi Joe,
>>>>>>>         As Kyle noted, I have already made the changes to optionally 
>>>>>>> remove the
>>>>>>> dependencies on X and Motif. My plan was to still link to OpenGL, this 
>>>>>>> should
>>>>>>> not be a big deal.
>>>>>>>
>>>>>>>        It is a simple matter to write a perl program that can convert a
>>>>>>> command file to one that does not need perl. I can help
>>>>>>> you with that.
>>>>>>>
>>>>>>> ...Bill
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 03/28/2012 01:07 PM, Chand, Kyle K. wrote:
>>>>>>>> Hi Joe,
>>>>>>>>
>>>>>>>> I think for the OpenGL you can build Mesa without X11 and direct 
>>>>>>>> rendering so you will get the library to link against.  Here is a 
>>>>>>>> VisIt page about how they built Mesa on a BG/P system:
>>>>>>>> http://www.visitusers.org/index.php?title=Building_on_BlueGeneP
>>>>>>>> It is kind of out of date and things might be easier now...
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Kyle
>>>>>>>>
>>>>>>>> ________________________________________
>>>>>>>> From: overture-bounce@xxxxxxxxxxxxx [overture-bounce@xxxxxxxxxxxxx] On 
>>>>>>>> Behalf Of J. P. Bernstein [astro@xxxxxxx]
>>>>>>>> Sent: Wednesday, March 28, 2012 12:45 PM
>>>>>>>> To: overture@xxxxxxxxxxxxx
>>>>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>>>>
>>>>>>>> Or am I confused. Does CG need the Overture source, Overture 
>>>>>>>> compilation products, or both? If only the source, then I better 
>>>>>>>> understand your point about really what I need to do is divorce 
>>>>>>>> Overture and CG form things.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>>
>>>>>>>> Joe
>>>>>>>>
>>>>>>>> On Mar 28, 2012, at 2:44 PM, J. P. Bernstein wrote:
>>>>>>>>
>>>>>>>>> Thanks, Kyle.
>>>>>>>>>
>>>>>>>>> For Overture on BG/P, there is also the issue of X, MOTIF, and 
>>>>>>>>> OpenGL. The CISM folks modified a version of Overture in 2008 to 
>>>>>>>>> strip those things in addition to perl. Building CG alone on BG/P 
>>>>>>>>> would reduce the problem to the CG divorce from those things at the 
>>>>>>>>> expense of additionally divorcing CG from Overture.
>>>>>>>>>
>>>>>>>>> In the end, it comes down to either divorcing Overture and CG from 
>>>>>>>>> perl, X, MOTIF, and OpenGL, or divorcing Overture from CG and CG from 
>>>>>>>>> perl, X, MOTIF, and OpenGL (I am not yet sure the extent to which CG 
>>>>>>>>> even depends on those things). It seems to me that the latter is more 
>>>>>>>>> sensible, but make that statement as a mere Overture initiate. What 
>>>>>>>>> do you and the experts say?
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>>
>>>>>>>>> Joe
>>>>>>>>>
>>>>>>>>> On Mar 28, 2012, at 2:19 PM, Chand, Kyle K. wrote:
>>>>>>>>>
>>>>>>>>>> Hi Joe,
>>>>>>>>>>
>>>>>>>>>> Really you will be divorcing Overture and CG from perl, which is 
>>>>>>>>>> doable.  Stripping calls from Overture is easy, you just need to 
>>>>>>>>>> hack/replace Ogshow/OvertureParser.C when building it on the BG/P 
>>>>>>>>>> backend.  Generating perl-less command files on your mac will not be 
>>>>>>>>>> that hard though it may involve some adjustments to the way 
>>>>>>>>>> overture's command interpreter records the playback commands.  It 
>>>>>>>>>> may also be possible to do it with a simple perl script that reads a 
>>>>>>>>>> command file line by line, interprets each line ending in a 
>>>>>>>>>> semi-colon and string-interpolates the remaining lines, outputting 
>>>>>>>>>> the interpolated lines to a perl-less command file.
>>>>>>>>>>
>>>>>>>>>> bpp should not be an issue.  It is used to generate code at compile 
>>>>>>>>>> time (only when bpp files have changed) and is never executed at run 
>>>>>>>>>> time.  If executing bpp on the frontend when compiling cg is an 
>>>>>>>>>> issue you can just 'touch' all the source files so that the bpp 
>>>>>>>>>> dependencies are not activated in the build system.  If that does 
>>>>>>>>>> not work then the build system will have to be adjusted to ignore 
>>>>>>>>>> regeneration of bpp generated source code.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Kyle
>>>>>>>>>>
>>>>>>>>>> ________________________________________
>>>>>>>>>> From: overture-bounce@xxxxxxxxxxxxx [overture-bounce@xxxxxxxxxxxxx] 
>>>>>>>>>> On Behalf Of J. P. Bernstein [astro@xxxxxxx]
>>>>>>>>>> Sent: Wednesday, March 28, 2012 11:43 AM
>>>>>>>>>> To: overture@xxxxxxxxxxxxx
>>>>>>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>>>>>>
>>>>>>>>>> Hello Kyle,
>>>>>>>>>>
>>>>>>>>>> I have confirmed with ALCF management that building perl on the 
>>>>>>>>>> backend of the Argonne BG/P is not and will not be supported by the 
>>>>>>>>>> facility due to overhead issues.
>>>>>>>>>>
>>>>>>>>>> What we are really after is having CG built on the BG/P backend. To 
>>>>>>>>>> us, the most sensible path is to build Overture somewhere else (like 
>>>>>>>>>> my Mac laptop, which has been done), and use it to generate 
>>>>>>>>>> perl-less command files to pass to a CG build on the BG/P backend. 
>>>>>>>>>> Thus, I would like to divorce CG from Overture to the greatest 
>>>>>>>>>> extent possible. How realistic is that goal, from the perspective of 
>>>>>>>>>> the Overture developers?
>>>>>>>>>>
>>>>>>>>>> The immediate issue that arises with the above is CG's dependency on 
>>>>>>>>>> BPP. How much does CG depended on the extended capabilities of BPP, 
>>>>>>>>>> relative to CPP. In other words, would building BPP on it's own or 
>>>>>>>>>> reverting CG to work with CPP make more sense?
>>>>>>>>>>
>>>>>>>>>> Best,
>>>>>>>>>>
>>>>>>>>>> Joe
>>>>>>>>>>
>>>>>>>>>> ----- Original Message -----
>>>>>>>>>> From: "Kyle K. Chand"<chand1@xxxxxxxx>
>>>>>>>>>> To: overture@xxxxxxxxxxxxx
>>>>>>>>>> Sent: Monday, March 5, 2012 4:24:19 PM
>>>>>>>>>> Subject: [overture] Re: Building v24 on Blue Gene P
>>>>>>>>>>
>>>>>>>>>> Hi Joe,
>>>>>>>>>>
>>>>>>>>>> Mechanically, it would not be hard to replace the perl interpreter in
>>>>>>>>>> OvertureParser.C with the python interpreter (or any other
>>>>>>>>>> interpreter, check out Lua!).
>>>>>>>>>> However, it may be a great deal of effort to translate all our 
>>>>>>>>>> command
>>>>>>>>>> files from perl to python.  We do not use perl for regular
>>>>>>>>>> expressions, we use perl for two
>>>>>>>>>> purposes:
>>>>>>>>>> 1) writing perl code to parameterize and generate input to our grid
>>>>>>>>>> generator and solvers, and
>>>>>>>>>> 2) utilize perl's "string interpolation" mechanism to turn command
>>>>>>>>>> file lines like:
>>>>>>>>>> $N=11;
>>>>>>>>>> number of grid lines
>>>>>>>>>> $N $N
>>>>>>>>>> into
>>>>>>>>>> number of grid lines
>>>>>>>>>> 11 11
>>>>>>>>>>
>>>>>>>>>> Lately we have been using 1) a lot more, often writing perl loops and
>>>>>>>>>> including perl modules to parameterize and automate input generation
>>>>>>>>>> and make things generally more maintainable.
>>>>>>>>>> The mechanism represented by 2) is how 1) eventually gets used.  So,
>>>>>>>>>> it would be a lot of work to re-write many of our more recent (and
>>>>>>>>>> future) command files to use another interpreted language.
>>>>>>>>>>
>>>>>>>>>> I think the most efficient path would be to strip perl from the BG
>>>>>>>>>> port of the code.  Then use Overture on some other machine to 
>>>>>>>>>> generate
>>>>>>>>>> perl-less, pure text, input for the problems you want to run.  One
>>>>>>>>>> could even
>>>>>>>>>> write a (perl :-) script that reads a command file and sends each 
>>>>>>>>>> line
>>>>>>>>>> ending with a semi-colon to the interpreter and every other line for
>>>>>>>>>> string interpolation, echoing the interpolated line to a "stripped"
>>>>>>>>>> command file.  You would not even need another copy of Overture for
>>>>>>>>>> that.
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Kyle
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> mailto: chand1@xxxxxxxx
>>>>>>>>>> phoneto: (925) 422 7740
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mar 5, 2012, at 12:09 PM, J. P. Bernstein wrote:
>>>>>>>>>>
>>>>>>>>>>> Thank you very much, Kyle, for those details.
>>>>>>>>>>>
>>>>>>>>>>> While I am digesting that, would you care to comment on the notion
>>>>>>>>>>> of replacing perl functionality with python? I am not familiar
>>>>>>>>>>> enough with python or Overture to know, of the top of my head, if
>>>>>>>>>>> python offers the capability needed.
>>>>>>>>>>>
>>>>>>>>>>> I ask because python is available on the back end of the BG/P at
>>>>>>>>>>> Argonne. Might such a transformation be of interest to you and the
>>>>>>>>>>> Overture team? My job description would allow me to engage
>>>>>>>>>>> considerably on such a task.
>>>>>>>>>>>
>>>>>>>>>>> Best,
>>>>>>>>>>>
>>>>>>>>>>> Joe
>>>>>>>>>>>
>>>>>>>>>>> On Mar 5, 2012, at 12:42 PM, Kyle K. Chand wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Joe,
>>>>>>>>>>>>
>>>>>>>>>>>> Well, I have some bad news regarding perl.  Perl is really an
>>>>>>>>>>>> integral part of how we set up problems both for the
>>>>>>>>>>>> grid generator as well as CG solver runs.  Using Overture w/o perl
>>>>>>>>>>>> is kind of like editing C++ files with ed in a terminal window; you
>>>>>>>>>>>> can do it but it is not really suggested :-)  Overture's graphics/
>>>>>>>>>>>> interpreter interface actually starts a perl interpreter
>>>>>>>>>>>> and the text commands are first sent to the interpreter to either
>>>>>>>>>>>> get string interpolation performed or perl statements evaluated.
>>>>>>>>>>>> You can see an example of how this is used in 
>>>>>>>>>>>> $Overture/sampleGrids/
>>>>>>>>>>>> squareArg.cmd, which parameterizes an ogen
>>>>>>>>>>>> grid generator command file using perl statements.
>>>>>>>>>>>>
>>>>>>>>>>>> Now, it is probably possible to build Overture without the perl
>>>>>>>>>>>> interpreter linked in, you will have to change OvertureParser.C as
>>>>>>>>>>>> well
>>>>>>>>>>>> as the bin/Makefile to remove references to perl.  Then, however,
>>>>>>>>>>>> you will need to strip perl from any command files you plan to use.
>>>>>>>>>>>>
>>>>>>>>>>>> The best way to go would be to compile Perl for BGP.  However, if
>>>>>>>>>>>> that is not possible for some reason, here is another way to go:
>>>>>>>>>>>> 1) Build a "full" version of Overture somewhere you can generate
>>>>>>>>>>>> grids and test things out
>>>>>>>>>>>> 2) Modify this "full" version to write the "plain text" command
>>>>>>>>>>>> files after the perl processing is completed, run any command files
>>>>>>>>>>>> you want through it to strip the perl
>>>>>>>>>>>> 3) Build a "perl-less" version for BGP on which you can run perl-
>>>>>>>>>>>> stripped cg command files
>>>>>>>>>>>>
>>>>>>>>>>>> The easiest way to "strip" command files of perl might be to
>>>>>>>>>>>> intercept the interpolated strings before they get sent to the rest
>>>>>>>>>>>> of Overture
>>>>>>>>>>>> from OvertureParser, I'll have to think about the least-intrusive
>>>>>>>>>>>> way to do that.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Kyle
>>>>>>>>>>>> PS, I will try to get to your Mac question later today.
>>>>>>>>>>>>
>>>>>>>>>>>> mailto: chand1@xxxxxxxx
>>>>>>>>>>>> phoneto: (925) 422 7740
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mar 2, 2012, at 5:58 PM, J. P. Bernstein wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hello Bill,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you and Kyle for the quick replies to my emails.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Warning headed. I am on assignment from the Argonne Leadership
>>>>>>>>>>>>> Computing
>>>>>>>>>>>>> Facility (ALCF) on this effort. There is significant interest at
>>>>>>>>>>>>> ALCF to
>>>>>>>>>>>>> at least run the CG solvers on BGP (not necessarily ogen).
>>>>>>>>>>>>> Nevertheless,
>>>>>>>>>>>>> I will share your sentiment with my assigners.
>>>>>>>>>>>>>
>>>>>>>>>>>>> A question about the perl situation: my initial assessment
>>>>>>>>>>>>> suggested to
>>>>>>>>>>>>> me that perl was needed only for configuring the build and running
>>>>>>>>>>>>> the
>>>>>>>>>>>>> tests. Since perl is available on the front end, the configuration
>>>>>>>>>>>>> part
>>>>>>>>>>>>> should work. Part of my assignment is converting the perl test
>>>>>>>>>>>>> scripts
>>>>>>>>>>>>> to, e.g., python. However, your message below makes me doubt my
>>>>>>>>>>>>> assessment. Are the perl libs, which, as you know, are not
>>>>>>>>>>>>> available on
>>>>>>>>>>>>> the back end, needed at run time beyond the test scripts?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Joe
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 3/2/2012 6:08 PM, Bill Henshaw wrote:
>>>>>>>>>>>>>> Hi Joe,
>>>>>>>>>>>>>> At one time I did get Overture compiled on the BGP front end at 
>>>>>>>>>>>>>> ANL
>>>>>>>>>>>>>> with xlc but I was left
>>>>>>>>>>>>>> with the issue that the perl libraries were not available with
>>>>>>>>>>>>>> BGP. We
>>>>>>>>>>>>>> could work around
>>>>>>>>>>>>>> this if necessary but I prefer not too if possible.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> That said, experience tells me that since we have not run
>>>>>>>>>>>>>> Overture on
>>>>>>>>>>>>>> BGP then you
>>>>>>>>>>>>>> are likely to have problems that will be very hard for you to 
>>>>>>>>>>>>>> fix.
>>>>>>>>>>>>>> Therefore this is just a warning
>>>>>>>>>>>>>> that the path you are on may lead to great misery and despair ...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> ...Bill
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> J. P. Bernstein wrote:
>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I am trying to build Overture.v24 on Blue Gene P (BG/P).
>>>>>>>>>>>>>>> In an attempt to add a BG/P configuration for A++, I looked for
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>> following config file mentioned in the A++ README file:
>>>>>>>>>>>>>>> A++/config/config.options
>>>>>>>>>>>>>>> but was not able to find the file or the directory mentioned in
>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>> A++ directory tree.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I was able to build A++ without errors with the following
>>>>>>>>>>>>>>> configure
>>>>>>>>>>>>>>> command:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> ./configure --with-CC=mpixlc_r --with-CFLAGS="-qarch=450d -
>>>>>>>>>>>>>>> qtune=450"
>>>>>>>>>>>>>>> --with-CXX=mpixlcxx_r --with-CXXFLAGS="-qarch=450d -qtune=450"
>>>>>>>>>>>>>>> --prefix=`pwd`
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> However, the flags did not seem to be passed:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> mpixlc_r -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include
>>>>>>>>>>>>>>> -c
>>>>>>>>>>>>>>> `test -f common_func.c || echo './'`common_func.c
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> mpixlcxx_r           -o resize  resize.o
>>>>>>>>>>>>>>> -L/home/jpbernst/Code/Overture/A++P++-0.8.0/A++/install/lib  -
>>>>>>>>>>>>>>> L../src
>>>>>>>>>>>>>>> -lApp -lApp_static -lApp  -lm
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Is this a known issue?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Returning to the BG/P config issue, I tried to hack :
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> config/A++P++_common_autoconfig.m4
>>>>>>>>>>>>>>> config.sub
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> in order to add a Bg/P setup without success. Is there
>>>>>>>>>>>>>>> documentation
>>>>>>>>>>>>>>> available for adding a machine config? I was not able to find
>>>>>>>>>>>>>>> any on
>>>>>>>>>>>>>>> the Overture webpage.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Joe Bernstein
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>> .
>>>>>>>>
>>>>>
>>> .
>>>
>>
>
> .
>



Other related posts: