[Trilinos-Users] [EXTERNAL] Workaround for Amesos2/SuperLU_Dist Build Errors

Siva Rajamanickam srajama at sandia.gov
Tue Mar 31 11:05:45 MDT 2015


Nate
   Thank you for the detailed report and how you went about it.

  On the SuperLU_Dist side: I have reported the errors to the SuperLU developers 
and they told me they will fix it in the next release.

  On the KLU2 side: We will fix the macro name.

  I don't know why we don't run into the Amesos2 errors that you ran into, but 
again let me make sure your changes are good and commit them
to the repo.

  Thanks for reporting them.

-Siva


On 03/31/2015 10:55 AM, Roberts, Nathan V. wrote:
> Dear Trilinos-Users,
>
> We are looking to swap Amesos for Amesos2 in our framework (Camellia), which optionally supports SuperLU_Dist for global solves.  We have been running into precisely the same issue as Kris Beckwith in the thread from a few weeks ago quoted below.  I've come up with a workaround that I think will work for us, and I'm sharing in the hope that others might benefit.  (All of the below are using the public Git repository, updated today.)
>
>  From that thread, it sounds like even SuperLU_Dist 4.0 is subject to this issue.  Our move to Amesos2 is motivated by a user who wants support for complex variables; this is part of a move from using Epetra to Tpetra.  However, he doesn't necessarily need the SuperLU_Dist support, at least for immediate purposes, so my thought is to use build options to support two combinations:
>
> 1. Amesos2 + SuperLU_Dist without complex support.
> 2. Amesos2 without SuperLU_Dist
>
> I see in Amesos2_Superludist.hpp the relevant instantiations appear to be governed by the flag
>
> HAVE_TPETRA_INST_COMPLEX_DOUBLE
>
> which in turn is governed (in tpetra/core/CMakeLists.txt) by the flag
>
> HAVE_COMPLEX_BLAS
>
> which in turn is governed (in Teuchos/CMakeLists.txt) by the flag
>
> Teuchos_ENABLE_COMPLEX
>
> So, my approach in our Trilinos do-configure is simply to set
>
> -D Teuchos_ENABLE_COMPLEX:BOOL=OFF
>
> whenever SuperLU_Dist support is desired.
>
> Now, we are also enabling support for KLU2, and there is an additional issue there: both SuperLU_Dist and KLU2 define a "CEILING" macro.  So, I renamed the one in packages/amesos2/src/SuiteSparse/KLU2/Include/klu2_version.h KLU_CEILING.
>
> There were two more compile issues in /Users/nroberts/publicTrilinos/packages/amesos2/src/Amesos2_Superludist_def.hpp:
>
> a) There were a couple calls to a non-existent method, getRawPtrComm(); I took the compiler's advice to replace with getRawMpiComm(), which seemed to make semantic sense in the context.
> b) Line 216 involved an undeclared identifier matrixA_; I replaced with A, which seemed likely to be what was intended.
>
> With those changes, I was able to get everything building.
>
> Regards,
> Nate
>
> On Mar 13, 2015, at 11:26 AM, Eric Bavier <bavier at cray.com> wrote:
>
>> No, this is the case in more recent SuperLU_DIST versions as well.  The complex and real headers both declare structures that are incompatible.  The Cray C++ compiler also throws errors when the real and complex versions are used together.
>>
>> Kris, you may try to disable the complex support in Amesos2 if you do not need it.
>>
>> `~Eric
>> ________________________________________
>> From: trilinos-users-bounces at software.sandia.gov [trilinos-users-bounces at software.sandia.gov] on behalf of Siva Rajamanickam [srajama at sandia.gov]
>> Sent: Friday, March 13, 2015 10:55
>> To: trilinos-users at software.sandia.gov
>> Subject: Re: [Trilinos-Users] [EXTERNAL] Amesos2/SuperLUdist Build Errors on OSX
>>
>> Kris
>>    This looks like SuperLU_dist 2.5 has definitions that don't depend on scalar
>> types (double or complex) in both *zdef and *ddef header files. I believe this
>> is fixed in newer versions.
>>
>> Thanks
>> Siva
>>
>> On 03/13/2015 07:59 AM, Kris Beckwith wrote:
>>> xtern int_t pxgstrs_init(int_t, int_t, int_t, int_t,
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> https://software.sandia.gov/mailman/listinfo/trilinos-users
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at software.sandia.gov
>> https://software.sandia.gov/mailman/listinfo/trilinos-users



More information about the Trilinos-Users mailing list