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

Time API #159

Merged
merged 21 commits into from
Sep 18, 2019
Merged

Time API #159

merged 21 commits into from
Sep 18, 2019

Conversation

gonsie
Copy link
Member

@gonsie gonsie commented Aug 21, 2019

This is a new API which allows for user defined tw_stime types. It is implemented through #define macros, which should have minimal performance impact in the nominal case. Existing models do not need to change, unless they plan on supporting various tw_stime types.

See the previous conversation in #157. This PR has develop as the base.


If this merge represents a feature addition to ROSS, the following items must be completed before the branch will be merged:

  • Document the feature on the blog (See the website Contributing guide).
    Include a link to your blog post in the Pull Request.
  • Builds should cleanly compile with -Wall and -Wextra.
  • One or more TravisCI tests should be created (and they should pass)
  • Through the TravisCI tests, coverage should increase
  • Test with CODES to ensure everything continues to work

gonsie added 17 commits July 17, 2019 14:05
- gvt_print_interval (gvt/mpi_allreduce.h)
- percent_complete   (gvt/mpi_allreduce.h)
- g_tw_ts_end
- g_tw_lookahead
- g_tw_min_detected_offset
3 API operations, implemented in #define
- TW_STIME_DBL(x) : convert tw_stime to double
- TW_STIME_CMP(x, y) : compare two tw_stime objects
- TW_STIME_ADD(x, y) : add two tw_stime objects into a new object
- TW_STIME_MAX : return a "max" tw_stime object (similar to DBL_MAX)
For real-time reporting... not based on cycle counts
@codecov
Copy link

codecov bot commented Aug 22, 2019

Codecov Report

Merging #159 into develop will decrease coverage by 0.25%.
The diff coverage is 71%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #159      +/-   ##
===========================================
- Coverage    58.42%   58.17%   -0.26%     
===========================================
  Files           32       32              
  Lines         3541     3558      +17     
===========================================
+ Hits          2069     2070       +1     
- Misses        1472     1488      +16
Impacted Files Coverage Δ
core/tw-eventq.h 91.17% <ø> (ø) ⬆️
core/instrumentation/st-instrumentation.c 100% <ø> (ø) ⬆️
core/tw-setup.c 70.9% <ø> (ø) ⬆️
core/ross-inline.h 40% <ø> (ø) ⬆️
core/instrumentation/st-model-data.c 75% <100%> (ø) ⬆️
core/tw-pe.c 90% <100%> (ø) ⬆️
core/tw-kp.c 79.45% <100%> (ø) ⬆️
core/instrumentation/st-event-trace.c 80.76% <100%> (ø) ⬆️
core/instrumentation/st-sim-engine.c 98.13% <100%> (ø) ⬆️
core/gvt/mpi_allreduce.h 87.5% <100%> (+0.83%) ⬆️
... and 10 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 995a433...075327e. Read the comment docs.

@gonsie
Copy link
Member Author

gonsie commented Aug 22, 2019

So I was wrong, this does represent an API change to ROSS model. I've renamed TWOPT_STIME to TWOPT_DOUBLE to be explicit about the accepted values.

This API change means that we'd have do an 8.0 release. Alternatively, we could re-add TWOPT_STIME (as a deprecated option) for a 7.2 release... removing TWOPT_STIME in an eventual 8.0 release.

@gonsie
Copy link
Member Author

gonsie commented Aug 22, 2019

Since this is an API change, I've created a CODES branch for the update.

@gonsie
Copy link
Member Author

gonsie commented Aug 22, 2019

There is no functionality change, so no new unit tests are needed. Yet, coverage has increased 😄

Revert "tw-opts: removed STIME opt, replaced with DOUBLE"
This reverts commit 61b6ef8.
Copy link
Member

@caitlinross caitlinross left a comment

Choose a reason for hiding this comment

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

Just missing a few casts to double where instrumentation sampling functions are called (because of integer division).

core/gvt/mpi_allreduce.c Outdated Show resolved Hide resolved
core/tw-sched.c Outdated Show resolved Hide resolved
core/tw-sched.c Outdated Show resolved Hide resolved
core/tw-sched.c Outdated Show resolved Hide resolved
core/tw-sched.c Outdated Show resolved Hide resolved
@caitlinross
Copy link
Member

I think once those few changes I pointed out are made, it's good to merge!

@caitlinross
Copy link
Member

Oh yeah and @gonsie in regards to CODES, it's actually been moved to GitHub so you may want to submit the PR there instead of Gitlab.

@gonsie
Copy link
Member Author

gonsie commented Sep 16, 2019

thanks @caitlinross! I've updated the PR with your change requests. Please double check that I'm doing the double casting in the way you want. Then merge, or give me the go-ahead.

thanks for the update on codes as well! I'll PR my update to them once we have a 7.2 release.

core/gvt/mpi_allreduce.c Outdated Show resolved Hide resolved
@gonsie
Copy link
Member Author

gonsie commented Sep 18, 2019

Got it!

For realz this time @caitlinross !

@caitlinross caitlinross merged commit 3f21c68 into develop Sep 18, 2019
@caitlinross caitlinross deleted the time-api branch September 18, 2019 23:48
@gonsie gonsie mentioned this pull request Dec 2, 2019
gonsie added a commit that referenced this pull request Dec 2, 2019
Merge release-7.2.0:

* New default clock: get-time-of-day (#170)
* STime API (#159)
* Add ARMv7l arch support to ROSS (#155)
* Fix to generate covage stats (#150)
* changing damaris submodule/directory to risa
* Updated README
* Update to the way the build process grabs version number (#148)
* simplifying the build of static or shared libraries (#147)
* ROSS cleanup: -Wall, -Wextra, and more (#135)
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

Successfully merging this pull request may close these issues.

None yet

2 participants