Skip to content

Conversation

@vkarak
Copy link
Contributor

@vkarak vkarak commented Oct 1, 2022

This PR introduces several small improvements that imo enhance the daily experience.

  1. The log files are printed before the run start. Therefore it is easy to inspect the logs live for long runs, especially with the default log configuration, which creates a temporary log file.
  2. The performance data of a performance test is printed immediately after the test finishes (either successfully or not). This is especially useful for long performance exploration experiments, where you don't want to wait until the end of the run to see the performance in the performance report.
  3. The performance report is modernised and improved. More information is listed but in a more compact and concise way.
  4. All error and warning messages are prefixed with ERROR and WARNING always. This makes it easier spot errors and warnings, even when no colors are used.
  5. Some debug messages where moved to debug2.
  6. A warning when building the docs was fixed.
  7. The docs and local run listings are updated.

TODOS

  • Update the remote run listings (@ekouts Could you do that on Daint?)

@codecov-commenter
Copy link

Codecov Report

Base: 86.69% // Head: 86.27% // Decreases project coverage by -0.42% ⚠️

Coverage data is based on head (6c51b54) compared to base (9f0d167).
Patch coverage: 93.22% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2618      +/-   ##
==========================================
- Coverage   86.69%   86.27%   -0.43%     
==========================================
  Files          59       60       +1     
  Lines       10868    10977     +109     
==========================================
+ Hits         9422     9470      +48     
- Misses       1446     1507      +61     
Impacted Files Coverage Δ
reframe/frontend/cli.py 72.23% <75.00%> (-0.07%) ⬇️
reframe/frontend/statistics.py 95.94% <92.85%> (+0.09%) ⬆️
reframe/core/config.py 91.53% <100.00%> (ø)
reframe/core/logging.py 77.77% <100.00%> (ø)
reframe/frontend/executors/policies.py 92.50% <100.00%> (+0.19%) ⬆️
reframe/core/systems.py 89.95% <0.00%> (-1.40%) ⬇️
reframe/core/environments.py 96.39% <0.00%> (-0.91%) ⬇️
reframe/core/schedulers/flux.py 33.33% <0.00%> (ø)
reframe/core/backends.py 93.93% <0.00%> (+3.93%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@vkarak vkarak changed the title [feat] Improve framework message and the performance report [feat] Improve framework messages and the performance report Oct 3, 2022
@vkarak vkarak requested a review from teojgo October 4, 2022 17:16
@ekouts
Copy link
Contributor

ekouts commented Oct 5, 2022

I was trying to run the listings on daint and realized that the performance report is not reporting all the progenvs. This is the new performance report from alltests_daint:

[ReFrame Setup]
  version:           4.0.0-dev.1+6c51b548
...
[ RUN      ] HelloThreadedExtended2Test /57223829 @daint:mc+cray
[ RUN      ] StreamWithRefTest /f925207b @daint:login+gnu
[ RUN      ] StreamWithRefTest /f925207b @daint:gpu+gnu
[ RUN      ] StreamWithRefTest /f925207b @daint:mc+gnu
...
[       OK ] (16/42) StreamWithRefTest /f925207b @daint:login+gnu
P: Copy: 69777.8 MB/s (r:0, l:None, u:None)
P: Scale: 42953.6 MB/s (r:0, l:None, u:None)
P: Add: 46951.0 MB/s (r:0, l:None, u:None)
P: Triad: 47320.6 MB/s (r:0, l:None, u:None)
[       OK ] (17/42) HelloMultiLangTest %lang=cpp /71bf65a3 @daint:mc+gnu
...
[       OK ] (25/42) StreamWithRefTest /f925207b @daint:mc+gnu
P: Copy: 49051.3 MB/s (r:0, l:None, u:None)
P: Scale: 31809.1 MB/s (r:0, l:None, u:None)
P: Add: 33709.2 MB/s (r:0, l:None, u:None)
P: Triad: 33932.1 MB/s (r:0, l:None, u:None)
[       OK ] (26/42) HelloMultiLangTest %lang=c /7cfa870e @daint:gpu+cray
...
[       OK ] (41/42) StreamWithRefTest /f925207b @daint:gpu+gnu
P: Copy: 50739.1 MB/s (r:0, l:None, u:None)
P: Scale: 34674.5 MB/s (r:0, l:None, u:None)
P: Add: 38353.3 MB/s (r:0, l:None, u:None)
P: Triad: 38683.2 MB/s (r:0, l:None, u:None)
[       OK ] (42/42) HelloThreadedExtended2Test /57223829 @daint:gpu+nvidia
[----------] all spawned checks have finished

[  PASSED  ] Ran 42/42 test case(s) from 4 check(s) (0 failure(s), 0 skipped)
[==========] Finished on Wed Oct  5 14:22:30 2022 

================================================================================
PERFORMANCE REPORT
--------------------------------------------------------------------------------
[StreamWithRefTest /f925207b @daint:mc:gnu]
  num_gpus_per_node: 0
  num_tasks: 1
  performance:
    - Copy: 49051.3 MB/s (r: 0 MB/s l: -inf% u: +inf%)
    - Scale: 31809.1 MB/s (r: 0 MB/s l: -inf% u: +inf%)
    - Add: 33709.2 MB/s (r: 0 MB/s l: -inf% u: +inf%)
    - Triad: 33932.1 MB/s (r: 0 MB/s l: -inf% u: +inf%)
--------------------------------------------------------------------------------
Run report saved in '/home/user/.reframe/reports/run-report-59.json'
Log file(s) saved in '/tmp/rfm-vju06n8f.log'

@ekouts
Copy link
Contributor

ekouts commented Oct 5, 2022

I have updated the remote listings, but we need to re-run alltests_daint.txt and stream4_daint.txt after the problem with the performance report is fixed. Please let me know if I missing any other listing.

I also needed to change some tests because the nvidia environment of daint needed a fix. I didn't push the changes because I think they may complicate the tutorial for no reason. What do you think? I needed to add this in a couple of tests.

    @run_before('compile')
    def prgenv_nvidia_workaround(self):
        ce = self.current_environ.name
        if ce == 'nvidia':
            self.build_system.cppflags += [
                '-D__GCC_ATOMIC_TEST_AND_SET_TRUEVAL'
            ]

@vkarak
Copy link
Contributor Author

vkarak commented Oct 5, 2022

I also needed to change some tests because the nvidia environment of daint needed a fix. I didn't push the changes because I think they may complicate the tutorial for no reason. What do you think? I needed to add this in a couple of tests.

Good point, it will complicate it without a reason, but perhaps this deserves a nice small tip-n-trick section, where we can show the functionality of disabling the workaround hook. ;-)

