Ginkgo: gko::log::SolverProgress Class Reference

| Ginkgo Generated from branch based on main. Ginkgo version 1.11.0 A numerical linear algebra library targeting many-core architectures

Loading...
Searching...
No Matches
gko::log::SolverProgress Class Reference

This Logger outputs the value of all scalar values (and potentially vectors) stored internally by the solver after each iteration. More...

`#include <ginkgo/core/log/solver_progress.hpp>`

Inheritance diagram for gko::log::SolverProgress:
[legend]
Collaboration diagram for gko::log::SolverProgress:
[legend]

## Static Public Member Functions
static std::shared_ptr< SolverProgress > | create_scalar_table_writer (std::ostream &output, int precision=6, int column_width=12)
| Creates a logger printing the value for all scalar values in the solver after each iteration in an ASCII table.
static std::shared_ptr< SolverProgress > | create_scalar_csv_writer (std::ostream &output, int precision=6, char separator=',')
| Creates a logger printing the value for all scalar values in the solver after each iteration in a CSV table.
static std::shared_ptr< SolverProgress > | create_vector_storage (std::string output_file_prefix="solver_", bool binary=false)
| Creates a logger storing all vectors and scalar values in the solver after each iteration on disk.

## Additional Inherited Members
Public Types inherited from gko::log::Logger
using | mask_type = gko::uint64
Public Member Functions inherited from gko::log::Logger
template<size_type Event, typename... Params>
std::enable_if_t< Event==0 &&(0< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==1 &&(1< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==2 &&(2< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==3 &&(3< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==4 &&(4< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==5 &&(5< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==6 &&(6< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==7 &&(7< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==8 &&(8< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==9 &&(9< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==10 &&(10< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==11 &&(11< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==12 &&(12< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==13 &&(13< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==14 &&(14< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==15 &&(15< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==16 &&(16< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==17 &&(17< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==18 &&(18< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==19 &&(19< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==20 &&(20< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==21 &&(21< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==22 &&(22< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==23 &&(23< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==24 &&(24< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==25 &&(25< event_count_max)> | on (Params &&... params) const
template<size_type Event, typename... Params>
std::enable_if_t< Event==26 &&(26< event_count_max)> | on (Params &&... params) const
virtual bool | needs_propagation () const
| Returns true if this logger, when attached to an Executor, needs to be forwarded all events from objects on this executor.
Static Public Attributes inherited from gko::log::Logger
static constexpr size_type | event_count_max = sizeof(mask_type) * byte_size
| Maximum amount of events (bits) with the current implementation.
static constexpr mask_type | all_events_mask = ~mask_type{0}
| Bitset Mask which activates all events.
static constexpr size_type | allocation_started {0}
static constexpr mask_type | allocation_started_mask {mask_type{1} << 0}
static constexpr size_type | allocation_completed {1}
static constexpr mask_type | allocation_completed_mask {mask_type{1} << 1}
static constexpr size_type | free_started {2}
static constexpr mask_type | free_started_mask {mask_type{1} << 2}
static constexpr size_type | free_completed {3}
static constexpr mask_type | free_completed_mask {mask_type{1} << 3}
static constexpr size_type | copy_started {4}
static constexpr mask_type | copy_started_mask {mask_type{1} << 4}
static constexpr size_type | copy_completed {5}
static constexpr mask_type | copy_completed_mask {mask_type{1} << 5}
static constexpr size_type | operation_launched {6}
static constexpr mask_type | operation_launched_mask {mask_type{1} << 6}
static constexpr size_type | operation_completed {7}
static constexpr mask_type | operation_completed_mask {mask_type{1} << 7}
static constexpr size_type | polymorphic_object_create_started {8}
static constexpr mask_type | polymorphic_object_create_started_mask {mask_type{1} << 8}
static constexpr size_type | polymorphic_object_create_completed {9}
static constexpr mask_type | polymorphic_object_create_completed_mask {mask_type{1} << 9}
static constexpr size_type | polymorphic_object_copy_started {10}
static constexpr mask_type | polymorphic_object_copy_started_mask {mask_type{1} << 10}
static constexpr size_type | polymorphic_object_copy_completed {11}
static constexpr mask_type | polymorphic_object_copy_completed_mask {mask_type{1} << 11}
static constexpr size_type | polymorphic_object_deleted {12}
static constexpr mask_type | polymorphic_object_deleted_mask {mask_type{1} << 12}
static constexpr size_type | linop_apply_started {13}
static constexpr mask_type | linop_apply_started_mask {mask_type{1} << 13}
static constexpr size_type | linop_apply_completed {14}
static constexpr mask_type | linop_apply_completed_mask {mask_type{1} << 14}
static constexpr size_type | linop_advanced_apply_started {15}
static constexpr mask_type | linop_advanced_apply_started_mask {mask_type{1} << 15}
static constexpr size_type | linop_advanced_apply_completed {16}
static constexpr mask_type | linop_advanced_apply_completed_mask {mask_type{1} << 16}
static constexpr size_type | linop_factory_generate_started {17}
static constexpr mask_type | linop_factory_generate_started_mask {mask_type{1} << 17}
static constexpr size_type | linop_factory_generate_completed {18}
static constexpr mask_type | linop_factory_generate_completed_mask {mask_type{1} << 18}
static constexpr size_type | criterion_check_started {19}
static constexpr mask_type | criterion_check_started_mask {mask_type{1} << 19}
static constexpr size_type | criterion_check_completed {20}
static constexpr mask_type | criterion_check_completed_mask {mask_type{1} << 20}
static constexpr size_type | iteration_complete {21}
static constexpr mask_type | iteration_complete_mask {mask_type{1} << 21}
static constexpr size_type | polymorphic_object_move_started {22}
static constexpr mask_type | polymorphic_object_move_started_mask {mask_type{1} << 22}
static constexpr size_type | polymorphic_object_move_completed {23}
static constexpr mask_type | polymorphic_object_move_completed_mask {mask_type{1} << 23}
static constexpr size_type | batch_linop_factory_generate_started {24}
static constexpr mask_type | batch_linop_factory_generate_started_mask {mask_type{1} << 24}
static constexpr size_type | batch_linop_factory_generate_completed {25}
static constexpr mask_type | batch_linop_factory_generate_completed_mask {mask_type{1} << 25}
static constexpr size_type | batch_solver_completed {26}
static constexpr mask_type | batch_solver_completed_mask {mask_type{1} << 26}
static constexpr mask_type | executor_events_mask
| Bitset Mask which activates all executor events.
static constexpr mask_type | operation_events_mask
| Bitset Mask which activates all operation events.
static constexpr mask_type | polymorphic_object_events_mask
| Bitset Mask which activates all polymorphic object events.
static constexpr mask_type | linop_events_mask
| Bitset Mask which activates all linop events.
static constexpr mask_type | linop_factory_events_mask
| Bitset Mask which activates all linop factory events.
static constexpr mask_type | batch_linop_factory_events_mask
| Bitset Mask which activates all batch linop factory events.
static constexpr mask_type | criterion_events_mask
| Bitset Mask which activates all criterion events.

## Detailed Description

This Logger outputs the value of all scalar values (and potentially vectors) stored internally by the solver after each iteration.

It needs to be attached to the solver being inspected.

## Member Function Documentation

## ◆ create_scalar_csv_writer()

std::shared_ptr< SolverProgress > gko::log::SolverProgress::create_scalar_csv_writer | ( | std::ostream & | output,
|  | int | precision = 6,
|  | char | separator = ',' )
| static

Creates a logger printing the value for all scalar values in the solver after each iteration in a CSV table.

If the solver is applied to multiple right-hand sides, only the first right-hand side gets printed.

Parameters

  output | the stream to write the output to.
  precision | the number of digits of precision to print
  separator | the character separating columns from each other

## ◆ create_scalar_table_writer()

std::shared_ptr< SolverProgress > gko::log::SolverProgress::create_scalar_table_writer | ( | std::ostream & | output,
|  | int | precision = 6,
|  | int | column_width = 12 )
| static

Creates a logger printing the value for all scalar values in the solver after each iteration in an ASCII table.

If the solver is applied to multiple right-hand sides, only the first right-hand side gets printed.

Parameters

  output | the stream to write the output to.
  precision | the number of digits of precision to print
  column_width | the number of characters an output column is wide

## ◆ create_vector_storage()

std::shared_ptr< SolverProgress > gko::log::SolverProgress::create_vector_storage | ( | std::string | output_file_prefix = "solver_",
|  | bool | binary = false )
| static

Creates a logger storing all vectors and scalar values in the solver after each iteration on disk.

This logger can handle multiple right-hand sides, in contrast to create_scalar_table_writer or create_scalar_csv_writer.

Parameters

  output | the path and file name prefix used to generate the output file names.
  precision | the number of digits of precision to print when outputting matrices in text format
  binary | if true, write data in Ginkgo's own binary format (lossless), if false write data in the MatrixMarket format (potentially lossy)

The documentation for this class was generated from the following file:

- ginkgo/core/log/solver_progress.hpp