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 · 69 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.

@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?

@bennn
Copy link

bennn commented Dec 2, 2024

@lucaferranti what can we do to speed this along?

@lucaferranti
Copy link
Member

I'll try to reach david via slack

@JeffreySarnoff
Copy link

In the event that David is unavailable, you should proceed.

@dpsanders
Copy link
Collaborator

Hi, sorry for the delay.

A few comments:

  • The link at https://utahplt.github.io/flowfpx/ to the Julia package has the old name.
  • This is probably more a problem with the style file, but copying and pasting code from the PDF to Julia does not work properly.
  • I would link to the package page on GitHub rather than JuliaHub from the paper.
  • The case studies are very cool!
  • The paper does not have a section titled "Statement of need"; however, I have checked the box since the need is clear from the paper.

Overall, this is very nice work, thanks!
I recommend to proceed with publication.

@bennn
Copy link

bennn commented Dec 10, 2024

@editorialbot generate pdf

@bennn
Copy link

bennn commented Dec 10, 2024

Thanks David!

We fixed the name at https://utahplt.github.io/flowfpx/ . We didn't change the JuliaCon style file but agree it's a bummer we can't copy/paste. We also didn't change the link in the paper because we feel that JuliaHub is the authoritative home for the code. GitHub is incidental ... if we decided to move off it for Microsoft/OpenAI/whatever concerns people should still be able to find TrackedFloats on JuliaHub.

@editorialbot
Copy link
Collaborator Author

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

@lucaferranti
Copy link
Member

@editorialbot show commands

@editorialbot
Copy link
Collaborator Author

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@editorialbot commands

@lucaferranti
Copy link
Member

@editorialbot commands

@editorialbot
Copy link
Collaborator Author

Hello @lucaferranti, here are the things you can ask me to do:


# List all available commands
@editorialbot commands

# Add to this issue's reviewers list
@editorialbot add @username as reviewer

# Remove from this issue's reviewers list
@editorialbot remove @username from reviewers

# Get a list of all editors's GitHub handles
@editorialbot list editors

# Assign a user as the editor of this submission
@editorialbot assign @username as editor

# Remove the editor assigned to this submission
@editorialbot remove editor

# Remind an author, a reviewer or the editor to return to a review after a 
# certain period of time (supported units days and weeks)
@editorialbot remind @reviewer in 2 weeks

# Adds a checklist for the reviewer using this command
@editorialbot generate my checklist

# Set a value for version
@editorialbot set v1.0.0 as version

# Set a value for branch
@editorialbot set juliacon-paper as branch

# Set a value for repository
@editorialbot set https://github.com/organization/repo as repository

# Set a value for the archive DOI
@editorialbot set 10.5281/zenodo.6861996 as archive

# Mention the EiCs for the correct track
@editorialbot ping track-eic

# Reject paper
@editorialbot reject

# Withdraw paper
@editorialbot withdraw

# Invite an editor to edit a submission (sending them an email)
@editorialbot invite @(.*) as editor

# Run checks and provide information on the repository and the paper file
@editorialbot check repository

# Check the references of the paper for missing DOIs
@editorialbot check references

# Generates the pdf paper
@editorialbot generate pdf

# Recommends the submission for acceptance
@editorialbot recommend-accept

# Accept and publish the paper
@editorialbot accept

# Update data on an accepted/published paper
@editorialbot reaccept

# Generates a LaTeX preprint file
@editorialbot generate preprint

# Flag submission with questionable scope
@editorialbot query scope

# Get a link to the complete list of reviewers
@editorialbot list reviewers

# Creates a post-review checklist with editor and authors tasks
@editorialbot create post-review checklist

# Open the review issue
@editorialbot start review

@lucaferranti
Copy link
Member

@editorialbot check references

@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

🟡 SKIP 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...
- 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...

❌ MISSING DOIs

- 10.2307/2317055 may be a valid DOI for title: The Art of Computer Programming, Volume 2: Seminum...

❌ INVALID DOIs

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

@lucaferranti
Copy link
Member

lucaferranti commented Dec 10, 2024

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

  • Double check authors and affiliations (including ORCIDs)
  • Make a release of the software with the latest changes from the review and post the version number here. This is the version that will be used in the JuliaCon Proceedings paper.
  • Archive the release on Zenodo/figshare/etc and post the DOI here.
  • Make sure that the title and author list (including ORCIDs) in the archive match those in the JuliaCon Proceedings paper.
  • Make sure that the license listed for the archive is the same as the software license.

Editor Tasks Prior to Acceptance

  • Read the text of the paper and offer comments/corrections (as either a list or a pull request)
  • Check that the archive title, author list, version tag, and the license are correct
  • Set archive DOI with @editorialbot set <DOI here> as archive
  • Set version with @editorialbot set <version here> as version
  • Double check rendering of paper with @editorialbot generate pdf
  • Specifically check the references with @editorialbot check references and ask author(s) to update as needed
  • Recommend acceptance with @editorialbot recommend-accept

@lucaferranti
Copy link
Member

lucaferranti commented Dec 10, 2024

@bennn to finalize the acceptance, please see the "additional author tasks after review is complete" in the message above ☝️

The critical thing is to have an up-to-date release of the software and a corresponding archive in zenodo. Once this is done, please post here the version and DOI.

Also, there seems to be an invalid DOI in the references, could you double check that?

❌ INVALID DOIs

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

(for the missing doi, that seems to point to a reivew of KNUTH book and not the book itself so a false positive)

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