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

Turn the KomposDemo into benchmark, and optimize ValueCheckNode #350

Merged
merged 6 commits into from Apr 27, 2020

Conversation

smarr
Copy link
Owner

@smarr smarr commented Apr 16, 2020

This is a working version of the KomposDemo as an actor benchmark.

To optimize compilation, the PR also improves the ValueCheckNode.
The initial version simply iterated over all object fields and checked whether each of them contains null or a value.
The optimized version creates a tester that has the accessors for the object fields, and uses them to check with a dedicated IsValue node whether the relevant fields contain values.

@sophie-kaleba this is perhaps an interesting optimization for you.
@daumayr I hope this is what we can use for the revision. I was thinking, maybe we want to add a use of STM to it though.

Seems as if it is currently broken.
There does seem to be a race in the prefix sum calculation.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
Signed-off-by: Stefan Marr <git@stefan-marr.de>
This node is used in the constructor of Value objects, which are not allowed to have any members that are mutable.

The now optimized node takes the layout of an object and gets all the slot accessors that can potentially access mutable objects, i.e., the slots containing non-primitives.
It constructs a tester object, which will then test these fields.

The fallback case, i.e., when we see too many layouts, is the old code, that simply goes over all slots and checks whether it contains a value.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
@smarr smarr added the enhancement Improves the implementation with something noteworthy label Apr 16, 2020
@smarr smarr added this to the v0.8.0 milestone Apr 16, 2020
@smarr smarr self-assigned this Apr 16, 2020
Signed-off-by: Stefan Marr <git@stefan-marr.de>
@smarr smarr merged commit 02da734 into dev Apr 27, 2020
@smarr smarr deleted the kompos-demo-bench branch April 27, 2020 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improves the implementation with something noteworthy
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant