Skip to content

Commit

Permalink
Merge Pull Request #7737 from trilinos/Trilinos/master_merge_20200728…
Browse files Browse the repository at this point in the history
…_000610

Automatically Merged using Trilinos Master Merge AutoTester
PR Title: Trilinos Master Merge PR Generator: Auto PR created to promote from master_merge_20200728_000610 branch to master
PR Author: trilinos-autotester
  • Loading branch information
trilinos-autotester authored Jul 28, 2020
2 parents 2c112f5 + fc041fc commit cc50be0
Show file tree
Hide file tree
Showing 3,051 changed files with 27,960 additions and 40,932 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,9 @@ struct spmv_tpl_spec_avail<const SCALAR, const ORDINAL, Kokkos::Device<Kokkos::C
KOKKOSSPARSE_SPMV_TPL_SPEC_AVAIL_CUSPARSE(Kokkos::complex<double>, int, int, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace)
#endif

#if (10010 <= CUDA_VERSION)
//CUDA_VERSION by itself cannot determine whether the generic cuSPARSE API is available:
//cuSPARSE version 10.1.105 does not have the generic API, but it comes with the same CUDA_VERSION (10010) as 10.1.243 which does.
#if defined(CUSPARSE_VERSION) && (CUSPARSE_VERSION >= 10300)

//Can enable int64/size_t.
//TODO: if Nvidia ever supports int/size_t, add that too.
Expand Down Expand Up @@ -300,8 +302,8 @@ struct spmv_tpl_spec_avail<const SCALAR, const ORDINAL, Kokkos::Device<Kokkos::C
KOKKOSSPARSE_SPMV_TPL_SPEC_AVAIL_CUSPARSE(Kokkos::complex<double>, int64_t, size_t, Kokkos::LayoutRight, Kokkos::LayoutRight, Kokkos::CudaUVMSpace)
#endif

#endif // CUSPARSE >= 10.0 (nested, implies >= 9.0)
#endif // CUSPARSE >= 9.0?
#endif // CUSPARSE >= 10.3 (nested, implies >= 9.0)
#endif // CUDA/CUSPARSE >= 9.0?
#endif // KOKKOSKERNELS_ENABLE_TPL_CUSPARSE

