19#ifndef MOTIV_COLLECTIVECOMMUNICATIONEVENT_HPP
20#define MOTIV_COLLECTIVECOMMUNICATIONEVENT_HPP
23#include "CommunicationEvent.hpp"
49 const otf2::chrono::duration &anEnd,
50 otf2::definition::location *
location) :
54 const otf2::chrono::duration
start;
55 const otf2::chrono::duration
end;
64 [[nodiscard]]
const otf2::chrono::duration &
getStart()
const {
73 [[nodiscard]]
const otf2::chrono::duration &
getEnd()
const {
82 [[nodiscard]]
const otf2::definition::location *
getLocation()
const {
87 BUILDER_FIELD(otf2::chrono::duration,
start)
88 BUILDER_FIELD(otf2::chrono::duration,
end)
89 BUILDER_FIELD(otf2::definition::location*,
location),
104 otf2::definition::location *location,
105 types::communicator *communicator,
106 otf2::collective_type operation,
114 [[nodiscard]] otf2::definition::location *
getLocation()
const override;
124 [[nodiscard]] otf2::chrono::duration
getStartTime()
const override;
132 [[nodiscard]] otf2::chrono::duration
getEndTime()
const override;
143 [[nodiscard]] CommunicationKind
getKind()
const override;
149 [[nodiscard]] otf2::collective_type
getOperation()
const;
157 [[nodiscard]] uint32_t
getRoot()
const;
163 [[nodiscard]]
const std::vector<Member *> &
getMembers()
const;
166 BUILDER_FIELD(std::vector<Member*>, members)
167 BUILDER_FIELD(otf2::definition::location*, location)
168 BUILDER_FIELD(types::communicator*, communicator)
169 BUILDER_FIELD(otf2::collective_type, operation)
170 BUILDER_FIELD(uint32_t, root),
171 members, location, communicator, operation, root)
174 otf2::chrono::duration start{};
175 otf2::chrono::duration end{};
176 otf2::definition::location* location;
177 std::vector<Member*> members;
178 types::communicator* communicator;
179 otf2::common::collective_type operation;
A class representing a member of a collective operation.
const otf2::definition::location * location
const otf2::chrono::duration end
const otf2::chrono::duration & getEnd() const
Returns the end time of the communication.
const otf2::definition::location * getLocation() const
Returns the location of the member.
const otf2::chrono::duration start
Member(const otf2::chrono::duration &start, const otf2::chrono::duration &anEnd, otf2::definition::location *location)
Constructs a new instance of the Member class.
const otf2::chrono::duration & getStart() const
Returns the start time of the communication.
A class representing an MPI collective operation.
types::communicator * getCommunicator() const override
otf2::definition::location * getLocation() const override
Returns the location of the longest waiting member.
otf2::collective_type getOperation() const
Returns the kind of the collective operation.
uint32_t getRoot() const
Returns the root of the collective operation.
const std::vector< Member * > & getMembers() const
Returns all members participating in the collective operation.
otf2::chrono::duration getStartTime() const override
CommunicationKind getKind() const override
otf2::chrono::duration getEndTime() const override
Returns the end time of the collective operations.
Abstract class for generic Communication events.