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

Where is the interaction between scheduler and data reading ? #381

Open
jiumeiliuxu opened this issue Dec 7, 2021 · 1 comment
Open

Comments

@jiumeiliuxu
Copy link

When running the example \lonestar\tutorial_examples\SSSPPushSimple.cpp, the obim scheduler provides higher priority nodes. Where is this step involved in the code? I only saw push and pop functions in obim.h, but I didn't find where they were called.

@nicelhc13
Copy link
Contributor

Those push/pop functions involve the logic your are mentioning. Push() pushes indices to thread local storagse based on user provided indexer (

Index index = indexer(val);
).

Pop() pops indices in FIFO order from the thread local storages
(

ThreadData& p = *data.getLocal();
)

Based on this high level logic, several optimizations (like fast/slow paths) are applied.
Please let me know if you have further questions.

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