// Specialization struct which defines whether a specialization exists
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ namespace Impl {
if(mode[0] == Transpose[0]) {myCusparseOperation = CUSPARSE_OPERATION_TRANSPOSE;}
else if(mode[0] == ConjugateTranspose[0]) {myCusparseOperation = CUSPARSE_OPERATION_CONJUGATE_TRANSPOSE;}

#if defined(CUDA_VERSION) && (10010 <= CUDA_VERSION)
#if defined(CUSPARSE_VERSION) && (10300 <= CUSPARSE_VERSION)

/* Check that cusparse can handle the types of the input Kokkos::CrsMatrix */
cusparseIndexType_t myCusparseOffsetType;
Expand Down Expand Up @@ -270,7 +270,7 @@ namespace Impl {
KOKKOSSPARSE_SPMV_CUSPARSE(Kokkos::complex<float>, int, int, Kokkos::LayoutLeft, Kokkos::CudaUVMSpace, true)
KOKKOSSPARSE_SPMV_CUSPARSE(Kokkos::complex<float>, int, int, Kokkos::LayoutRight, Kokkos::CudaUVMSpace, true)

#if (10010 <= CUDA_VERSION)
#if defined(CUSPARSE_VERSION) && (10300 <= CUSPARSE_VERSION)
KOKKOSSPARSE_SPMV_CUSPARSE(double, int64_t, size_t, Kokkos::LayoutLeft, Kokkos::CudaSpace, true)
KOKKOSSPARSE_SPMV_CUSPARSE(double, int64_t, size_t, Kokkos::LayoutRight, Kokkos::CudaSpace, true)
KOKKOSSPARSE_SPMV_CUSPARSE(float, int64_t, size_t, Kokkos::LayoutLeft, Kokkos::CudaSpace, true)
Expand Down
4 changes: 4 additions & 0 deletions packages/muelu/example/basic/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ IF(${PACKAGE_NAME}_ENABLE_Stratimikos AND ${PACKAGE_NAME}_ENABLE_Thyra)

TRIBITS_COPY_FILES_TO_BINARY_DIR(advanced_stratimikos_cp
SOURCE_FILES stratimikos_ParameterList.xml stratimikos_ParameterList.yaml stratimikos_ParameterList2.xml
set1-gmres.xml set1-cg.xml
set2-sgs1.xml set2-sgs3.xml
set3-mg-jacobi.xml set3-mg-sgs.xml set3-mg-gs.xml set3-mg-chebyshev.xml
mg-gpu.xml
)

IF (${PACKAGE_NAME}_HAVE_EPETRA_SOLVER_STACK)
Expand Down
133 changes: 133 additions & 0 deletions packages/muelu/example/basic/mg-gpu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
<ParameterList>

<!-- ================================================== -->
<!-- ================================================== -->
<!-- KRYLOV SOLVER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->

<Parameter name="Linear Solver Type" type="string" value="Belos"/>
<ParameterList name="Linear Solver Types">
<ParameterList name="Belos">

<!-- ========================================= -->
<!-- Select which Krylov solver should be used -->

<Parameter name="Solver Type" type="string" value="Pseudo Block CG"/>

<!-- ================================== -->
<!-- Parameters for the Krylov solvers -->

<ParameterList name="Solver Types">

<ParameterList name="Pseudo Block CG">
<Parameter name="Convergence Tolerance" type="double" value="1e-8"/>
<Parameter name="Maximum Iterations" type="int" value="100"/>
<!-- Verbosity
Errors = 0,
Warnings = 0x1,
IterationDetails = 0x2,
OrthoDetails = 0x4,
FinalSummary = 0x8,
TimingDetails = 0x10 = 16,
StatusTestDetails = 0x20 = 32,
Debug = 0x40 = 64 -->
<Parameter name="Verbosity" type="int" value="41"/>
<Parameter name="Output Frequency" type="int" value="1"/>
<Parameter name="Output Style" type="int" value="1"/>
</ParameterList>

</ParameterList>

<ParameterList name="VerboseObject">
<Parameter name="Verbosity Level" type="string" value="low"/>
</ParameterList>

</ParameterList>
</ParameterList>


<!-- ================================================== -->
<!-- ================================================== -->
<!-- PRECONDITIONER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->


<!-- ========================================== -->
<!-- Select which preconditioner should be used -->

<!-- algebraic multigrid -->
<Parameter name="Preconditioner Type" type="string" value="MueLu"/>


<!-- ========================================== -->
<!-- Parameters for the preconditioners -->

<ParameterList name="Preconditioner Types">

<!-- Settings for multigrid preconditioner -->
<ParameterList name="MueLu">

<!-- =========== GENERAL ================ -->
<Parameter name="verbosity" type="string" value="medium"/>

<Parameter name="coarse: max size" type="int" value="1000"/>
<Parameter name="coarse: type" type="string" value="Klu2"/>

<Parameter name="cycle type" type="string" value="V"/>

<!-- Options are 'sa' (smoothed aggregation) and 'unsmoothed' -->
<Parameter name="multigrid algorithm" type="string" value="sa"/>

<!-- reduces setup cost for symmetric problems -->
<Parameter name="transpose: use implicit" type="bool" value="true"/>

<Parameter name="max levels" type="int" value="10"/>
<Parameter name="number of equations" type="int" value="1"/>
<Parameter name="sa: use filtered matrix" type="bool" value="true"/>

<!-- =========== AGGREGATION =========== -->
<Parameter name="aggregation: type" type="string" value="uncoupled"/>
<Parameter name="aggregation: drop scheme" type="string" value="classical"/>
<!-- Uncomment the next line to enable dropping of weak connections, which can help AMG convergence
for anisotropic problems. The exact value is problem dependent. -->
<!--
<Parameter name="aggregation: drop tol" type="double" value="0.02"/>
-->

<!-- Aggregates visualization using paraview -->
<!-- <Parameter name="aggregation: export visualization data" type="bool" value="true"/> -->
<!-- <Parameter name="aggregation: output filename" type="string" value="aggs.proc=%PROCID.level=%LEVELID.vtk"/> -->
<!-- <Parameter name="aggregation: output file: agg style" type="string" value="Convex Hulls"/> -->

<!-- =========== SMOOTHING =========== -->
<Parameter name="smoother: type" type="string" value="CHEBYSHEV"/>
<ParameterList name="smoother: params">
<Parameter name="chebyshev: degree" type="int" value="2"/>
<Parameter name="chebyshev: ratio eigenvalue" type="double" value="7"/>
<Parameter name="chebyshev: min eigenvalue" type="double" value="1.0"/>
<Parameter name="chebyshev: zero starting solution" type="bool" value="true"/>
</ParameterList>

<!-- =========== REPARTITIONING =========== -->
<!--
<Parameter name="repartition: enable" type="bool" value="true"/>
<Parameter name="repartition: partitioner" type="string" value="zoltan2"/>
<Parameter name="repartition: start level" type="int" value="2"/>
<Parameter name="repartition: min rows per proc" type="int" value="800"/>
<Parameter name="repartition: max imbalance" type="double" value="1.1"/>
<Parameter name="repartition: remap parts" type="bool" value="false"/>
<Parameter name="repartition: rebalance P and R" type="bool" value="false"/>
<ParameterList name="repartition: params">
<Parameter name="algorithm" type="string" value="multijagged"/>
</ParameterList>
-->

<!-- for runs on with OpenMP or Cuda backend, enable -->
<Parameter name="use kokkos refactor" type="bool" value="true"/>

</ParameterList>

</ParameterList>
</ParameterList>
62 changes: 62 additions & 0 deletions packages/muelu/example/basic/set1-cg.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<ParameterList>

<!-- ================================================== -->
<!-- ================================================== -->
<!-- KRYLOV SOLVER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->

<Parameter name="Linear Solver Type" type="string" value="Belos"/>
<ParameterList name="Linear Solver Types">
<ParameterList name="Belos">

<!-- ========================================= -->
<!-- Select which Krylov solver should be used -->

<Parameter name="Solver Type" type="string" value="Pseudo Block CG"/>

<!-- ================================== -->
<!-- Parameters for the Krylov solvers -->

<ParameterList name="Solver Types">

<ParameterList name="Pseudo Block CG">
<Parameter name="Convergence Tolerance" type="double" value="1e-8"/>
<Parameter name="Maximum Iterations" type="int" value="100"/>
<!-- Verbosity
Errors = 0,
Warnings = 0x1,
IterationDetails = 0x2,
OrthoDetails = 0x4,
FinalSummary = 0x8,
TimingDetails = 0x10 = 16,
StatusTestDetails = 0x20 = 32,
Debug = 0x40 = 64 -->
<Parameter name="Verbosity" type="int" value="41"/>
<Parameter name="Output Frequency" type="int" value="1"/>
<Parameter name="Output Style" type="int" value="1"/>
</ParameterList>

</ParameterList>

<ParameterList name="VerboseObject">
<Parameter name="Verbosity Level" type="string" value="low"/>
</ParameterList>

</ParameterList>
</ParameterList>


<!-- ================================================== -->
<!-- ================================================== -->
<!-- PRECONDITIONER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->


<!-- ========================================== -->
<!-- Select which preconditioner should be used -->

<Parameter name="Preconditioner Type" type="string" value="None"/>

</ParameterList>
63 changes: 63 additions & 0 deletions packages/muelu/example/basic/set1-gmres.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<ParameterList>

<!-- ================================================== -->
<!-- ================================================== -->
<!-- KRYLOV SOLVER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->

<Parameter name="Linear Solver Type" type="string" value="Belos"/>
<ParameterList name="Linear Solver Types">
<ParameterList name="Belos">

<!-- ========================================= -->
<!-- Select which Krylov solver should be used -->

<Parameter name="Solver Type" type="string" value="Pseudo Block GMRES"/>

<!-- ================================== -->
<!-- Parameters for the Krylov solvers -->

<ParameterList name="Solver Types">

<ParameterList name="Pseudo Block GMRES">
<Parameter name="Convergence Tolerance" type="double" value="1e-8"/>
<Parameter name="Maximum Iterations" type="int" value="100"/>
<!-- Verbosity
Errors = 0,
Warnings = 0x1,
IterationDetails = 0x2,
OrthoDetails = 0x4,
FinalSummary = 0x8,
TimingDetails = 0x10 = 16,
StatusTestDetails = 0x20 = 32,
Debug = 0x40 = 64 -->
<Parameter name="Verbosity" type="int" value="41"/>
<Parameter name="Output Frequency" type="int" value="1"/>
<Parameter name="Output Style" type="int" value="1"/>
<Parameter name="Num Blocks" type="int" value="40"/>
</ParameterList>

</ParameterList>

<ParameterList name="VerboseObject">
<Parameter name="Verbosity Level" type="string" value="low"/>
</ParameterList>

</ParameterList>
</ParameterList>


<!-- ================================================== -->
<!-- ================================================== -->
<!-- PRECONDITIONER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->


<!-- ========================================== -->
<!-- Select which preconditioner should be used -->

<Parameter name="Preconditioner Type" type="string" value="None"/>

</ParameterList>
78 changes: 78 additions & 0 deletions packages/muelu/example/basic/set2-sgs1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<ParameterList>

<!-- ================================================== -->
<!-- ================================================== -->
<!-- KRYLOV SOLVER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->

<Parameter name="Linear Solver Type" type="string" value="Belos"/>
<ParameterList name="Linear Solver Types">
<ParameterList name="Belos">

<!-- ========================================= -->
<!-- Select which Krylov solver should be used -->

<Parameter name="Solver Type" type="string" value="Pseudo Block CG"/>

<!-- ================================== -->
<!-- Parameters for the Krylov solvers -->

<ParameterList name="Solver Types">

<ParameterList name="Pseudo Block CG">
<Parameter name="Convergence Tolerance" type="double" value="1e-8"/>
<Parameter name="Maximum Iterations" type="int" value="100"/>
<!-- Verbosity
Errors = 0,
Warnings = 0x1,
IterationDetails = 0x2,
OrthoDetails = 0x4,
FinalSummary = 0x8,
TimingDetails = 0x10 = 16,
StatusTestDetails = 0x20 = 32,
Debug = 0x40 = 64 -->
<Parameter name="Verbosity" type="int" value="41"/>
<Parameter name="Output Frequency" type="int" value="1"/>
<Parameter name="Output Style" type="int" value="1"/>
</ParameterList>

</ParameterList>

<ParameterList name="VerboseObject">
<Parameter name="Verbosity Level" type="string" value="low"/>
</ParameterList>

</ParameterList>
</ParameterList>


<!-- ================================================== -->
<!-- ================================================== -->
<!-- PRECONDITIONER CONFIGURATION -->
<!-- ================================================== -->
<!-- ================================================== -->


<!-- ========================================== -->
<!-- Select which preconditioner should be used -->

<!-- Ifpack2 contains different 1-level preconditioners such as Jacobi, Gauss-Seidel and Chebyshev -->
<Parameter name="Preconditioner Type" type="string" value="Ifpack2"/>

<!-- ========================================== -->
<!-- Parameters for the preconditioners -->

<ParameterList name="Preconditioner Types">

<!-- Settings for 1-level preconditioners -->
<ParameterList name="Ifpack2">
<Parameter name="Prec Type" type="string" value="relaxation"/>
<ParameterList name="Ifpack2 Settings">
<Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
<Parameter name="relaxation: sweeps" type="int" value="1"/>
</ParameterList>
</ParameterList>

</ParameterList>
</ParameterList>
Loading

0 comments on commit cc50be0

Please sign in to comment.