############################################################################### # # # Trilinos Release 10.4 Release Notes # # # ############################################################################### Overview: The Trilinos Project is an effort to develop algorithms and enabling technologies within an object-oriented software framework for the solution of large-scale, complex multi-physics engineering and scientific problems. Packages: The Trilinos 10.4 general release contains 47 packages: Amesos, Anasazi, AztecOO, Belos, CTrilinos*, Didasko, Epetra, EpetraExt, FEI, Galeri, GlobiPack*, Ifpack, Intrepid, Isorropia, Kokkos, Komplex, LOCA, Meros, Mesquite, ML, Moertel, MOOCHO, NOX, Optika, OptiPack*, Pamgen, Phalanx, Piro, Pliris, PyTrilinos, RTOp, Rythmos, Sacado, Shards, STK, Stokhos, Stratimikos, Sundance, Teuchos, ThreadPool, Thyra, Tifpack, Tpetra, TriKota, TrilinosCouplings, Triutils, Zoltan. (* denotes packages that are being released externally as a part of Trilinos for the first time.) Framework Release Notes: - Reduction of user CMake cache variables with CMake GUI 2.8.2 and newer Release 2.8.2 of the CMake QT-based GUI now has seprate check boxes for "Grouped" and "Advanced" CMake cache variables. This, together with changes in the Trilinos CMake files to only set defaults for cache variables for Trilinos packages that are actually enabled, has made the manipulation of CMake varibles much more manageable for Trilinos users. - Export Makefile support added Similar to the find Trilinos capability for cmake-aware projects an export Makefile capability is being officially released. Each package will have a Makefile.export. created for it that can be included in the Makefiles for a project to give it access to information about what was built, which compilers were used etc. Please see commonTools/importing/README.Export_Makefile for more information and instructions on how to use it. - Find Trilinos files moved The installed files for finding Trilinos in a cmake-aware project have moved to the include directory instead of being at the top level. It was felt that installing into the top level could be confusing when the install path was a system path. More information: Trilinos website: http://trilinos.sandia.gov =============================================================================== Package Release Notes: ------------------------------------------------------------------------------- Anasazi - Brought Anasazi/Tpetra adaptors back online (experimental) ------------------------------------------------------------------------------- Belos - Replaced non-const MultiVecTraits::CloneView(MV) with explicit MultiVecTraits::CloneViewNonConst(MV). This is a non-backwards-compatible change to Belos::MultiVecTraits, requiring changes through Belos solver, solver managers, and orthomanagers. The result is that it is much harder to accidentally create a non-const view when a const view is sufficient. To do so requires CloneViewNonConst() be called explicitly, all such calls being manually invoked during this refactorization. - Efficiency improvements for Belos/Tpetra adaptors (experimental) ------------------------------------------------------------------------------- Kokkos Sparse ops: - Combined DefaultSparseSolve and DefaultSparseMultiply into DefaultSparseOps - Added new traits class, DefaultKernels, to specify default sparse and default block sparse objects - Added new classes supporting Tpetra::VbrMatrix MultiVector ops: - Some methods were missing "inline" specifier. This could (should?) improve performance for TPINode. CUDANodeMemoryModel: - Support for tracing/profiling data movement between host and GPU ------------------------------------------------------------------------------- phdMesh - phdMesh has been removed from the release. STK provides replacement functionality. ------------------------------------------------------------------------------- PyTrilinos - The logic for determining the prefix for the install directory for PyTrilinos has been improved. Highest precedence is given to the configure variable PyTrilinos_INSTALL_PREFIX. If this is not set by the user, then next highest precedence is given to CMAKE_INSTALL_PREFIX. If this has not been set by the user, then the prefix of the python interpreter that PyTrilinos is being compiled against is used. ------------------------------------------------------------------------------- Sundance - To compile Sundance explicit instantiation is now required. To enable explicit instantiation you will need to set Trilinos_ENABLE_EXPLICIT_INSTANTIATION to ON when configuring. ------------------------------------------------------------------------------- Teuchos Known breaks in backward compatibility: - Changed direct constructors for ArrayRCP to take (lowerOffset, size) instead of (lowerOffset, upperOffset) to be consistent with the nonmember constructors like arcp(...) and ArrayView. This was done to make these constructors consistent with the non-member constructors. As long clients were using the nonmember constructors this will not break backward compatibility. However, if clients are using the direct constructors, upperOffset becomes size which means that the size will actually become one less with the upperOffset becoming one less. This will therefore not result in memory access errors but will result in exceptions being thrown when accessing the real last element. Given the confusion that having diffrent arguments caused (that I got caught with too) and the inherent safety inthe change, I think this break with strict backward compatibiity is well worth the (minor) problems it might cause to users. - Removed define of TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED for _AIX. The macro TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED was designed to be used only internally within Teuchos (and perhaps other parts of Trilinos) but at some point all use of this macro was removed (apparently in all of Trilinos). If client code used this macro for their own purposes, then this change will break client code when _AIX is defined. However, it seems unlikely that there will be such client code around. ------------------------------------------------------------------------------- Tpetra - Kokkos and Tpetra are in the middle of a medium refactor in order to better support GPU and multicore nodes. Therefore, there has been some potential regression in performance for GPU nodes; and some known issues regarding multi-core CPU performance (especially on NUMA platforms) have not been addressed. The rest of this refactor is likely to happen in the development branch, and will not be released until 10.6 (estimated for September 2010). Users that require access to this code should contact a Trilinos developer regarding access to the development branch repository. Improvements to doxygen documentation. - Added ifdefs to support profiling/tracing of host-to-device memory transfers These are enable via cmake options -D Kokkos_CUDA_NODE_MEMORY_PROFILING:BOOL=ON -D Kokkos_CUDA_NODE_MEMORY_TRACE:BOOL=ON VBR capability (experimental) - Added variable-block row matrix (VbrMatrix) and underlying support classes (BlockMap, BlockMultiVector) - Added power method example of VBR classes CrsMatrix: - Now implements DisbObject, allowing import/export capability with CrsMatrix objects (experimental) - Combined LocalMatVec and LocalMatSolve objects into a single template parameter (non BC). This required changes to CrsMatrixMultplyOp and CrsMatrixSolveOp operators as well (non BC). - Access default for this type via Kokkos::DefaultKernels - Removed cached views of object data. this should have no effect on CPU-based nodes, but will result in slower performance for GPU-based nodes. This regression is a result of the release happening mid-refactor. It will not be addressed in the 10.4.x sequence. - Bug fixes regarding complex cases involving user-specified column maps and graphs. DistObject interface: - Added createViews(), releaseViews() methods to allow host-based objects to temporarily cache views of host data during import/export procedure Map: - Added new non-member constructors: createContigMap(), createWeightedContigMap(), createUniformContigMap() - Fixed some bugs regarding use of unsigned Ordinal types - Fixed MPI-stalling bug in getRemoteIndexList() MultiVector: - Added view methods offsetView() and offsetViewNonConst() to create a MultiVector view of a subset of rows - Added non-member constructor Tpetra::createMultiVector(map,numVecs) Vector: - Added non-member constructor Tpetra::createVector(map) Tpetra I/O: - Added Galeri-type methods for generating pedagogical matrices (currently, only 3D Laplacian) External adaptors (experiemental) - Efficiency improvements for Belos/Tpetra adaptors - Brought Anasazi/Tpetra adaptors back online