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

fix ParallelContainer's interface methods #19

Closed
5 tasks done
rhaschke opened this issue Feb 20, 2018 · 1 comment
Closed
5 tasks done

fix ParallelContainer's interface methods #19

rhaschke opened this issue Feb 20, 2018 · 1 comment
Assignees

Comments

@rhaschke
Copy link
Contributor

rhaschke commented Feb 20, 2018

A parallel container's required interface is derived from the required interfaces of all of its children.
They must not conflict to each other. Otherwise an InitStageException should be thrown.

  • Implement unittests in core/test/test_container.cpp, following the example of SerialContainer, to validate correct initialization of allowed (and failure detection for forbidden) combinations. The following combinations are feasible:
    • ❘ ❘ = ❘ (connecting stages)
    • ↑ ↑ = ↑ (backward propagating)
    • ↓ ↓ = ↓ (forward propagating)
    • ↑ ↓ = ⇅ = ⇅ ↑ = ⇅ ↓ (propagating in both directions)
    • ↕ ↕ = ↕ (generating)
  • requiredInterface(): correctly derive a consistent interface from children or throw an InitStageException. Not all combinations of child interfaces are possible.
  • init(): use ParallelContainer::requiredInterface() to determine the interface
  • implement pruneInterface(): forward pruning to all children with UNKNOWN required interface, follow SerialContainer's implementation
  • fix validateConnectivity(): an exact match of ParallelContainer's interface to all children's interfaces is not required. ParallelContainer's interface, only needs to be a superset. For example, children interfaces of type ↑ or ↓ match to container's ⇅, but not vice versa.
@rhaschke rhaschke mentioned this issue Feb 20, 2018
50 tasks
@rhaschke
Copy link
Contributor Author

rhaschke commented Apr 5, 2018

Fixed via d731e94.

@rhaschke rhaschke closed this as completed Apr 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants