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

Nate Roberts nate at nateroberts.com
Mon Apr 6 11:05:46 MDT 2015


Dear Trilinos-Users,

A small correction to my second fix to packages/amesos2/src/Amesos2_Superludist_def.hpp: I should have replaced matrixA_ with this->matrixA_, instead of A.

Regards,
Nate

On Mar 31, 2015, at 11:55 AM, "Roberts, Nathan V." <nvroberts at alcf.anl.gov> 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
> 
> _______________________________________________
> 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