[Trilinos-Users] Modified Amesos2 dependency on SuiteSparse

Willenbring, James M jmwille at sandia.gov
Thu Jan 5 17:11:02 EST 2017


A fairly significant change was applied to the Trilinos develop branch today that removes the SuiteSparse code from Amesos and creates a separate “auxiliary” package. This results in Amesos2 not requiring a dependence on Amesos (and indirectly several other unnecessary packages) anymore, but rather depending on the new auxiliary package. This change should be uneventful for the vast majority of people, but we wanted to point out the change so that people are aware of it in case they encounter issues. Kris Beckwith provided the following more detailed description of the change and some possible issues that users may encounter. If your code directly calls the version of SuiteSparse in Trilinos, you manually produce link lines including Trilinos libraries for your application, or if you just want to know more about this change, please read on.




In order to remove the Amesos2 dependency on Amesos (and hence compile
Amesos2 without the need to build Epetra), the Amesos version of SuiteSparse
(previously located in Trilinos/packages/amesos/src/SuiteSparse) has been
moved to a new package, TrilinosSS, (located in Trilinos/packages/common/auxiliarySoftware/TrilinosSS).
Amesos and Amesos2 now depend on TrilinosSS; as a result TrilinosSS is listed
as primary tested code and can be enabled separately to Amesos/Amesos2 in
an identical fashion to any other Trilinos package.

As part of this effort, several significant changes in addition to the relocation of
the SuiteSparse code were necessary. These are as follows:

- The SuiteSparse code under Amesos was previously namespaced with amesos_.
This namespacing has been changed to trilinos_. The namespacing has been changed
consistently throughout Trilinos. However, if downstream applications directly included
the SuiteSparse code under Amesos, then corresponding namespace changes will need
to be made there.

- The TrilinosSuiteSparse package compiles into a single library that can be linked against.
Previously, select SuiteSparse code was compiled into the Amesos library. While the new
TrilinosSuiteSparse library is linked into the appropriate Trilinos packages, downstream
applications will have to ensure that the appropriate linking is performed. If this is done
directly from the Trilinos provided CMake variables, then this should occur automatically.
However, build systems such as autotools, or manual approaches will have to be adjusted

- The TrilinosSuiteSparse package does NOT include CHOLMOD or PARAKLETE. The version
of CHOLMOD that exited under Amesos does not compile successfully; users wishing to utilize
CHOLMOD functionality should use the appropriate TriBits TPL. The PARAKLETE module has
always been broken; this functionality has been removed from Amesos and a configure time
error is now thrown informing the user of this.

- Several bug fixes have been implemented in the TrilinosSuiteSparse code (primarily related to
assignment of void* to concrete types) in order to enable SuiteSparse code to compile. While
these fixes have not impacted Trilinos tests, downstream applications may notice impacts if
they previously utilized this code directly.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20170105/6727e97a/attachment.html>

More information about the Trilinos-Users mailing list