[Trilinos-Users] [EXTERNAL] 64bit indices in Hypre, Superlu-Dist and Metis/Parmetis

JR Cary cary at colorado.edu
Thu Feb 23 11:54:08 EST 2017


Hi Andrey,

So because of the 2e9 problem, we need to embark on the int -> ssize_t
migration.  You guys did it through templating over the integer type.
Other approaching could include having a define or simply a global
replacement.

Can you share how you came to decide on templating?

Thx....John

On 2/23/2017 8:21 AM, Prokopenko, Andrey V. wrote:
> There was an effort to allow Epetra with 64-bit indices. So, 
> technically most Epetra classes are now templated on the index type.
>
> I think the conversion mainly touched widely used classes. I don't 
> think it has 100% coverage. Looking at the code Denis mentioned, some 
> of the required classes there were not converted, and thus are not 
> compatible. I am not certain of an amount of effort required to do that.
>
> -Andrey
>
> On 02/23/2017 08:17 AM, Klinvex, Alicia Marie wrote:
>> Hello Denis,
>>
>> Since Epetra isn't templated, I'm not sure I see a way to support 
>> 64bit ints in that hypre interface.  (CCed Mark in case he has some 
>> ideas.)  We should be able to support it in the tpetra-based 
>> interface though, if you're interested in that one.
>>
>> Best wishes,
>> Alicia
>>
>> -----Original Message-----
>> From: Trilinos-Users [mailto:trilinos-users-bounces at trilinos.org] On 
>> Behalf Of Denis Davydov
>> Sent: Thursday, February 23, 2017 5:14 AM
>> To: trilinos-users <trilinos-users at trilinos.org>
>> Subject: [EXTERNAL] [Trilinos-Users] 64bit indices in Hypre, 
>> Superlu-Dist and Metis/Parmetis
>>
>> Dear all,
>>
>> I am building a stack (with 64bit indices) composed of PETSc, 
>> Trilinos, Superlu-Dist, Metis, etc and came across the following 
>> compiler error in EpetraExt:
>>
>> /home/user/spack/var/spack/stage/trilinos-12.10.1-kgdtcmcwce6xhetukputhnh2f7v4sljf/Trilinos-trilinos-release-12-10-1/packages/epetraext/src/hypre/EpetraExt_HypreIJMatrix.cpp:91:96: 
>> error: cannot convert ‘int*’ to ‘HYPRE_Int* {aka long long int*}’ for 
>> argument ‘3’ to ‘HYPRE_Int 
>> HYPRE_ParCSRMatrixGetRow(HYPRE_ParCSRMatrix, HYPRE_Int, HYPRE_Int*, 
>> HYPRE_Int**, HYPRE_Complex**)’
>>       ierr += HYPRE_ParCSRMatrixGetRow(ParMatrix_, i+MyRowStart_, 
>> &num_entries, &indices, &values);
>> ^
>>
>> That’s of course because if PETSc is built with 64bit ints, then 
>> Hypre have to be also built accordingly.
>>
>> So what are the requirements from Trilinos side on those 
>> dependencies? Can it not be built against Hypre or Superlu-Dist when 
>> those packages are configured with —enable-biginit and -D_LONGINT, 
>> respectively?
>> Or is it a bug in EpetraExt?
>>
>> Regards,
>> Denis.
>>
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at trilinos.org
>> https://trilinos.org/mailman/listinfo/trilinos-users
>> _______________________________________________
>> Trilinos-Users mailing list
>> Trilinos-Users at trilinos.org
>> https://trilinos.org/mailman/listinfo/trilinos-users
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at trilinos.org
> https://trilinos.org/mailman/listinfo/trilinos-users
>



More information about the Trilinos-Users mailing list