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

[REVIEW]: FlowFPX: Nimble Tools for Debugging Floating-Point Exceptions #148

Open
editorialbot opened this issue Apr 25, 2024 · 54 comments
Open
Assignees

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Apr 25, 2024

Submitting author: @ashton314 (Ashton Wiersdorf)
Repository: https://github.com/utahplt/juliacon2023-paper
Branch with paper.md (empty if default branch):
Version: v1.0.0
Editor: @lucaferranti
Reviewers: @JeffreySarnoff, @dpsanders
Archive: Pending

Status

status

Status badge code:

HTML: <a href="https://proceedings.juliacon.org/papers/338a66061153419be896c7f7aab449ac"><img src="https://proceedings.juliacon.org/papers/338a66061153419be896c7f7aab449ac/status.svg"></a>
Markdown: [![status](https://proceedings.juliacon.org/papers/338a66061153419be896c7f7aab449ac/status.svg)](https://proceedings.juliacon.org/papers/338a66061153419be896c7f7aab449ac)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@JeffreySarnoff & @dpsanders, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @lucaferranti know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @JeffreySarnoff

📝 Checklist for @dpsanders

@editorialbot
Copy link
Collaborator Author

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper source files, type:

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.90  T=0.05 s (851.6 files/s, 387691.8 lines/s)
---------------------------------------------------------------------------------------
Language                             files          blank        comment           code
---------------------------------------------------------------------------------------
TeX                                     11            464            403          14638
SVG                                     29              0              0           3232
Windows Module Definition                1              0              0           1593
Ruby                                     1              8              4             45
Racket                                   1              5              5             38
YAML                                     1              0              0             34
Julia                                    1              3              0             14
---------------------------------------------------------------------------------------
SUM:                                    45            480            412          19594
---------------------------------------------------------------------------------------

Commit count by author:

    90	Ashton Wiersdorf
    37	Ben Greenman

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1145/103162.103163 is OK
- 10.1109/IEEESTD.1985.82928 is OK
- 10.1029/2020MS002246 is OK
- 10.1145/3316279.3316281 is OK
- 10.1109/MCSE.2014.90 is OK
- 10.1145/3579990.3580020 is OK
- 10.11588/ans.2015.100.20553 is OK
- 10.1145/3324989.3325721 is OK
- 10.1145/2998441 is OK
- 10.1515/jnum-2012-0013 is OK
- 10.1145/3330345.3330346 is OK
- 10.1016/j.parco.2021.102870 is OK
- 10.1002/0471028959 is OK
- 10.1109/Correctness56720.2022.00006 is OK
- 10.1109/Correctness54621.2021.00007 is OK
- 10.1145/3520313.3534655 is OK
- 10.1109/XLOOP56614.2022.00010 is OK
- 10.1145/3588195.3592991 is OK
- 10.21105/joss.02018 is OK
- 10.1109/ASE.2019.00118 is OK
- 10.1109/IISWC55918.2022.00014 is OK
- 10.5281/ZENODO.5115765 is OK
- 10.1109/MCSE.2014.11 is OK
- 10.1145/2737924.2737959 is OK
- 10.1145/3586183.3606819 is OK
- 10.1109/IPDPS.2007.370254 is OK
- 10.1109/MC.2019.2926614 is OK
- 10.1145/3369583.3392673 is OK
- 10.1007/978-3-319-76526-6 is OK
- 10.48550/arXiv.2209.05433 is OK

MISSING DOIs

- No DOI given, and none found for title: Handling IEEE 754 Invalid Operation Exceptions in ...
- No DOI given, and none found for title: Low-Precision Climate Computing: Preserving Inform...
- 10.2307/2317055 may be a valid DOI for title: The Art of Computer Programming, Volume 2: Seminum...
- No DOI given, and none found for title: OrdinaryDiffEq.jl
- No DOI given, and none found for title: DUNE Numerics
- No DOI given, and none found for title: Open Source Reports
- No DOI given, and none found for title: Issue Search: \textttNaN+infinity
- No DOI given, and none found for title: IEEE Working Group P3109 Interim Report on 8-bit B...

INVALID DOIs

- 10.1007/978-3-031-08751-6\_9 URL is INVALID

@editorialbot
Copy link
Collaborator Author

Paper file info:

📄 Wordcount for paper.tex is 4728

🔴 Failed to discover a Statement of need section in paper

@editorialbot
Copy link
Collaborator Author

License info:

🔴 Failed to discover a valid open source license

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@lucaferranti
Copy link
Member

lucaferranti commented Apr 25, 2024

@JeffreySarnoff, @dpsanders (cc @ashton314) thank you for volunteering as reviewers! 🙏 I'll be the editor handling this submission and you can ask me questions any time.

For start, you can generate your reviewer checklist by commenting

@editorialbot generate my checklist

(do not include other text in the message where you run that command)

Note: In this submission, the paper is in its own repository instead of being in the software repository. This is allowed. You can find the software here: https://github.com/utahplt/FloatTracker.jl

As you go through the checklist, you can leave your review comments either as issues in the paper/software repository or directly here. If you have any questions, ping me

@JeffreySarnoff
Copy link

JeffreySarnoff commented Apr 26, 2024

Review checklist for @JeffreySarnoff

Conflict of interest

  • I confirm that I have read the JuliaCon conflict of interest policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JCon for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/utahplt/juliacon2023-paper?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@ashton314) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Paper format

  • Authors: Does the paper.tex file include a list of authors with their affiliations?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?

Content

  • Context: is the scientific context motivating the work correctly presented?
  • Methodology: is the approach taken in the work justified, presented with enough details and reference to reproduce it?
  • Results: are the results presented and compared to approaches with similar goals?

@JeffreySarnoff
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@JeffreySarnoff
Copy link

JeffreySarnoff commented Apr 26, 2024 via email

@lucaferranti
Copy link
Member

You can add notes as comment in this thread. When I've reviewed, I generally collect all my notes/feedback in a single comment which I post in the review issue (this one). If you want to recommend changes in the paper / code you can also directly open issues in the repositories. In that case, please do mention this issue also there.

For your question of the statement of need. It is not strictly necassary to have a section with that name, but there should be a clear motivation for the software and the problem it is trying to solve. If you feel this is well described in the abstract/introduction, then you can tick the box

@JeffreySarnoff
Copy link

I am quizzical. The checklist is written for papers that are all about a Julia repository. FlowFPX is the "hook" yet there is no FlowFPX.jl afaik. I do see that this is a toolkit, still, having FlowFPX.jl that has the individual tools as [deps] (or subsets) along with a place for the docs to live together would be nice. Meanwhile -- I don't know what to do with the unchecked boxes .. they seem not applicable or to be considered at a later evolution. Nonetheless I appreciate the capabilities you have made available.

@bennn
Copy link

bennn commented May 10, 2024

Great point, there really should be a FlowFPX repo that brings the toolbox together. We'll see what we can do. (Unfortunately, all the students involved have graduated or moved on since JuliaCon'23.)