@vkarak
Copy link
Contributor Author

vkarak commented Oct 5, 2022

I was trying to run the listings on daint and realized that the performance report is not reporting all the progenvs. This is the new performance report from alltests_daint:

Hmm, that smells like a bug. I will have a look at it.

@vkarak
Copy link
Contributor Author

vkarak commented Oct 5, 2022

Btw, what do you think about the P: lines print outs? Should they be in the verbose mode?

@ekouts
Copy link
Contributor

ekouts commented Oct 6, 2022

Btw, what do you think about the P: lines print outs? Should they be in the verbose mode?

I honestly don't know what I prefer. Initially I thought about asking to put it in verbose, but I kinda like it and find it useful. I think most people don't run in verbose mode and wouldn't see it probably. But again, I don't have a strong opinion on this.

Good point, it will complicate it without a reason, but perhaps this deserves a nice small tip-n-trick section, where we can show the functionality of disabling the workaround hook. ;-)

Hm how about I put it under # rfmdocend: and then we show it only in the tips-and-tricks section?

@vkarak
Copy link
Contributor Author

vkarak commented Oct 6, 2022

I honestly don't know what I prefer. Initially I thought about asking to put it in verbose, but I kinda like it and find it useful. I think most people don't run in verbose mode and wouldn't see it probably. But again, I don't have a strong opinion on this.

I had the same feelings as well, that's why I asked. I'm glad that we agree! I kinda prefer it in the non-verbose mode as well.

Hm how about I put it under # rfmdocend: and then we show it only in the tips-and-tricks section?

Yes, if that works, that'd be good!

Copy link
Contributor

@victorusu victorusu left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Contributor

@ekouts ekouts left a comment

Choose a reason for hiding this comment

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

Some very minor comments. deps_rerun_t6 and deps_rerun_t6 should be run without config file according to gendoclistings. We should update the listingsa or the gendoclistings.py

@vkarak
Copy link
Contributor Author

vkarak commented Oct 7, 2022

@ekouts The tutorial looks good to me; I just did a little bit of refinement.

@ekouts ekouts merged commit c15a073 into reframe-hpc:master Oct 8, 2022
@vkarak vkarak deleted the feat/improve-messages branch February 3, 2023 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants