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

Added support for modular scheduler in C runtime #743

Merged
merged 136 commits into from
Feb 26, 2022
Merged

Conversation

Soroosh129
Copy link
Contributor

@Soroosh129 Soroosh129 commented Nov 11, 2021

This PR adds the bare-minimum ability to change the runtime scheduler when supported.

The main features of this PR are:

  • A scheduler target property
  • -s and --scheduler lfc command-line arguments
  • Testing of all supported schedulers for the C target using LF tests (in concurrent, multiport, and federated categories)
  • Minor updates and tweaks to the testing framework (for example, to show exit code)
  • Updated references of reactor-c and reactor-c-py

Please see the PR in reactor-c for more details about the schedulers themselves.

  • FIXME: Update test framework (pass CLI arg to test) and c-tests.yml so that caller can specify which scheduler to use

Copy link
Member

@lhstrh lhstrh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all looks good to me, but I got really stuck while reviewing the changes in ReactionInstanceGraph...

benchmark/runner/conf/default.yaml Outdated Show resolved Hide resolved
org.lflang/src/org/lflang/generator/c/CGenerator.xtend Outdated Show resolved Hide resolved
test/C/src/Deadline.lf Outdated Show resolved Hide resolved
org.lflang/src/org/lflang/FileConfig.java Outdated Show resolved Hide resolved
Copy link
Collaborator

@edwardalee edwardalee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lhstrh and I have made a pass over this and I believe it is ready to merge. The c-new-scheduler branch of reactor-c should be merged first and then the reactor-c pointer updated to point to reactor-c/main.

org.lflang/src/org/lflang/generator/ReactorInstance.java Outdated Show resolved Hide resolved
@edwardalee edwardalee merged commit 14e26fe into master Feb 26, 2022
@edwardalee edwardalee deleted the c-new-scheduler branch February 26, 2022 20:52
@lhstrh lhstrh changed the title C new scheduler Added support for modular scheduler in C runtime Mar 17, 2022
@lhstrh lhstrh added the enhancement Enhancement of existing feature label Mar 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c Related to C target enhancement Enhancement of existing feature performance Related to execution performance runtime Related to the runtime implementation testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants