Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
MpiCommunicationStrategy.h
1#pragma once
2
3#include "antares-xpansion/benders/benders_core/ICommunicationStrategy.h"
4#include "common_mpi.h"
5
15{
16public:
17 explicit MpiCommunicationStrategy(mpi::communicator& world):
18 world_(world)
19 {
20 }
21
22 [[nodiscard]] int Rank() const override
23 {
24 return world_.rank();
25 }
26
27 [[nodiscard]] int WorldSize() const override
28 {
29 return world_.size();
30 }
31
32 void Barrier() const override
33 {
34 world_.barrier();
35 }
36
37 [[nodiscard]] bool ShouldParallelize() const override
38 {
39 return false;
40 }
41
44 mpi::communicator& World()
45 {
46 return world_;
47 }
48
49 const mpi::communicator& World() const
50 {
51 return world_;
52 }
53
54private:
55 mpi::communicator& world_;
56};
Strategy interface for communication operations in Benders decomposition.
Definition ICommunicationStrategy.h:33
Communication strategy for MPI-based distributed execution.
Definition MpiCommunicationStrategy.h:15
bool ShouldParallelize() const override
Definition MpiCommunicationStrategy.h:37
mpi::communicator & World()
Definition MpiCommunicationStrategy.h:44
int Rank() const override
Return the rank of this process (0 for sequential)
Definition MpiCommunicationStrategy.h:22
int WorldSize() const override
Return the total number of processes (1 for sequential)
Definition MpiCommunicationStrategy.h:27
void Barrier() const override
Synchronization barrier across all processes (no-op for sequential)
Definition MpiCommunicationStrategy.h:32