8#include <gtest/gtest.h>
10#include "arccore/alina/BuiltinBackend.h"
11#include "arccore/alina/StaticMatrix.h"
12#include "arccore/alina/Adapters.h"
13#include "arccore/alina/MessagePassingUtils.h"
14#include "arccore/alina/DistributedPreconditionedSolver.h"
15#include "arccore/alina/DistributedPreconditioner.h"
16#include "arccore/alina/DistributedSolverRuntime.h"
18#include "./SampleProblemCommon.h"
20#include "TestMainMpi.h"
28 const std::vector<ptrdiff_t>& ptr,
29 const std::vector<ptrdiff_t>& col,
30 const std::vector<double>& val,
32 const std::vector<double>& f)
34 auto& prof = Alina::Profiler::globalProfiler();
37 using BackendValueType = double;
40 std::cout <<
"Using scalar solve ptr_size=" <<
sizeof(ptrdiff_t)
41 <<
" ptr_type_size=" <<
sizeof(Backend::ptr_type)
42 <<
" col_type_size=" <<
sizeof(Backend::col_type)
43 <<
" value_type_size=" <<
sizeof(Backend::value_type)
64 std::shared_ptr<DMatrix> A;
65 std::shared_ptr<Solver> solve;
68 auto t = prof.scoped_tic(
"setup");
69 A = std::make_shared<DMatrix>(comm, std::tie(chunk, ptr, col, val));
70 solve = std::make_shared<Solver>(comm, A, prm, bprm);
73 std::cout <<
"SOLVER parameters=" << prm2 <<
"\n";
77 std::cout <<
"SolverInfo:\n";
78 std::cout << *solve << std::endl;
88 std::cout <<
"Iterations: " << r.nbIteration() << std::endl
89 <<
"Error: " << r.residual() << std::endl
97TEST(alina_test_mpi, BasicSolver)
101 std::cout <<
"World size: " << comm.size <<
"\n";
106 std::vector<ptrdiff_t> ptr;
107 std::vector<ptrdiff_t> col;
108 std::vector<double> val;
109 std::vector<double> rhs;
111 Int64 matrix_size = 32;
112 std::cout <<
"Matrix size=" << matrix_size <<
"\n";
113 n = sample_problem_distributed(comm.rank, comm.size, matrix_size, 1, ptr, col, val, rhs);
115 solve_scalar(comm, n, ptr, col, val, prm, rhs);
Runtime wrapper for distributed direct solvers.
Distributed Matrix using message passing.
Iterative solver wrapper for distributed linear systems.
Class to store parameters as a hierarchical key/value tree.
NUMA-aware vector container.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Alina::detail::empty_params params
Distributed smoothed aggregation coarsening scheme.
Runtime-configurable wrapper around matrix partitioner.
Convenience wrapper around MPI_Comm.