Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
path_result.hpp File Reference

Result struct used in the manager-worker MPI protocol for ZeroDim. More...

#include <deque>
#include <limits>
#include "bertini2/num_traits.hpp"
#include "bertini2/eigen_extensions.hpp"
#include "bertini2/mpfr_extensions.hpp"
#include "bertini2/common/config.hpp"
#include <boost/serialization/vector.hpp>
Include dependency graph for path_result.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bertini::parallel::StartPointTask< ComplexT >
 Work item for the speculative-full-path model: a path index plus its start point. More...
struct  bertini::parallel::FullPathResult< ComplexT >
 Result of executing one WHOLE path: start -> endgame boundary -> target. More...

Namespaces

namespace  bertini
namespace  bertini::parallel
namespace  bertini::parallel::detail

Functions

bool bertini::parallel::detail::is_sentinel (std::size_t v)
 Query whether a plain index value is the sentinel.
std::size_t bertini::parallel::detail::make_sentinel (std::size_t)
 Make the sentinel index value.
template<typename ComplexT>
bool bertini::parallel::detail::is_sentinel (StartPointTask< ComplexT > const &t)
 Query whether a work-item task is the sentinel.
template<typename ComplexT>
StartPointTask< ComplexT > bertini::parallel::detail::make_sentinel (StartPointTask< ComplexT > const &)
 Make the sentinel work-item task.

Variables

constexpr int bertini::parallel::TAG_WORK_ITEM = 1
 MPI message tag: manager -> worker work item.
constexpr int bertini::parallel::TAG_RESULT = 2
 MPI message tag: worker -> manager result.
constexpr int bertini::parallel::TAG_CAPACITY = 3
 MPI message tag: worker -> manager, max tasks in flight on that rank.

Detailed Description

Result struct used in the manager-worker MPI protocol for ZeroDim.

In the unified speculative-full-path model a worker executes one WHOLE path (pre-endgame + endgame), so the protocol is a single task/result pair: task = SolnIndT path index result = FullPathResult<ComplexT> (boundary data + final solution + endgame metadata)

FullPathResult carries Boost.Serialization support so Boost.MPI can transmit it via the existing serialization for Eigen vectors and arbitrary-precision types.