[molpro-user] compiling c++ part of code with IBM compiler

Jeff Hammond jhammond at alcf.anl.gov
Wed Feb 13 15:59:57 GMT 2013


Hi Andy,

If you want machine access to port Molpro to BGP, POWER7 and/or BGQ,
let me know and I will arrange it for you.

Hi Amit,

Just use GCC C++ compiler (mpicxx on BG).  The XLC++ compiler on BGP
is really bad and even if I filed a bug report today, IBM might not
fix it before the machine is unplugged at Argonne (in a year or so).
You'll not see an performance benefit from XLC anyways since it
auto-vectorizes about as often as large asteroids strike the earth.

In general, I always recommend porting a code to BG for the first time
with GCC.  If that works but the subsequent attempt with the IBM
compilers fails, we know it's a compiler problem.  On the other hand,
if the GCC port fails, it's a system software issue, not a compiler
issue.  Occasionally, GCC has problems but those can always be
verified on another system, which makes debugging much simpler.

If GCC 4.1.2 doesn't work due to lack of either C++ or Fortran 95
support, we also have GCC 4.3.2 (you'll need the softenv key for this,
but type "softenv" and it will show you the list of options
available).  Users have built GCC 4.6 on BGP in the event that Molpro
needs some very exotic C++ features added recently (I doubt this).

Best,

Jeff

On Wed, Feb 13, 2013 at 5:49 AM, Andy May <MayAJ1 at cardiff.ac.uk> wrote:
> Amit,
>
> We don't have access to the IBM XL compilers or any systems with them
> installed, so the settings for those compilers are quite old and not tested
> recently.
>
> If you can send me the changes you needed to make to CONFIG, subdirs.mk etc.
> then I'll patch them in.
>
> I tried searching for the error and came across this:
>
> http://stackoverflow.com/questions/1094066/static-declarations-are-not-considered-for-a-function-call-if-the-function-is-no
>
> which seems to suggest that simply removing the 'static' declarations (eg.
> line 2188) should be able to fix the problem, perhaps you can try this?
>
> Best wishes,
>
> Andy
>
>
> On 07/02/13 22:15, amit sharma wrote:
>>
>> Hi,
>> I am trying to compile Molpro 2012 with IBM compiler on BG/P. There were
>> issues with the fortran part of the code which I was able to resolve. I
>> had to declare separate flags for .F and .F90 and make changes in
>> subdirs.mk <http://subdirs.mk>. The fortran part has been compiled. I am
>>
>> getting errors when compiling the c++ part of the package, mostly in
>> src/cic subdirectory. Similar errors have been reported on IBM forums at
>> some point of time and seems to have been resolved. Maybe I am missing a
>> flag that someone can point me to or I might be using wrong -D flag.
>> Here are the errors
>> $(CXX) -c $(CXXFLAGS) -O3 ItfTensor.cpp
>>
>> where CXXFLAGS is =
>>
>> -qarch=450d -qtune=450 -DMOLPRO -D_I8_ -DBLAS_INT=8 -DLAPACK_INT=8
>> -DMOLPRO_FORCE_VECTOR -DMOLPRO_HPDIR -DMOLPRO_NEXTSCALAR
>> -DMOLPRO_NO_RECURRENCE -DMOLPRO_NOVECTOR -DMOLPRO_SCALAR
>> -DMOLPRO_SHORTLOOP -D_MOLCAS_MPP_ -I. -I.. -I../Molcas/Include
>> -I../boost -qidirfirst
>>
>> "ItfTensor.cpp", line 2274.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPair2" did not find a declaration.
>> "ItfTensor.cpp", line 2274.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> "ItfTensor.cpp", line 2248.6: 1540-0700 (I) The previous message was
>> produced while processing
>> "FIndexCanonicalizer::Canonicalize<TArrayFix<signed char,6,unsigned int>
>>  >(TArrayFix<signed char,6,unsigned int> &, FSlotOrder &, const
>> TArrayFix<signed char,6,unsigned int> &) const".
>> "ItfTensor.cpp", line 2279.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPairGen" did not find a declaration.
>> "ItfTensor.cpp", line 2279.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> "ItfTensor.cpp", line 2274.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPair2" did not find a declaration.
>> "ItfTensor.cpp", line 2274.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> "ItfTensor.cpp", line 2248.6: 1540-0700 (I) The previous message was
>> produced while processing
>> "FIndexCanonicalizer::Canonicalize<TArrayFix<unsigned long
>> long,6,unsigned int> >(TArrayFix<unsigned long long,6,unsigned int> &,
>> FSlotOrder &, const TArrayFix<unsigned long long,6,unsigned int> &)
>> const".
>> "ItfTensor.cpp", line 574.41: 1540-0700 (I) The previous message was
>> produced while processing "FTensorShapeCut::MakeBlockEntries(FBlockEntry
>> *&, FBlockCount &, FMemoryStack &, const FBlockRange &, const
>> FSlotAccessModes &, uint) const".
>> "ItfTensor.cpp", line 2279.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPairGen" did not find a declaration.
>> "ItfTensor.cpp", line 2279.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> "ItfTensor.cpp", line 2274.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPair2" did not find a declaration.
>> "ItfTensor.cpp", line 2274.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> "ItfTensor.cpp", line 2248.6: 1540-0700 (I) The previous message was
>> produced while processing
>> "FIndexCanonicalizer::Canonicalize<FBlockRange>(FBlockRange &,
>> FSlotOrder &, const FBlockRange &) const".
>> "ItfTensor.cpp", line 2279.17: 1540-0274 (S) The name lookup for
>> "CanonicalizeIndexPairGen" did not find a declaration.
>> "ItfTensor.cpp", line 2279.17: 1540-1292 (I) Static declarations are not
>> considered for a function call if the function is not qualified.
>> make[2]: *** [ItfTensor.o] Error 1
>>
>>
>>  >mpixlcxx -qarch=450d -qtune=450 -DMOLPRO -D_I8_ -DBLAS_INT=8
>> -DLAPACK_INT=8 -DMOLPRO_FORCE_VECTOR -DMOLPRO_HPDIR -DMOLPRO_NEXTSCALAR
>> -DMOLPRO_NO_RECURRENCE -DMOLPRO_NOVECTOR -DMOLPRO_SCALAR
>> -DMOLPRO_SHORTLOOP -D_MOLCAS_MPP_ -I. -I.. -I../Molcas/Include
>> -I../boost -qidirfirst -c ItfAlgoSet.cpp
>> "ItfAlgoSet.cpp", line 683.27: 1540-1187 (S) "GenerateAlgo" must not
>> have default arguments.
>>
>> Thx
>> Amit
>>
>>
>>
>>
>>
>> _______________________________________________
>> Molpro-user mailing list
>> Molpro-user at molpro.net
>> http://www.molpro.net/mailman/listinfo/molpro-user
>>
> _______________________________________________
> Molpro-user mailing list
> Molpro-user at molpro.net
> http://www.molpro.net/mailman/listinfo/molpro-user



-- 
Jeff Hammond
Argonne Leadership Computing Facility
University of Chicago Computation Institute
jhammond at alcf.anl.gov / (630) 252-5381
http://www.linkedin.com/in/jeffhammond
https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond



More information about the Molpro-user mailing list