Skip to content

Commit fd45471

Browse files
committed
Merge remote-tracking branch 'upstream/main' into communicator_refactor
2 parents 252166c + 845809b commit fd45471

File tree

9 files changed

+522
-497
lines changed

9 files changed

+522
-497
lines changed

Diff for: examples/netdes/drivertest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# Hub and spoke SPBase classes
1313
from mpisppy.phbase import PHBase
1414
from mpisppy.opt.ph import PH
15-
from mpisppy.fwph.fwph import FWPH
15+
from mpisppy.opt.fwph import FWPH
1616
# Hub and spoke SPCommunicator classes
1717
from mpisppy.cylinders.fwph_spoke import FrankWolfeOuterBound
1818
from mpisppy.cylinders.lagrangian_bounder import LagrangianOuterBound

Diff for: examples/uc/uc4wood.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Hub and spoke SPBase classes
1919
from mpisppy.phbase import PHBase
2020
from mpisppy.opt.ph import PH
21-
from mpisppy.fwph.fwph import FWPH
21+
from mpisppy.opt.fwph import FWPH
2222
from mpisppy.utils.xhat_eval import Xhat_Eval
2323
# Hub and spoke SPCommunicator classes
2424
from mpisppy.cylinders.fwph_spoke import FrankWolfeOuterBound

Diff for: mpisppy/cylinders/hub.py

+9
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,8 @@ def sync_Ws(self):
343343
def is_converged(self):
344344
if self.opt.best_bound_obj_val is not None:
345345
self.BestOuterBound = self.OuterBoundUpdate(self.opt.best_bound_obj_val)
346+
if self.opt.best_solution_obj_val is not None:
347+
self.BestInnerBound = self.InnerBoundUpdate(self.opt.best_solution_obj_val)
346348

347349
if not self.receive_field_spcomms[Field.OBJECTIVE_INNER_BOUND]:
348350
if self.opt._PHIter == 1:
@@ -511,3 +513,10 @@ def finalize(self):
511513
# to APH.post_loops
512514
Eobj = self.opt.post_loops()
513515
return Eobj
516+
517+
class FWPHHub(PHHub):
518+
519+
_hub_algo_best_bound_provider = True
520+
521+
def main(self):
522+
self.opt.fwph_main(finalize=False)

Diff for: mpisppy/fwph/__init__.py

Whitespace-only changes.

Diff for: mpisppy/generic_cylinders.py

+10
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,16 @@ def _do_decomp(module, cfg, scenario_creator, scenario_creator_kwargs, scenario_
175175
rho_setter = rho_setter,
176176
all_nodenames = all_nodenames,
177177
)
178+
elif cfg.fwph_hub:
179+
# Vanilla FWPH hub
180+
hub_dict = vanilla.fwph_hub(
181+
*beans,
182+
scenario_creator_kwargs=scenario_creator_kwargs,
183+
ph_extensions=None,
184+
ph_converger=ph_converger,
185+
rho_setter = rho_setter,
186+
all_nodenames = all_nodenames,
187+
)
178188
else:
179189
# Vanilla PH hub
180190
hub_dict = vanilla.ph_hub(*beans,

0 commit comments

Comments
 (0)