Trilinos issueshttps://gitlab.osti.gov/jmwille/Trilinos/-/issues2016-07-25T17:06:52Zhttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/431Interfacing librsb into Epetra2016-07-25T17:06:52ZJames WillenbringInterfacing librsb into Epetra*Created by: michelemartone*
[rsb.hpp.txt](https://github.com/trilinos/Trilinos/files/309141/rsb.hpp.txt)
[Epetra_CrsMatrix.h.txt](https://github.com/trilinos/Trilinos/files/309139/Epetra_CrsMatrix.h.txt)
[Epetra_CrsMatrix.cpp.txt](http...*Created by: michelemartone*
[rsb.hpp.txt](https://github.com/trilinos/Trilinos/files/309141/rsb.hpp.txt)
[Epetra_CrsMatrix.h.txt](https://github.com/trilinos/Trilinos/files/309139/Epetra_CrsMatrix.h.txt)
[Epetra_CrsMatrix.cpp.txt](https://github.com/trilinos/Trilinos/files/309140/Epetra_CrsMatrix.cpp.txt)
@mhoemmen @maherou
Hi. After my talk at EUROTUG'16 on Apr. 18-20 2016 near Munich [ https://www.mhpc.mw.tum.de/index.php?id=38 ] and subsequent discussion with Michael and Mark I've been encouraged to propose an incremental integration of the sparse matrix type RSB (provided by librsb [ http://librsb.sourceforge.net/ ]) into Epetra.
So following such a minimalist approach I have modified a few lines in Epetra_CrsMatrix (from trilinos-12.6.1) to use librsb for: MV/MTV/SV/SM, in code delimited by the HAVE_EPETRA_RSB
preprocessor symbol; and constructs in Epetra_CrsMatrix::FillComplete and in the copy constructor.
So the prototype I am providing creates an RSB copy of the matrix just for the purposes of using it in the operations above.
I am also working on a proper "Epetra_RsbMatrix" class, but let's first see if this one here is able to sustain some tests for the above operations.
The way I suggest to build this is:
- # get my / michele martone's GPG key
gpg --search EF1258B8
- # download librsb from
https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz/download
# download its signature from
https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz.asc/download
# verify signature
gpg --verify librsb-1.2.0-rc3.tar.gz.asc
# build librsb
tar xzf librsb-1.2.0-rc3.tar.gz
cd librsb-1.2.0-rc3
./configure CFLAGS="-O3 -fPIC" FCFLAGS="-O3 -fPIC" --prefix=/opt/librsb
make
# quick check
make qtests
# long check (I recommend to skip it)
make tests
make install
- use attached version of Epetra_CrsMatrix.cpp and Epetra_CrsMatrix.h
and put attached rsb.hpp (the Epetra-agnostic C++ wrapper to librsb)
into e.g. /opt/librsb/include/
- build Epetra including e.g. `/opt/librsb/bin/librsb-config --I_opts`
- link with e.g. `/opt/librsb/bin/librsb-config --ldflags` -fopenmp -lm -lz
I attach the source files I have used, with ".txt" appended to the filename.
The rsb.hpp file is meant to become part of a future release of librsb.
I am new here, so if there is a more practical approach to follow to provide this proof-of-concept test, please suggest it to me.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/320Shylu Core not compiling with Cuda enabled2016-04-29T19:40:27ZJames WillenbringShylu Core not compiling with Cuda enabled*Created by: crtrott*
The following set of errors occur when compiling Shylu with Cuda enabled:
```
[ 37%] Building CXX object packages/shylu/core/src/CMakeFiles/shylu.dir/epetra/shylu_local_schur_operator.cpp.o
/home/crtrott/Trilinos...*Created by: crtrott*
The following set of errors occur when compiling Shylu with Cuda enabled:
```
[ 37%] Building CXX object packages/shylu/core/src/CMakeFiles/shylu.dir/epetra/shylu_local_schur_operator.cpp.o
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(572): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(float)"
function "std::isinf(float)"
argument types are: (const float)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(578): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(float)"
function "std::isnan(float)"
argument types are: (const float)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(842): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(double)"
function "std::isinf(double)"
argument types are: (const double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(848): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(double)"
function "std::isnan(double)"
argument types are: (const double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(978): error: more than one instance of overloaded function "isinf" matches the argument list:
function "isinf(long double)"
function "std::isinf(long double)"
argument types are: (const long double)
/home/crtrott/Trilinos/packages/tpetra/kernels/src/Kokkos_ArithTraits.hpp(984): error: more than one instance of overloaded function "isnan" matches the argument list:
function "isnan(long double)"
function "std::isnan(long double)"
argument types are: (const long double)
```
Typically this type of error comes from including both <math.h> and <cmath>, with the latter being the proper C++ include, while the former actually includes the C header file. Most compilers seem to have ways around including both files, but when dealing with nvcc you have two compilers and including both of those math headers often fails. Doing a very cursory search on where those includes might come from it looks like it is from Epetra:
```
$ grep "cmath" ~/Trilinos/packages/epetra/src/*
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <cmath>
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <cmath>
$ grep "math.h" ~/Trilinos/packages/epetra/src/*
~/Trilinos/packages/epetra/src/Epetra_ConfigDefs.h:#include <math.h>
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/256Epetra_IntSerialDense_test_MPI_1 Test Failure on POWER8 GCC+CUDA7.5 Build2016-04-01T00:02:13ZJames WillenbringEpetra_IntSerialDense_test_MPI_1 Test Failure on POWER8 GCC+CUDA7.5 Build*Created by: nmhamster*
I am continuing to work through the configuration, build and test of Trilinos on POWER8. When using GCC 4.9 with CUDA 7.5 on the `white` Sandia machine I get the following failure in the `Epetra_IntSerialDense_te...*Created by: nmhamster*
I am continuing to work through the configuration, build and test of Trilinos on POWER8. When using GCC 4.9 with CUDA 7.5 on the `white` Sandia machine I get the following failure in the `Epetra_IntSerialDense_test_MPI_1` test.
```
$ ctest -VV -R Epetra_IntSerialDense_test_MPI_1
UpdateCTestConfiguration from :/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Parse Config file:/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Add coverage exclude regular expressions.
SetCTestConfiguration:CMakeCommand:/home/projects/pwr8-rhel72/cmake/3.4.3/bin/cmake
UpdateCTestConfiguration from :/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Parse Config file:/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/DartConfiguration.tcl
Test project /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 146
Start 146: Epetra_IntSerialDense_test_MPI_1
146: Test command: /ascldap/users/projects/pwr8-rhel72/openmpi/1.10.2/gcc/4.9.2/cuda/7.5.7/bin/mpiexec "-np" "1" "/ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe" "-v"
146: Test timeout computed to be: 1500
146: Epetra in Trilinos 12.7 (Dev)
146:
146:
146: ==================================================================
146: Testing vector error-reporting.
146: Expect error messages if EPETRA_NO_ERROR_REPORTS is not defined.
146: ==================================================================
146: Checking Epetra_IntSerialDenseVector(-1)Checked OK.
146:
146: Checking Epetra_IntSerialDenseVector(Copy, int*, -3)Checked OK.
146:
146: Checking Epetra_IntSerialDenseVector(Copy, 0, 5)Checked OK.
146:
146: Checking Size(-2)
146: Checked OK.
146:
146: Checking Resize(-4)
146: Checked OK.
146: [white26:48861] *** Process received signal ***
146: [white26:48861] Signal: Segmentation fault (11)
146: [white26:48861] Signal code: Address not mapped (1)
146: [white26:48861] Failing at address: (nil)
146: [white26:48861] [ 0] [0x3fff8e9d0478]
146: [white26:48861] [ 1] /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(_Z16vectorExceptionsbb+0x9b8)[0x10073158]
146: [white26:48861] [ 2] /ascldap/users/sdhammo/git/trilinos-github-repo/build-power8-gcc-cuda-757-test-ramdisk/packages/epetra/test/IntSerialDense/Epetra_IntSerialDense_test.exe(main+0x90)[0x1006b9d0]
146: [white26:48861] [ 3] /lib64/power8/libc.so.6(+0x24580)[0x3fff855c4580]
146: [white26:48861] [ 4] /lib64/power8/libc.so.6(__libc_start_main+0xc4)[0x3fff855c4774]
146: [white26:48861] *** End of error message ***
146: --------------------------------------------------------------------------
146: mpiexec noticed that process rank 0 with PID 48861 on node white26 exited on signal 11 (Segmentation fault).
146: --------------------------------------------------------------------------
1/1 Test #146: Epetra_IntSerialDense_test_MPI_1 ...***Failed 11.07 sec
0% tests passed, 1 tests failed out of 1
Label Time Summary:
Epetra = 11.07 sec (1 test)
Total Test time (real) = 11.52 sec
The following tests FAILED:
146 - Epetra_IntSerialDense_test_MPI_1 (Failed)
Errors while running CTest
```
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/248Epetra: Add equivalent of Tpetra::Distributor::createFromSendsAndRecvs to Epe...2016-11-02T20:56:23ZJames WillenbringEpetra: Add equivalent of Tpetra::Distributor::createFromSendsAndRecvs to Epetra's Distributor*Created by: mhoemmen*
@trilinos/tpetra
@csiefer2
This corresponds to the MPI 3 sparse all-to-all constructor as well.
*Created by: mhoemmen*
@trilinos/tpetra
@csiefer2
This corresponds to the MPI 3 sparse all-to-all constructor as well.
https://gitlab.osti.gov/jmwille/Trilinos/-/issues/9Epetra, MOOCHO: ../thyra/doc/Doxyfile not found2016-03-03T17:49:55ZJames WillenbringEpetra, MOOCHO: ../thyra/doc/Doxyfile not found*Created by: nschloe*
Both Epetra and MOOCHO documentations refer to a nonexisting `../thyra/doc/Doxyfile`:
```
$ grep "../thyra/doc/Doxyfile" * -r
packages/epetra/doc/build_docs:doxygen ../thyra/doc/Doxyfile
packages/moocho/doc/build_...*Created by: nschloe*
Both Epetra and MOOCHO documentations refer to a nonexisting `../thyra/doc/Doxyfile`:
```
$ grep "../thyra/doc/Doxyfile" * -r
packages/epetra/doc/build_docs:doxygen ../thyra/doc/Doxyfile
packages/moocho/doc/build_docs_guts:doxygen ../thyra/doc/Doxyfile
```
Perhaps some `../` missing?