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

MPI Graph exploration for test generation #35

Open
martinruefenacht opened this issue Nov 14, 2019 · 5 comments
Open

MPI Graph exploration for test generation #35

martinruefenacht opened this issue Nov 14, 2019 · 5 comments
Assignees
Labels
enhancement New feature or request major This is a major feature for the future.

Comments

@martinruefenacht
Copy link
Owner

martinruefenacht commented Nov 14, 2019

Instead of writing a generator for each general test we can come up with we want to replace that through an automated generation as well.

  • We have the call dependency graph of MPI through the Standard (needs & leads)
  • We have the data flow dependency through the function arguments

By using these two we can explore the graph using a breath first search traversal.

  1. Start at the nodes which no "needs"
  2. If node has no "leads", complete, we are at an independent function
  3. Otherwise apply BFS.

How do we mesh this with the data dependency?

Mutation MPI Graph (3)

@martinruefenacht
Copy link
Owner Author

This will discover the disjoint sub graphs of MPI_Get_version, etc... And the init-finalize path.

All these minimal paths would be "seeds" to mutate a path from. Any path through the function call graph of MPI is valid according to the Standard. The valid/invalid test case is constructed from the path and the property-based exploration.

@martinruefenacht
Copy link
Owner Author

How does the error handling fit into all of this?

@martinruefenacht
Copy link
Owner Author

This is involved in the #34 and #33.

@martinruefenacht martinruefenacht added enhancement New feature or request major This is a major feature for the future. labels Dec 16, 2019
@martinruefenacht martinruefenacht pinned this issue Jan 10, 2020
@martinruefenacht
Copy link
Owner Author

Mutation MPI Graph (4)

Updated the graph above to show which graph was used to create the edge.

@martinruefenacht
Copy link
Owner Author

flow
Initial results, reads the standard, using only needs/leads at the moment. Can jump to any function, no "mutation" done seems viable though. Need the type system understanding and mechanisms to be adjusted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request major This is a major feature for the future.
Projects
None yet
Development

No branches or pull requests

2 participants