@bennn
Copy link

bennn commented May 28, 2024

The best we can do now is a loose coupling, basically with a readme. Putting at all together in a robust-cross-platform Julia package is tough because the different components of FlowFPX use different languages & hardware (C for CSTGs, Nvidia GPUs for GPUFPX).

@JeffreySarnoff
Copy link

JeffreySarnoff commented May 28, 2024 via email

@bennn
Copy link

bennn commented May 31, 2024

Added a landing page link to the paper: https://utahplt.github.io/flowfpx

@bennn
Copy link

bennn commented May 31, 2024

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@lucaferranti
Copy link
Member

Hi @dpsanders 👋 ,

were you able to start the review? Any projected timeline for it?

@dpsanders
Copy link
Collaborator

Apologies, not yet. I hope to get to it soon.

@bennn
Copy link

bennn commented Jul 11, 2024

@lucaferranti ok.

@dpsanders @JeffreySarnoff many thanks for the reviews.

We propose the following changes to the paper and its software:

Paper TODO

  • clarify what the FlowFPX toolkit is and its relationship to FloatTracker.jl ("TF.jl" for short)
  • rename FloatTracker.jl to TrackedFloats.jl
  • explicitly say there is no formal link between TF.jl and GPU-FPX
  • spell out FPX = Floating Point eXception, somewhere
  • clarify the explanation of how injection works, explain how odds is used
  • fix the floatmax issue
  • acknowledge the threat with thread safety

