Supporting Distributed OptiGraphs#144
Conversation
jalving
left a comment
There was a problem hiding this comment.
This is PR very is very comprehensive. I only commented on minor things. For the sake of getting a working distributed version released, I think it is okay to release soon since base Plasmo code is hardly touched.
In the future, it would be great to find ways to cut down on duplicate implementations of the same Plasmo/JuMP interface, but this might be unavoidable given how JuMP extensions work.
|
I get this error from distributed when i run tests locally: But tests still pass. I think using |
I have had this error come up a couple times for me, but it did not always seem to be replicatable. I will take a closer look at the tests and see if it is from suppress or something else. At least one or two times where this error came up for me, I reran the code and it seemed to work the second time. I'll see if I can recreate the error and figure out what is throwing it. |
@jalving I think I am going to go with |
I updated the script to skip |
This fixed it 👍 |
|
@jalving I renamed |
Keeping the attribute name as |
|
@dlcole3 feel free to merge when ready |
This PR supports distributing OptiGraphs. Most of the source code is contained in the
distributedfolder that has been added. A set of unit tests and a two pages of documentation have also been added.The core structures are outlined in
distributed/core_types.jland include theRemoteOptiGraph,RemoteNodeRef,RemoteVariableRef,RemoteEdgeRef, andRemoteOptiEdge. Passing any of these objects directly to the remote worker also results in passing the wholeRemoteOptiGraphto the remote worker, so proxy objects have also been defined that allow for only passing the minimum data to create the corresponding objects or accessing the objects on the remote.In defining these new structures, I have tried to extend the same functions that have been extended for Plasmo. One exception is the
relax_integralityfunction which could perhaps still be included in this PR.