Trilinos issueshttps://gitlab.osti.gov/jmwille/Trilinos/-/issues2015-11-20T22:51:59Zhttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/16Kokkos: make compiler checks at configure time2015-11-20T22:51:59ZJames WillenbringKokkos: make compiler checks at configure time*Created by: nschloe*
Right now, Kokkos checks for compiler versions at compile time (e.g., in `./packages/kokkos/core/src/Kokkos_Macros.hpp`). However, this is something that can (and hence should) be checked earlier, namely at configu...*Created by: nschloe*
Right now, Kokkos checks for compiler versions at compile time (e.g., in `./packages/kokkos/core/src/Kokkos_Macros.hpp`). However, this is something that can (and hence should) be checked earlier, namely at configure time by CMake.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/20FEI: no match for 'operator<< (GCC 5.2.1)2015-11-20T23:18:58ZJames WillenbringFEI: no match for 'operator<< (GCC 5.2.1)*Created by: nschloe*
When configuring Trilinos with
``` sh
cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMA...*Created by: nschloe*
When configuring Trilinos with
``` sh
cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_Fortran_COMPILER=mpif90 \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DTrilinos_LIBRARY_NAME_PREFIX:STRING=trilinos_ \
-DTrilinos_INSTALL_INCLUDE_DIR:PATH=include/trilinos/ \
-DTrilinos_USE_GNUINSTALLDIRS:BOOL=ON \
-DTrilinos_ENABLE_DEVELOPMENT_MODE:BOOL=OFF \
-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-DTrilinos_ENABLE_SECONDARY_TESTED_CODE:BOOL=ON \
-DTrilinos_ASSERT_MISSING_PACKAGES:BOOL=OFF \
-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON \
-DTrilinos_ENABLE_Didasko:BOOL=OFF \
-DTrilinos_ENABLE_Gtest:BOOL=OFF \
-DTrilinos_ENABLE_CTrilinos:BOOL=OFF \
-DTrilinos_ENABLE_ForTrilinos:BOOL=OFF \
-DTrilinos_ENABLE_Mesquite:BOOL=OFF \
-DTrilinos_ENABLE_MOOCHO:BOOL=OFF \
-DTrilinos_ENABLE_Optika:BOOL=OFF \
-DTrilinos_ENABLE_Phdmesh:BOOL=OFF \
-DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \
-DTrilinos_ENABLE_Sundance:BOOL=OFF \
-DTrilinos_ENABLE_STKClassic:BOOL=OFF \
-DTrilinos_ENABLE_STKDoc_tests:BOOL=OFF \
-DTrilinos_ENABLE_STKSearch:BOOL=OFF \
-DTrilinos_ENABLE_STKUnit_tests:BOOL=OFF \
-DTrilinos_ENABLE_ThreadPool:BOOL=OFF \
-DTrilinos_ENABLE_EXAMPLES:BOOL=OFF \
-DTrilinos_ENABLE_TESTS:BOOL=OFF \
-DSEACAS_ENABLE_NETCDF4_SUPPORT:BOOL=ON \
-DSEACASExodus_ENABLE_MPI:BOOL=OFF \
-DTPL_ENABLE_BinUtils:BOOL=ON \
-DTPL_ENABLE_Boost:BOOL=ON \
-DTPL_ENABLE_HDF5:BOOL=OFF \
-DTPL_ENABLE_Matio:BOOL=OFF \
-DTPL_ENABLE_MATLAB:BOOL=OFF \
-DTPL_ENABLE_MPI:BOOL=ON \
-DTPL_ENABLE_MUMPS:BOOL=ON \
-DTPL_ENABLE_ParMETIS:BOOL=OFF \
-DTPL_ENABLE_Scotch:BOOL=ON \
-DTPL_Scotch_INCLUDE_DIRS:PATH=/usr/include/scotch/ \
-DTPL_ENABLE_SuperLU:BOOL=ON \
-DSuperLU_INCLUDE_DIRS:PATH=/usr/include/superlu/ \
-DTPL_ENABLE_TBB:BOOL=ON \
-DTPL_ENABLE_X11:BOOL=OFF \
-DTPL_ENABLE_Zlib:BOOL=ON
```
(can perhaps be stripped down) and when using GCC 5.2.1, one gets the compile error
```
[...]
/«PKGBUILDDIR»/packages/fei/test_utils/snl_fei_tester.cpp:526:65: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'std::ostringstream {aka std::__cxx11::basic_ostringstream<char>}')
fei::console_out() << "ERROR opening solution output file " << fileName << FEI_ENDL;
^
/«PKGBUILDDIR»/packages/fei/test_utils/snl_fei_tester.cpp:526:65: note: candidate: operator<<(int, int) <built-in>
/«PKGBUILDDIR»/packages/fei/test_utils/snl_fei_tester.c
```
The full log is [here](https://launchpadlibrarian.net/214282732/buildlog_ubuntu-wily-amd64.trilinos_12.3~201508121416-wily1_BUILDING.txt.gz).
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/27@ShyLU : Testing the github team features for issues. Dummy issue.2015-11-24T17:30:09ZJames Willenbring@ShyLU : Testing the github team features for issues. Dummy issue.*Created by: srajama1*
Dummy issue.
*Created by: srajama1*
Dummy issue.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/28@trilinos/shylu : One more dummy issue for testing. Sorry for the spam.2015-11-24T18:49:04ZJames Willenbring@trilinos/shylu : One more dummy issue for testing. Sorry for the spam.*Created by: srajama1*
Dummy issue.
*Created by: srajama1*
Dummy issue.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/32Tpetra: Overload CrsMatrix::sumIntoLocalValues to take Kokkos::View instead o...2015-11-29T06:39:19ZJames WillenbringTpetra: Overload CrsMatrix::sumIntoLocalValues to take Kokkos::View instead of Teuchos::ArrayView *Created by: mhoemmen*
@trilinos/tpetra
Add an overload of `Tpetra::CrsMatrix::sumIntoLocalValues` to take the input arrays as unmanaged `Kokkos::View`, instead of as Teuchos::ArrayView.
*Created by: mhoemmen*
@trilinos/tpetra
Add an overload of `Tpetra::CrsMatrix::sumIntoLocalValues` to take the input arrays as unmanaged `Kokkos::View`, instead of as Teuchos::ArrayView.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/31Tpetra: Add optional 'atomic' argument to sumIntoLocalValue(s)2015-11-29T06:45:45ZJames WillenbringTpetra: Add optional 'atomic' argument to sumIntoLocalValue(s)*Created by: mhoemmen*
@trilinos/tpetra
For `Tpetra::MultiVector`, `Tpetra::Vector`, and `Tpetra::CrsMatrix`, add an optional bool `atomic` argument to `sumIntoLocalValue` resp. `sumIntoLocalValues`. If true, use `Kokkos::atomic_add`...*Created by: mhoemmen*
@trilinos/tpetra
For `Tpetra::MultiVector`, `Tpetra::Vector`, and `Tpetra::CrsMatrix`, add an optional bool `atomic` argument to `sumIntoLocalValue` resp. `sumIntoLocalValues`. If true, use `Kokkos::atomic_add` to do the `+=`; else, use `+=`. The default value of `atomic` should depend on the class' execution space: it should be false if and only if the execution space is `Kokkos::Serial` (so that existing MPI-only users don't have to pay for atomic updates).
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/11Zoltan: outdated-autotools-helper-file2015-11-30T19:33:34ZJames WillenbringZoltan: outdated-autotools-helper-file*Created by: nschloe*
Zoltan still ships autotools helper files with the sources, and they are quite old. Debian marks them as [`outdated`](https://lintian.debian.org/tags/outdated-autotools-helper-file.html):
```
trilinos source: outd...*Created by: nschloe*
Zoltan still ships autotools helper files with the sources, and they are quite old. Debian marks them as [`outdated`](https://lintian.debian.org/tags/outdated-autotools-helper-file.html):
```
trilinos source: outdated-autotools-helper-file packages/zoltan/config/config.guess 2012-01-01
trilinos source: outdated-autotools-helper-file packages/zoltan/config/config.sub 2012-01-01
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/38Anasazi::MultiVecTraits for Tpetra: Avoid using REDUCE_SUM in MvTransMv2015-12-01T15:45:27ZJames WillenbringAnasazi::MultiVecTraits for Tpetra: Avoid using REDUCE_SUM in MvTransMv*Created by: mhoemmen*
@trilinos/anasazi
This is the Anasazi version of Issue #37.
*Created by: mhoemmen*
@trilinos/anasazi
This is the Anasazi version of Issue #37.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/37Belos::MultiVecTraits for Tpetra: Avoid using REDUCE_SUM in MvTransMv2015-12-01T15:45:27ZJames WillenbringBelos::MultiVecTraits for Tpetra: Avoid using REDUCE_SUM in MvTransMv*Created by: mhoemmen*
@trilinos/belos
@amklinv
The Tpetra specialization of Belos::MultiVecTraits::MvTransMv uses Teuchos::REDUCE_SUM. This is the only MultiVecTraits method implementation for Tpetra that uses this enum. Either PE...*Created by: mhoemmen*
@trilinos/belos
@amklinv
The Tpetra specialization of Belos::MultiVecTraits::MvTransMv uses Teuchos::REDUCE_SUM. This is the only MultiVecTraits method implementation for Tpetra that uses this enum. Either PETSc or Hypre appears to define a REDUCE_SUM macro, which causes build errors when colliding with this enum. While this is really an issue with PETSc or Hypre not namespacing their macros, we should be able to deal with this in Belos, and simplify the code at the same time.
1. Keep the branch of the code for the single vector case (Tpetra::MultiVector::multiply might not optimize for that case)
2. Otherwise, call Tpetra::MultiVector::multiply. View the input SerialDenseMatrix as a MultiVector and use a replicated Map.
Here is how you create the MultiVector to view the SerialDenseMatrix.
1. Create an empty Kokkos::DualView. Get device_type from Tpetra::MultiVector.
2. Create an HostSpace Kokkos::View (FIXME: Figure out how to specify at run time that the View is unmanaged, comparable to Teuchos::rcpFromRef -- I think you can just invoke the constructor that takes a raw pointer and dimensions, and everything will be ok).
3. Set the DualView's h_view field to the new View that you created in Step 2.
4. Mark the DualView as modified on host (actually you don't have to, because of UVM).
5. Give the DualView to Tpetra::MultiVector's constructor, along with a globally replicated Map.
In the source code of Tpetra::MultiVector::multiply, this is Case 2 (where C is "local," i.e., globally replicated over the same communicator as the input MultiVectors). Belos does something weird: namely, it calls multiply on a MultiVector with a "SerialComm." Thus, the multiply() method doesn't actually get to do the communication that it knows how to do (it calls "reduce()" internally). Just let MultiVector::multiply do what it knows how to do, by letting C have a globally replicated Map with the same communicator as A and B.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/40Tpetra::BlockCrsMatrix: Why does _decl.hpp header include <ctime> ???2015-12-02T20:27:21ZJames WillenbringTpetra::BlockCrsMatrix: Why does _decl.hpp header include <ctime> ???*Created by: mhoemmen*
@trilinos/tpetra @jhux2
*Created by: mhoemmen*
@trilinos/tpetra @jhux2
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/42some releases untagged2015-12-03T21:36:46ZJames Willenbringsome releases untagged*Created by: nschloe*
On https://github.com/trilinos/Trilinos/releases, we have a good overview of the tags. The current release 12.4.2 and also 12.4.0 are missing. There may be more.
*Created by: nschloe*
On https://github.com/trilinos/Trilinos/releases, we have a good overview of the tags. The current release 12.4.2 and also 12.4.0 are missing. There may be more.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/47Tpetra: (numProcs == 1 && nonlocals_.size() > 0) with incorrect base2015-12-07T20:03:08ZJames WillenbringTpetra: (numProcs == 1 && nonlocals_.size() > 0) with incorrect base*Created by: nschloe*
The following code
``` c++
#include <Teuchos_DefaultComm.hpp>
#include <Tpetra_CrsMatrix.hpp>
int main ( int argc, char *argv[] )
{
Teuchos::GlobalMPISession session(&argc, &argv, NULL);
auto comm = Teuchos:...*Created by: nschloe*
The following code
``` c++
#include <Teuchos_DefaultComm.hpp>
#include <Tpetra_CrsMatrix.hpp>
int main ( int argc, char *argv[] )
{
Teuchos::GlobalMPISession session(&argc, &argv, NULL);
auto comm = Teuchos::DefaultComm<int>::getComm();
const int numGlobal = 8;
auto map = Teuchos::rcp(new Tpetra::Map<int>(numGlobal, 0, comm));
std::vector<Teuchos::Tuple<int,4>> tuples =
{
Teuchos::tuple(2, 3, 4, 5),
Teuchos::tuple(4, 5, 6, 7),
Teuchos::tuple(2, 3, 6, 7),
Teuchos::tuple(2, 3, 8, 9),
Teuchos::tuple(4, 5, 8, 9)
};
// build graph
auto graph = Teuchos::rcp(new Tpetra::CrsGraph<int, int>(map, map, 0));
for (size_t k = 0; k < tuples.size(); k++) {
for (int i = 0; i < 4; i++) {
graph->insertGlobalIndices(tuples[k][i], tuples[k]);
}
}
graph->fillComplete();
// fill matrix
auto A = Teuchos::rcp(new Tpetra::CrsMatrix<double,int,int>(graph));
A->setAllToScalar(0.0);
auto vals = Teuchos::tuple(1.0, 1.1, 1.2, 1.3);
for (size_t k = 0; k < tuples.size(); k++) {
for (int i = 0; i < 4; i++) {
A->sumIntoGlobalValues(tuples[k][i], tuples[k], vals);
}
}
A->fillComplete();
return EXIT_SUCCESS;
}
```
errors out at the very last `fillComplete` with
```
terminate called after throwing an instance of 'std::runtime_error'
what(): /build/trilinos-xMfrMq/trilinos-12.5~20151207030212/packages/tpetra/core/src/Tpetra_CrsMatrix_def.hpp:3596:
Throw number = 2
Throw test that evaluated to true: (numProcs == 1 && nonlocals_.size() > 0)
Tpetra::CrsMatrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace>, false>::fillComplete: cannot have nonlocal entries on a serial run. An invalid entry (i.e., with row index not in the row Map) must have been submitted to the CrsMatrix.
```
A fix is to manually go through the `tuples` list, find out the lowest entry, and put that into `Tpetra::Map` instead of `0`. Perhaps this value is something that Tpetra can fill in for me.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/53Thyra -Werror build broken2015-12-14T16:19:56ZJames WillenbringThyra -Werror build broken*Created by: bartlettroscoe*
@mhoemmen, I believe your commit:
```
89a3771 "Thyra::TpetraVectorSpace: Get rid of unnecessary private fields."
Author: Mark Hoemmen <mhoemme@sandia.gov>
Date: Sat Dec 5 22:43:22 2015 -0700 (5 days ago)
...*Created by: bartlettroscoe*
@mhoemmen, I believe your commit:
```
89a3771 "Thyra::TpetraVectorSpace: Get rid of unnecessary private fields."
Author: Mark Hoemmen <mhoemme@sandia.gov>
Date: Sat Dec 5 22:43:22 2015 -0700 (5 days ago)
M packages/thyra/adapters/tpetra/src/Thyra_TpetraVectorSpace_decl.hpp
M packages/thyra/adapters/tpetra/src/Thyra_TpetraVectorSpace_def.hpp
```
caused these -Werror build errors shown in the below email. Can you please fix this?
Are you on the thyra-regression mail list?
-Ross
> -----Original Message-----
> From: thyra-regression-bounces@software.sandia.gov [mailto:thyra-
> regression-bounces@software.sandia.gov] On Behalf Of CDash
> Sent: Friday, December 11, 2015 12:11 AM
> To: thyra-regression@software.sandia.gov
> Subject: [Thyra-Regression] FAILED (b=4): Trilinos/Thyra - Linux-GCC-4.7.2-
> MPI_DEBUG_Werror_DEV - Nightly
>
> A submission to CDash for the project Trilinos has build errors.
> You have been identified as one of the authors who have checked in changes
> that are part of this submission or you are listed in the default contact list.
>
> Details on the submission can be found at
> http://testing.sandia.gov/cdash/buildSummary.php?buildid=2264582
>
> Project: Trilinos
> SubProject: Thyra
> Site: muir.sandia.gov
> Build Name: Linux-GCC-4.7.2-MPI_DEBUG_Werror_DEV
> Build Time: 2015-12-10T22:05:57 MST
> Type: Nightly
> Errors: 4
>
> _Error_
> packages/thyra/adapters/tpetra/test/TpetraThyraWrappers_UnitTests.cpp
> (http://testing.sandia.gov/cdash/viewBuildError.php?type=0&buildid=22645
> 82)
> In file included from /nightly/hudson/slave/workspace/trilinos-nightly-
> muir/MPI_DEBUG_Werror_DEV/Trilinos/pacg++: error:
> CMakeFiles/ThyraTpetraAdapters_Simple2DTpetraModelEvaluatorUnitTests.
> dir/Simple2DTpetraModelEvaluator_UnitTests.cpp.o: No such file or
> directory
> packages/thyra/adapters/tpetra/test/Simple2DTpetraModelEvaluator_UnitT
> ests.cpp
> (http://testing.sandia.gov/cdash/viewBuildError.php?type=0&buildid=22645
> 82)
> In file included from /nightly/hudson/slave/workspace/trilinos-nightly-
> muir/MPI_DEBUG_Werror_DEV/Trig++: error:
> CMakeFiles/ThyraTpetraAdapters_TpetraThyraWrappersUnitTests.dir/Tpetr
> aThyraWrappers_UnitTests.cpp.o: No such file or directory
>
> -CDash on testing.sandia.gov
> ---
>
> Thyra-Regression mailing list
> Thyra-Regression@software.sandia.gov
> https://software.sandia.gov/mailman/listinfo/thyra-regression
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/54Tpetra,Ifpack2: Add GEMM for small dense blocks2015-12-18T17:39:26ZJames WillenbringTpetra,Ifpack2: Add GEMM for small dense blocks*Created by: mhoemmen*
@trilinos/tpetra @amklinv @jhux2 @csiefer2
Ifpack2's incomplete LU factorization wants a matrix-matrix multiply (GEMM, in BLAS terms) for small dense matrices (the "blocks" in Tpetra's BlockCrsMatrix). The exis...*Created by: mhoemmen*
@trilinos/tpetra @amklinv @jhux2 @csiefer2
Ifpack2's incomplete LU factorization wants a matrix-matrix multiply (GEMM, in BLAS terms) for small dense matrices (the "blocks" in Tpetra's BlockCrsMatrix). The existing implementation (at the top of Ifpack2_Experimental_RBILUK_decl.hpp) assumes a particular layout of blocks.
This is like Issue #50, in that the eventual goal is to make all of these computational kernels available in KokkosKernels. We're starting by putting the kernels in the Tpetra::Experimental namespace.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/60build failure: multiple definition of `void Xpetra::Jacobi2015-12-18T20:54:06ZJames Willenbringbuild failure: multiple definition of `void Xpetra::Jacobi*Created by: nschloe*
The current master fails to build with
```
[...]
Wl,-Bdynamic ../../kokkos/algorithms/src/libtrilinos_kokkosalgorithms.so.12.5 ../../kokkos/core/src/libtrilinos_kokkoscore.so.12.5
CMakeFiles/trilinos_stokhos_muel...*Created by: nschloe*
The current master fails to build with
```
[...]
Wl,-Bdynamic ../../kokkos/algorithms/src/libtrilinos_kokkosalgorithms.so.12.5 ../../kokkos/core/src/libtrilinos_kokkoscore.so.12.5
CMakeFiles/trilinos_stokhos_muelu.dir/sacado/kokkos/pce/muelu/MueLu_SaPFactory_UQ_PCE_Serial.cpp.o: In function `Xpetra::TpetraCrsGraph<int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >::getMap() const':
/«PKGBUILDDIR»/packages/stokhos/src/sacado/kokkos/pce/Sacado_UQ_PCE.hpp:145: multiple definition of `void Xpetra::Jacobi<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >(double, Xpetra::Vector<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> > const&, Xpetra::Matrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> > const&, Xpetra::Matrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> > const&, Xpetra::Matrix<double, int, int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial, Kokkos::HostSpace> >&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
```
Full details (including configuration) [at Launchpad](https://launchpadlibrarian.net/230424356/buildlog_ubuntu-xenial-amd64.trilinos_12.5~20151218030407-xenial1_BUILDING.txt.gz).
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/63Tpetra::Distributor: Inheriting from VerboseObject<Distributor> causes crash ...2015-12-24T23:20:42ZJames WillenbringTpetra::Distributor: Inheriting from VerboseObject<Distributor> causes crash in Import ctor w/ various Intel compiler versions*Created by: mhoemmen*
@trilinos/tpetra @amklinv
With Intel 15.0.4 and Intel 16, using either Intel MPI or OpenMPI 1.8, the Tpetra::Import constructor crashes. Micah chased this down and found out that the Tpetra::Distributor instanc...*Created by: mhoemmen*
@trilinos/tpetra @amklinv
With Intel 15.0.4 and Intel 16, using either Intel MPI or OpenMPI 1.8, the Tpetra::Import constructor crashes. Micah chased this down and found out that the Tpetra::Distributor instance that Import creates inherits from Teuchos::VerboseObjectTpetra::Distributor (looks weird, I know, but this is how one is supposed to use VerboseObject), and that VerboseObject's constructor was getting into a weird multiply segfaulting infinite loop when calling initializeVerboseObjectBase().
Some versions of the Intel compiler have trouble with name resolution in certain cases. On a hunch, I made Distributor no longer inherit from VerboseObject, and that fixed the problem. Yay!
Thus, the fix is to remove Distributor's inheritance from VerboseObject. This was pretty easy to do but I want to make sure that Distributor's ParameterList still accepts a "VerboseObject" sublist (see e.g., line 430 of Tpetra_Distributor.cpp).
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/65unexpected (and silent) sumIntoGlobalValues failure2016-01-04T16:00:47ZJames Willenbringunexpected (and silent) sumIntoGlobalValues failure*Created by: nschloe*
@trilinos/tpetra
I have a larger application code in which I build up a matrix by looping over the edges of a mesh and sum values into the matrix for each of the two end points. I found that some indices aren't co...*Created by: nschloe*
@trilinos/tpetra
I have a larger application code in which I build up a matrix by looping over the edges of a mesh and sum values into the matrix for each of the two end points. I found that some indices aren't correctly inserted when running on more than one processes.
I could boil it down to
``` c++
#include <Teuchos_DefaultComm.hpp>
#include <Tpetra_CrsMatrix.hpp>
int main ( int argc, char *argv[] )
{
Teuchos::GlobalMPISession session(&argc, &argv, NULL);
// Initialize MPI
auto comm = Teuchos::DefaultComm<int>::getComm();
// build map in which process K owns row K
std::vector<int> ids = {comm->getRank()};
auto map = Teuchos::rcp(new Tpetra::Map<int>(-1, ids, 0, comm));
const int globalSize = map->getGlobalNumElements();
// insert indices from all processes
auto graph = Teuchos::rcp(new Tpetra::CrsGraph<int, int>(map, map, 0));
for (int i = 0; i < globalSize; i++) {
for (int j = 0; j < globalSize; j++) {
graph->insertGlobalIndices(i, Teuchos::tuple(j));
}
}
graph->fillComplete();
// fill matrix
auto A = Teuchos::rcp(new Tpetra::CrsMatrix<double,int,int>(graph));
A->setAllToScalar(0.0);
for (size_t k = 0; k < globalSize; k++) {
const int num = A->sumIntoGlobalValues(
k,
Teuchos::tuple(0, 1),
Teuchos::tuple(0.33, 1.55)
);
std::cout << "added from @" << comm->getRank() << " in row " << k << ": "
<< num
<< std::endl;
}
A->fillComplete();
return EXIT_SUCCESS;
}
```
When run on two procs, I'm getting
```
$ mpiexec -n 2 ./test
added from @0 in row 0: 1
added from @0 in row 1: 2
added from @1 in row 0: 2
added from @1 in row 1: 1
```
I would have expected that two entries are inserted for each `sumIntoGlobalValues`. The `insertGlobalIndices` I thought makes sure that the corresponding "slots" are present in the respective processes. Apparently, that's not the case.
When checking out the actual values after `A->fillComplete()` with
``` c++
Teuchos::Array<int> cols(100);
Teuchos::Array<double> vals(100);
size_t numss;
for (size_t k = 0; k < globalSize; k++) {
A->getGlobalRowCopy(k, cols, vals, numss);
std::cout << "@" << comm->getRank()
<< ", row " << k
<< ", num columns " << numss
<< ", columns ";
for (size_t kk = 0; kk < numss; kk++) {
std::cout << cols[kk] << " ";
}
std::cout << ", values ";
for (size_t kk = 0; kk < numss; kk++) {
std::cout << vals[kk] << " ";
}
std::cout << std::endl;
}
```
I'm getting
```
@0, row 0, num columns 2, columns -1 0 , values 0 0.66
@0, row 1, num columns 0, columns , values
@1, row 0, num columns 0, columns , values
@1, row 1, num columns 2, columns -1 1 , values 0 3.1
```
On a side node, is there a way to make Tpetra throw when this happens? Having to check the return value to assert correct operation seems a little Epetry.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/68describe with extreme verbosity only shows info on process 02016-01-07T00:49:11ZJames Willenbringdescribe with extreme verbosity only shows info on process 0*Created by: nschloe*
The output of
``` c++
#include <Teuchos_DefaultComm.hpp>
#include <Teuchos_VerboseObject.hpp>
#include <Tpetra_Map.hpp>
int main ( int argc, char *argv[] )
{
Teuchos::GlobalMPISession session(&argc, &argv, NULL...*Created by: nschloe*
The output of
``` c++
#include <Teuchos_DefaultComm.hpp>
#include <Teuchos_VerboseObject.hpp>
#include <Tpetra_Map.hpp>
int main ( int argc, char *argv[] )
{
Teuchos::GlobalMPISession session(&argc, &argv, NULL);
auto comm = Teuchos::DefaultComm<int>::getComm();
Tpetra::Map<int,int> map(23, 0, comm);
auto out = Teuchos::VerboseObjectBase::getDefaultOStream();
map.describe(*out, Teuchos::VERB_EXTREME);
return EXIT_SUCCESS;
}
```
when run on two procs is
```
$ make && mpiexec -n 2 ./tpetra-test
Process 0:
My number of entries: 12
My minimum global index: 0
My maximum global index: 11
My global indices: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
```
The same goes for vectors, probably other types.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/77Amesos_Mumps.cpp does not build when MPI is disabled2016-01-13T15:29:45ZJames WillenbringAmesos_Mumps.cpp does not build when MPI is disabled*Created by: bavier*
Configuring with cmake 3.3.2 at master@e9a607a with
```
$ mkdir build && cd build
$ cmake \
-DTrilinos_ENABLE_Amesos:BOOL=ON \
-DTPL_ENABLE_MUMPS:BOOL=ON \
..
```
then running `make` produces the follo...*Created by: bavier*
Configuring with cmake 3.3.2 at master@e9a607a with
```
$ mkdir build && cd build
$ cmake \
-DTrilinos_ENABLE_Amesos:BOOL=ON \
-DTPL_ENABLE_MUMPS:BOOL=ON \
..
```
then running `make` produces the following error:
```
/ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.cpp: In member function 'virtual int Amesos_Mumps::SymbolicFactorization()':
/ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.cpp:478:9: error: 'Epetra_MpiComm' does not name a type
const Epetra_MpiComm* MpiComm = dynamic_cast<const Epetra_MpiComm*>(&Comm());
^
In file included from /gnu/store/gma0ig9v61y7c1rhvaj7qx1ga86wnjs7-gfortran-4.9.3/include/c++/cassert:43:0,
from /ptmp/trilinos-12.6.1-rc/packages/teuchos/core/src/Teuchos_ConfigDefs.hpp:93,
from /ptmp/trilinos-12.6.1-rc/packages/teuchos/core/src/Teuchos_RCPNode.hpp:52,
from /ptmp/trilinos-12.6.1-rc/packages/teuchos/core/src/Teuchos_RCPDecl.hpp:51,
from /ptmp/trilinos-12.6.1-rc/packages/teuchos/core/src/Teuchos_RCP.hpp:58,
from /ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_BaseSolver.h:48,
from /ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.h:44,
from /ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.cpp:29:
/ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.cpp:479:11: error: 'MpiComm' was not declared in this scope
assert (MpiComm != 0);
^
/ptmp/trilinos-12.6.1-rc/packages/amesos/src/Amesos_Mumps.cpp:480:68: error: 'MPI_Comm_c2f' was not declared in this scope
MDS.comm_fortran = (MUMPS_INT) MPI_Comm_c2f(MpiComm->GetMpiComm());
^
```
I would expect configuration to fail, rather than the build to fail, if Amesos_Mumps is not supported when MPI is disabled. On the other hand, MUMPS supports seriail execution, so perhaps it would be best to check for MUMPS's libmpiseq during configuration if TPL_ENABLE_MPI:BOOL=OFF and then adjust Amesos_Mumps accordingly.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/76Get Trilinos to adopt the XSDK configure standards2016-01-14T16:28:03ZJames WillenbringGet Trilinos to adopt the XSDK configure standards*Created by: bartlettroscoe*
Trilinos needs to adopt the updated xSDK configure options (see [SDK-1](https://ideas-productivity.atlassian.net/browse/SDK-1) and [SDK-2](https://ideas-productivity.atlassian.net/browse/SDK-2)). I have thi...*Created by: bartlettroscoe*
Trilinos needs to adopt the updated xSDK configure options (see [SDK-1](https://ideas-productivity.atlassian.net/browse/SDK-1) and [SDK-2](https://ideas-productivity.atlassian.net/browse/SDK-2)). I have this done and integrated into TriBITS (see [TriBITS #107](https://github.com/TriBITSPub/TriBITS/issues/107)) but it needs some review. @jwillenbring, given that you are also funded on the IDEAS project, do you think you can give [TriBITS #107](https://github.com/TriBITSPub/TriBITS/issues/107) a review? You can also manually test that it is behaving according to the [xSDK configure standard](https://docs.google.com/document/d/18028D6nsuhIrCvJnX6c07r8m_Np4SH-aGXMX4svMs1w).
Anyway, I am about to snapshot the updated TriBITS to the Trilinos 'master' branch.