Software TODO

Future Work

Each of the following needs a matching GitHub issue. @dpsanders opened issues for several of these --- maybe all. Thanks!!! We'll confirm, put links below, and then mark these as completed.

Please comment to let us know whether these TODOs sound good, or if you need to see other changes in the next revision.

@bennn
Copy link

bennn commented Jul 22, 2024

ping @dpsanders @JeffreySarnoff

@JeffreySarnoff
Copy link

JeffreySarnoff commented Jul 22, 2024 via email

@dpsanders
Copy link
Collaborator

That all sounds great, thanks!

@bennn
Copy link

bennn commented Jul 23, 2024

thank you both! we'll get started

@ashton314
Copy link

Status update: lots of concerns addressed; currently waiting for registering the package rename to TrackedFloats on JuliaHub: JuliaRegistries/General#112323

@bennn
Copy link

bennn commented Aug 7, 2024

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@bennn
Copy link

bennn commented Aug 8, 2024

@JeffreySarnoff @dpsanders the latest PDF has fixes for everything except the juliahub package URL in section 3.

@ashton314
Copy link

@editorialbot generate pdf

@ashton314
Copy link

@JeffreySarnoff @dpsanders @bennn the JuliaHub URL has been updated to point to the new package.

@JeffreySarnoff
Copy link

!

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@ashton314
Copy link

How extensive must the contribution guidelines be? I've added a section to our README advising bug reporters to report issues on GitHub and to open PRs there if they have code they'd like to contribute.

@JeffreySarnoff
Copy link

While I don't know the answer to your question, referring to this guidance from SciML or copying what may be most salient for you is one way to go.

@JeffreySarnoff
Copy link

by the way, the message "⚠️ NOTICE ⚠️ we are in the process of renaming FloatTracker → TrackedFloats to bring this inline with Julia package naming conventions. Please be patient." at the top of the README for TrackedFloats.jl is not useful any longer (imo).

@lucaferranti
Copy link
Member

lucaferranti commented Aug 28, 2024

Hi everyone, 👋 ,

just checking in on how this review is going.

@dpsanders @JeffreySarnoff I believe @ashton314 has updated the paper and software to address your concerns. Could you take a second look and let the author know if any further changes are needed?

@ashton314 I see you have some unticked boxes in your TODO list, do you have an estimate of the timeline?

@ashton314
Copy link

@lucaferranti I'm gearing up for a talk at ECOOP in September. I hope to make a little progress before then, but it might not be finished until after the conference.

@ashton314
Copy link

Timeline update: today I've got a little time and I'll try making sure everything exported gets a tf_ and the beginning.

Could I get some suggestions on what constitutes "adding structure to the documentation"? Moreover—this isn't a big package; I don't think the README is that long and it serves the need for documentation adequately. Is that really going to be a blocker?

@ashton314
Copy link

So, concretely: I have a little more work to do today on the software; depending on how we feel about the state of documentation, it might take me until late September when I have some time after ECOOP.

@lucaferranti
Copy link
Member

@ashton314 the timeline sounds good, thanks for the updates.

For your question, I would understand it as setting up Documenter.jl and have an API documentation by collecting exported functions docstrings as well as a couple of tutorials, but do feel free to ask @dpsanders directly to clarify what he meant if it's not clear to you

@bennn
Copy link

bennn commented Oct 15, 2024

@lucaferranti @dpsanders @JeffreySarnoff we're done on our end. Waiting now on your reviews.

All the TODOs above are either complete or have links to the Tracked Floats issue tracker.

@bennn
Copy link

bennn commented Oct 15, 2024

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@JeffreySarnoff
Copy link

I may have missed this in the paper -- in Figure 6 there are numbered arrows, it is unclear what those numbers convey.

@JeffreySarnoff
Copy link

Other than that .. very nice work.

@ashton314
Copy link

I may have missed this in the paper -- in Figure 6 there are numbered arrows, it is unclear what those numbers convey.

This is explained in §3.2, paragraph 2.

@bennn
Copy link

bennn commented Nov 6, 2024

@dpsanders when might you give this a second look?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants