lue_framework_partitioned_route#

template<typename RouteID, Rank rank>
class SerialRoute#

Class for representing zero or more serial routes of array cells.

A serial route is a route along a set of array cells. Any cell can be part of at most one route. The reason for cells to be part of a route and in which order is application defined. For example, in case of land-use allocation, routes can be defined along a decreasing suitability for crops (see decreasing_order()).

The information about serial routes is stored in partitions (SerialRoutePartition). Partitions can be located in multiple processes.

Per partition and per route, information about which cells are part the route in a collections of route fragments (SerialRouteFragment).

Template Parameters:
  • RouteID – Integral type for representing route IDs

  • rank – Array rank

Public Types

using Starts = std::map<RouteID, FragmentLocation>#

For each route the location of the first fragment.

Public Functions

inline SerialRoute()#

Default-construct an instance.

inline SerialRoute(Shape const &shape, hpx::shared_future<Starts> &&starts, Partitions &&partitions)#

Construct an instance, given an array shape, a shared future to the route starts, and partitions.

The array shape passed in must match the union of array partitions.

inline SerialRoute(Shape const &shape, hpx::future<Starts> &&starts, Partitions &&partitions)#

Construct an instance, given an array shape, a unique future to the route starts, and partitions.

The array shape passed in must match the union of array partitions.

inline auto shape() const -> Shape const&#

Return the shape of the array.

inline auto starts() const -> hpx::shared_future<Starts> const&#

Return a shared future to the collection of route starts.

inline auto partitions() const -> Partitions const&#

Return the collection of route partitions.

template<typename RouteID, Rank rank>
class SerialRoutePartition : public hpx::components::client_base<SerialRoutePartition<RouteID, rank>, server::SerialRoutePartition<RouteID, rank>>#

Class for serial route partition component client instances.

Each instance is associated with a single serial route partition component server instance. Multiple instances can be associated with a single server instance.

template<Rank rank>
class SerialRouteFragment#

Class for aggregating information about a fragment of a serial route.

A serial route is a collection of route fragments scattered over route partitions. A fragment is a piece of a route whose cell indxs are all located in a single partition.

Public Types

using PartitionID = hpx::id_type#

ID of a route partition.

using LocalityID = hpx::id_type#

Locality a partition is located in.

using Location = hpx::shared_future<PartitionID>#

Location of a route fragment.

using CellIdx = Index#

Linear index of a cell, within a partition.