Trilinos issueshttps://gitlab.osti.gov/jmwille/Trilinos/-/issues2017-08-07T03:27:13Zhttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/74Can we turn off GlobalOrdinal = int in all Tpetra stack packages?2017-08-07T03:27:13ZJames WillenbringCan we turn off GlobalOrdinal = int in all Tpetra stack packages?*Created by: mhoemmen*
**Next action Status:**
Next: Better scope this story and create plan to exclude `GO=int` from the explicit instantations of Trilinos when possible (i.e. when Epetra is disabled, see #313).
**Blocked By:** #313...*Created by: mhoemmen*
**Next action Status:**
Next: Better scope this story and create plan to exclude `GO=int` from the explicit instantations of Trilinos when possible (i.e. when Epetra is disabled, see #313).
**Blocked By:** #313
**Description:**
It would be nice to be able to build the Tpetra enabled templated stack with just `GO = long ling int` and skip `GO = int`. This story will investigate this and then, if possible, work up a plan to make this happen.
**Tasks:**
???
Tpetra-backloghttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/39Tpetra: Replace sync/modify with 'use'2017-09-06T23:05:12ZJames WillenbringTpetra: Replace sync/modify with 'use'*Created by: mhoemmen*
@trilinos/tpetra @crtrott
Tpetra::MultiVector currently implements "dual view" semantics through the sync / modify methods. Each takes a space as a template parameter. `X.sync<Space>()` ensures that X's data a...*Created by: mhoemmen*
@trilinos/tpetra @crtrott
Tpetra::MultiVector currently implements "dual view" semantics through the sync / modify methods. Each takes a space as a template parameter. `X.sync<Space>()` ensures that X's data are up-to-date in space `Space`, and `X.modify<Space>()` marks X's data as modified in that space.
We would like to change this syntax as follows:
```
X.use (Space1, Space2, ..., SpaceN, ReadAndOrWrite);
```
where `Space1`, ..., `SpaceN` are instances of memory spaces (execution space?), and `ReadAndOrWrite` is an enum that takes one of the following values: `ReadOnly`, `WriteOnly`, or `ReadWrite`. This is a declarative syntax, vs. the imperative syntax that sync and modify implement. It is only a syntax change; the underlying implementation and semantic possibilities would not change.
The typical use case is to "use" a Tpetra object in one space at a time. For example:
```
X.use (Cuda (), WriteOnly);
fillOnCudaDevice (X); // write-only device code
X.use (Host (), ReadOnly);
hostOnlyLegacyCode (X); // read-only access on host
X.use (Cuda (), ReadWrite);
modifyOnCudaDevice (X);
```
The above semantics using the sync / modify syntax look like this:
```
fillOnCudaDevice (X); // don't sync first
X.sync<Host> ();
hostOnlyLegacyCode (X); // read-only; don't call modify first
X.sync<Cuda> ();
X.modify<Cuda> ();
modifyOnCudaDevice (X);
```
Calling `use` with multiple memory spaces effectively syncs to all of them. This allows (read-only) access to the data in concurrent kernels running from the different spaces.
Furthermore, we would like Tpetra objects' constructors to take optional (memory?) space arguments, to control where Tpetra initially allocates memory. Allocation in at least certain memory spaces would be lazy -- that is, Tpetra would only allocate if using in those memory spaces. For example (hypothetical), we might not like to allocate in HBM memory initially:
```
Tpetra::Vector<...> X (map, Capacity ()); // don't allocate in HBM initially
```
Tpetra-backloghttps://gitlab.osti.gov/jmwille/Trilinos/-/issues/25Kokkos, Panzer, STK, Teuchos, Thyra, Tpetra: Some files overridden on install2017-10-26T19:24:16ZJames WillenbringKokkos, Panzer, STK, Teuchos, Thyra, Tpetra: Some files overridden on install*Created by: nschloe*
On a "full" Trilinos configuration
```
cmake \
-DTrilinos_LIBRARY_NAME_PREFIX:STRING="trilinos_" \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/trilinos/full/ \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-DCMAKE_SKIP_RPATH:BOO...*Created by: nschloe*
On a "full" Trilinos configuration
```
cmake \
-DTrilinos_LIBRARY_NAME_PREFIX:STRING="trilinos_" \
-DCMAKE_INSTALL_PREFIX:PATH=/opt/trilinos/full/ \
-DCMAKE_BUILD_TYPE:STRING=Debug \
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DTrilinos_INSTALL_INCLUDE_DIR:PATH=include/trilinos/ \
-DTrilinos_USE_GNUINSTALLDIRS:BOOL=ON \
-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
-DTrilinos_ENABLE_SECONDARY_STABLE_CODE:BOOL=ON \
-DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \
-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_TBB:BOOL=ON \
-DTPL_ENABLE_X11:BOOL=OFF \
-DTPL_ENABLE_Zlib:BOOL=ON \
../../source-upstream/
```
there a many files which are installed "twice", i.e., `make install` creates more than one file with the same name in the same location, effectively overriding everything that wasn't installed last. This may lead to serious bugs. For the above configuration, one gets
```
$ sort install_manifest.txt | uniq --count --repeated
2 /opt/trilinos/full/include/trilinos/KokkosCompat_ClassicNodeAPI_Wrapper.hpp
2 /opt/trilinos/full/include/trilinos/KokkosCompat_TMM.hpp
2 /opt/trilinos/full/include/trilinos/KokkosCompat_View_def.hpp
2 /opt/trilinos/full/include/trilinos/KokkosCompat_View.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_AdaptiveSaMLParameterListInterpreter.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_config.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_FactoryFactory.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_MLParameterListInterpreter.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_ParameterListInterpreter.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_RefMaxwell.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_ShiftedLaplacian.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_ShiftedLaplacianOperator.hpp
2 /opt/trilinos/full/include/trilinos/MueLu_TpetraOperator.hpp
2 /opt/trilinos/full/include/trilinos/Panzer_config.hpp
3 /opt/trilinos/full/include/trilinos/STKClassic_config.h
2 /opt/trilinos/full/include/trilinos/stk_io/IossBridge.hpp
2 /opt/trilinos/full/include/trilinos/stk_io/util/Gears.hpp
2 /opt/trilinos/full/include/trilinos/stk_io/util/Gmesh_STKmesh_Fixture.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Bucket.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/BulkData.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/BulkModification.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Comm.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/DataTraitsClass.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/DataTraitsEnum.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/DataTraits.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Entity.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/EntityKey.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldBase.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Field.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldParallel.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldRelation.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldRestriction.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldState.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FieldTraits.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/FindRestriction.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/GetBuckets.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/GetEntities.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Ghosting.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/BucketRepository.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/EntityRepository.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/FieldBaseImpl.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/FieldRepository.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/PartImpl.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/baseImpl/PartRepository.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Iterators.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/MemoryUsage.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/MetaData.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Part.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/PropertyBase.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Property.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Relation.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Selector.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/SetOwners.hpp
2 /opt/trilinos/full/include/trilinos/stk_mesh/base/Types.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/BoundingBox.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/CoarseSearch.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/IdentProc.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/OctTree.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/OctTreeOps.hpp
2 /opt/trilinos/full/include/trilinos/stk_search/SearchTypes.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/Mapv.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/Option.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/Platform.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/PrintTable.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/PrintTimer.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/SlibDiagWriter.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/String.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/StringUtil.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/Timer.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/TimerMetricTraits.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/WriterExt.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/WriterOStream.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/WriterParser.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/diag/WriterRegistry.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/CPUTime.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/FormatMemorySize.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/FormatTime.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/LogControl.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/OutputLog.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/ProgramOptions.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/ReportHandler.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/RuntimeDoomed.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/RuntimeMessage.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/RuntimeWarning.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/environment/WallTime.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/BroadcastArg.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/DistributedIndex.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/MPI.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/ParallelComm.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/Parallel.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/ParallelIndex.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/ParallelInputStream.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/parallel/ParallelReduce.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/stk_config.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/Array.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Bootstrap.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Callback.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/ci_string.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/ci_traits.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/config_google.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/CSet.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/densehashtable.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/FeatureTest.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Foreach.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Fortran.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/hashtable-common.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/IndentStreambuf.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/IndexList.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/libc_allocator_with_realloc.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/MallocUsed.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/Marshal.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/NamedPair.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/nested_iterator.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/nested_range.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Null_Streambuf.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/PairIter.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Pool.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/RadixSort.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/random_access_iterator_wrapper.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/Range.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/SameType.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/SimpleArrayOps.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/sparseconfig.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/sparsehashtable.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/StaticAssert.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/string_case_compare.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/TeeStreambuf.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/tokenize.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/TypeList.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/TypeListMap.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/type_traits_google.h
2 /opt/trilinos/full/include/trilinos/stk_util/util/TypeUtil.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/VecMap.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/VecSet.hpp
2 /opt/trilinos/full/include/trilinos/stk_util/util/vectorization.hpp
2 /opt/trilinos/full/include/trilinos/TeuchosKokkosCompat_config.h
2 /opt/trilinos/full/include/trilinos/Thyra_MueLuPreconditionerFactory.hpp
2 /opt/trilinos/full/include/trilinos/Thyra_XpetraLinearOp.hpp
2 /opt/trilinos/full/include/trilinos/Tpetra_CrsMatrixSolveOp.hpp
```
Tpetra-backlog