Skip to content

Commit

Permalink
Use generic parameter setting in the example.
Browse files Browse the repository at this point in the history
  • Loading branch information
pelesh committed Feb 4, 2025
1 parent b77cffa commit 3d3f491
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 40 deletions.
52 changes: 26 additions & 26 deletions tests/functionality/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,32 +123,32 @@ if(RESOLVE_USE_LUSOL)
endif()

# Krylov solvers tests (FGMRES)
add_test(NAME sys_rand_count_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "CGS2" "-s" "count")
add_test(NAME sys_rand_count_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS" "-s" "count")
add_test(NAME sys_rand_count_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "CGS2" "-s" "count")
add_test(NAME sys_rand_count_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS" "-s" "count")
add_test(NAME sys_rand_count_fgmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "count")
add_test(NAME sys_rand_count_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_PM" "-s" "count")
add_test(NAME sys_rand_fwht_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "CGS2" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_PM" "-s" "fwht")
add_test(NAME sys_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "CGS2")
add_test(NAME sys_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS")
add_test(NAME sys_fgmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS_TWO_SYNC")
add_test(NAME sys_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS_PM")
add_test(NAME sys_rand_count_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_PM" "-s" "count")
add_test(NAME sys_rand_fwht_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "CGS2" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "fwht")
add_test(NAME sys_rand_fwht_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "randgmres" "-g" "MGS_PM" "-s" "fwht")
add_test(NAME sys_fgmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "CGS2")
add_test(NAME sys_fgmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS")
add_test(NAME sys_fgmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS_TWO_SYNC")
add_test(NAME sys_fgmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-i" "fgmres" "-g" "MGS_PM")

# Krylov solvers tests (GMRES)
add_test(NAME sys_rand_count_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "CGS2" "-s" "count")
add_test(NAME sys_rand_count_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS" "-s" "count")
add_test(NAME sys_rand_count_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "CGS2" "-s" "count")
add_test(NAME sys_rand_count_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS" "-s" "count")
add_test(NAME sys_rand_count_gmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "count")
add_test(NAME sys_rand_count_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_PM" "-s" "count")
add_test(NAME sys_rand_fwht_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "CGS2" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_PM" "-s" "fwht")
add_test(NAME sys_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "CGS2")
add_test(NAME sys_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS")
add_test(NAME sys_gmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS_TWO_SYNC")
add_test(NAME sys_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS_PM")
add_test(NAME sys_rand_count_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_PM" "-s" "count")
add_test(NAME sys_rand_fwht_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "CGS2" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_TWO_SYNC" "-s" "fwht")
add_test(NAME sys_rand_fwht_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "randgmres" "-g" "MGS_PM" "-s" "fwht")
add_test(NAME sys_gmres_CGS2_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "CGS2")
add_test(NAME sys_gmres_MGS_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS")
add_test(NAME sys_gmres_MGS2sync_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS_TWO_SYNC")
add_test(NAME sys_gmres_MGSpm_test COMMAND $<TARGET_FILE:sys_rand_gmres_test.exe> "-x" "no" "-i" "fgmres" "-g" "MGS_PM")

if(RESOLVE_USE_CUDA)
if(RESOLVE_USE_KLU)
Expand All @@ -166,10 +166,10 @@ endif(RESOLVE_USE_CUDA)

if(RESOLVE_USE_HIP)
if(RESOLVE_USE_KLU)
add_test(NAME rocsolver_rf_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}")
add_test(NAME rocsolver_rf_m1_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-m")
add_test(NAME rocsolver_rf_ir_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-i")
add_test(NAME rocsolver_rf_ir_m1_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-i" "-m")
add_test(NAME rocsolver_rf_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}")
add_test(NAME rocsolver_rf_m1_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-m" "rocsparse_trisolve")
add_test(NAME rocsolver_rf_ir_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-i")
add_test(NAME rocsolver_rf_ir_m1_test COMMAND $<TARGET_FILE:rocsolver_rf_test.exe> "-d" "${test_data_dir}" "-i" "-m" "rocsparse_trisolve")
add_test(NAME sys_refactor_hip_test COMMAND $<TARGET_FILE:sys_refactor_hip_test.exe> "${test_data_dir}")
endif(RESOLVE_USE_KLU)
add_test(NAME rand_gmres_hip_test COMMAND $<TARGET_FILE:rand_gmres_hip_test.exe>)
Expand Down
35 changes: 21 additions & 14 deletions tests/functionality/testKLU_RocSolver.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/**
* @file testKLU_RocSolver.cpp
* @author Kasia Swirydowicz ([email protected])
* @author Slaven Peles ([email protected])
* @brief Functionality test for rocsolver_rf.
*
*/
Expand Down Expand Up @@ -31,7 +32,7 @@

#include "TestHelper.hpp"

template <class workspace_type, class solver_type>
template <class workspace_type, class refactorization_type>
static int runTest(int argc, char *argv[], std::string& solver_name);

int main(int argc, char *argv[])
Expand Down Expand Up @@ -71,7 +72,7 @@ int main(int argc, char *argv[])
return error_sum;
}

template <class workspace_type, class solver_type>
template <class workspace_type, class refactorization_type>
int runTest(int argc, char *argv[], std::string& solver_name)
{
std::string test_name("Test KLU with ");
Expand All @@ -87,21 +88,25 @@ int runTest(int argc, char *argv[], std::string& solver_name)
int error_sum = 0;
int status = 0;

// Collect all CLI
// Collect all command line options
ReSolve::CliOptions options(argc, argv);
ReSolve::CliOptions::Option* opt = nullptr;

// Get directory with input files
opt = options.getParamFromKey("-d");
std::string data_path = opt ? (*opt).second : "./";
std::string data_path = opt ? (*opt).second : ".";

// Change Rf solver mode (only for rocsolverRf)
// Mode 1 uses rocSPARSE triangular solver instead of rocSOLVER default
int mode = 0;
std::string mode("default");
opt = options.getParamFromKey("-m");
if (opt) {
mode = 1;
test_name += " (mode 1)";
if (opt->second != "default" && opt->second != "rocsparse_trisolve") {
std::cout << "Invalid rocSOLVER mode option.\n"
<< "Available modes are 'default' and 'rocsparse_trisolve'.\n"
<< "Setting mode to default ...\n";
} else {
mode = opt->second;
}
}

// Whether to use iterative refinement
Expand All @@ -114,8 +119,10 @@ int runTest(int argc, char *argv[], std::string& solver_name)

// Create direct solvers
ReSolve::LinSolverDirectKLU KLU;
solver_type Rf(&workspace);
// Rf.setSolveMode(mode);
refactorization_type Rf(&workspace);
if (solver_name == "rocsolverRf") {
Rf.setCliParam("solve_mode", mode);
}

// Create iterative solver
ReSolve::MatrixHandler matrix_handler(&workspace);
Expand All @@ -126,11 +133,11 @@ int runTest(int argc, char *argv[], std::string& solver_name)
FGMRES.setRestart(100);


std::string matrix_file_name_1 = data_path + "data/matrix_ACTIVSg200_AC_10.mtx";
std::string matrix_file_name_2 = data_path + "data/matrix_ACTIVSg200_AC_11.mtx";
std::string matrix_file_name_1 = data_path + "/data/matrix_ACTIVSg200_AC_10.mtx";
std::string matrix_file_name_2 = data_path + "/data/matrix_ACTIVSg200_AC_11.mtx";

std::string rhs_file_name_1 = data_path + "data/rhs_ACTIVSg200_AC_10.mtx.ones";
std::string rhs_file_name_2 = data_path + "data/rhs_ACTIVSg200_AC_11.mtx.ones";
std::string rhs_file_name_1 = data_path + "/data/rhs_ACTIVSg200_AC_10.mtx.ones";
std::string rhs_file_name_2 = data_path + "/data/rhs_ACTIVSg200_AC_11.mtx.ones";

// Read first matrix
std::ifstream mat1(matrix_file_name_1);
Expand Down

0 comments on commit 3d3f491

Please sign in to comment.