Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Run one node on two processors #139

Closed
wants to merge 7 commits into from
Closed

Conversation

Wikunia
Copy link
Member

@Wikunia Wikunia commented Jun 1, 2019

First implementation of #138

@Wikunia Wikunia changed the title Run one node on two processors WIP: Run one node on two processors Jun 1, 2019
@codecov
Copy link

codecov bot commented Jun 1, 2019

Codecov Report

Merging #139 into master will increase coverage by 0.58%.
The diff coverage is 96.55%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #139      +/-   ##
==========================================
+ Coverage   93.05%   93.64%   +0.58%     
==========================================
  Files          22       22              
  Lines        1756     1777      +21     
==========================================
+ Hits         1634     1664      +30     
+ Misses        122      113       -9
Impacted Files Coverage Δ
src/solver.jl 98% <ø> (ø) ⬆️
src/types.jl 100% <100%> (ø) ⬆️
src/MOI_wrapper/MOI_wrapper.jl 79.13% <100%> (ø) ⬆️
src/BnBTree.jl 97.24% <96.47%> (+3.11%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fb70707...1b8bb48. Read the comment docs.

@codecov
Copy link

codecov bot commented Jun 1, 2019

Codecov Report

Merging #139 into master will increase coverage by 0.56%.
The diff coverage is 95.95%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #139      +/-   ##
==========================================
+ Coverage   92.49%   93.05%   +0.56%     
==========================================
  Files          22       22              
  Lines        1799     1829      +30     
==========================================
+ Hits         1664     1702      +38     
+ Misses        135      127       -8
Impacted Files Coverage Δ
src/solver.jl 98.14% <ø> (ø) ⬆️
src/types.jl 100% <100%> (ø) ⬆️
src/bb_strategies.jl 100% <100%> (ø) ⬆️
src/MOI_wrapper/MOI_wrapper.jl 84.56% <100%> (ø) ⬆️
src/table_log.jl 94.69% <100%> (ø) ⬆️
src/BnBTree.jl 97% <95.55%> (+2.81%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d03c03b...a066460. Read the comment docs.

@Wikunia Wikunia added the regression needed Needs regression testing before merge label Jun 2, 2019
@Wikunia
Copy link
Member Author

Wikunia commented Jun 2, 2019

Options for regression testing

  • standard (check that there is no change to master)
  • 4 processors
  • 16 processors (also on v0.4.1 for comparison)

Missing is a restart if almost solved and integral but not allowed, but this should be an option anyway.

@Wikunia
Copy link
Member Author

Wikunia commented Jun 4, 2019

Has problems with some instances but this is the first run against master and #134 (with 1 proc more)
Screenshot from 2019-06-04 10-32-49

@ccoffrin
Copy link
Member

ccoffrin commented Jun 4, 2019 via email

@Wikunia
Copy link
Member Author

Wikunia commented Jun 4, 2019

The overhead you mention isn't there if we do a precompile run, right?
The slow start happens only on the strong parallel branching part and I'm not sure why that is the case atm.
Regarding the suggestions yes I can check some rough metrics. Additionally we can run the relaxation in parallel as well but start with the feasibility pump if one of them is done. Then we might be able to get a better relaxed solution due to random starting positions. That said the feasibility pump is quite fast for small problems so there the overhead will be always visible.

@Wikunia
Copy link
Member Author

Wikunia commented Jun 6, 2019

At what stage of the solver should we decide this? I am wondering whether this should be determined before the relaxation or after. I think the relaxation time might be a good indicator but this is only true if we know whether Ipopt was called before or not. Is there a way to find it out?

@ccoffrin
Copy link
Member

ccoffrin commented Jun 6, 2019

I would probably do before solving the relaxation and just use the number of variables and constraints. Some combination of those two properties should be a strong indicator if the problem will be solved very quickly or not. If that is problematic then I would add the time required to solve the root node relaxation and a third criteria to consider.

@Wikunia
Copy link
Member Author

Wikunia commented Sep 18, 2019

One problem might be that one of the two sub-problems needs longer than the other such that one processor is idle which isn't the case in the standard parallel approach. There we might have the problem that we go into branches which aren't useful but no processor is idle.

@ccoffrin
Copy link
Member

closing due to lack of progress.

@ccoffrin ccoffrin closed this Feb 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression needed Needs regression testing before merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants