openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
721 stars 38 forks source link

[REVIEW]: fastSF: A parallel code for computing the structure functions of turbulence #2185

Closed whedon closed 3 years ago

whedon commented 4 years ago

Submitting author: @ShubhadeepSadhukhan1993 (Shubhadeep Sadhukhan) Repository: https://github.com/ShubhadeepSadhukhan1993/fastSF Version: v1.0.0 Editor: @jedbrown Reviewer: @cpgr, @iljah Archive: 10.5281/zenodo.4420031

:warning: JOSS reduced service mode :warning:

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/71ba620016640c5ded6e927af83f4d38"><img src="https://joss.theoj.org/papers/71ba620016640c5ded6e927af83f4d38/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/71ba620016640c5ded6e927af83f4d38/status.svg)](https://joss.theoj.org/papers/71ba620016640c5ded6e927af83f4d38)

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

@cpgr & @iljah, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

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

Please try and complete your review in the next six weeks

Review checklist for @cpgr

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

Review checklist for @iljah

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

whedon commented 4 years ago

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @cpgr, @iljah it looks like you're currently assigned to review this paper :tada:.

:warning: JOSS reduced service mode :warning:

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

:star: Important :star:

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

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

@whedon commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@whedon generate pdf
whedon commented 4 years ago
Reference check summary:

OK DOIs

- 10.1093/acprof:oso/9780198722588.001.0001 is OK
- 10.1017/9781316810019 is OK
- 10.1017/CBO9781139170666 is OK
- 10.1016/C2009-0-18471-4 is OK
- 10.1098/rspa.1991.0076 is OK
- 10.1098/rspa.1991.0075 is OK
- 10.1103/PhysRevLett.70.3251 is OK
- 10.1016/j.jpdc.2017.10.014 is OK
- 10.1063/1.2001690 is OK
- 10.1063/1.1539855 is OK
- 10.1063/1.1448296 is OK
- 10.1088/1367-2630/10/3/033003 is OK
- 10.1088/1367-2630/6/1/037 is OK
- 10.1103/PhysRevE.77.016302 is OK
- 10.1017/jfm.2013.74 is OK
- 10.1146/annurev.fluid.010908.165203 is OK
- 10.1063/1.5119905 is OK
- 10.1103/PhysRevLett.72.336 is OK
- 10.1007/s12043-013-0594-4 is OK
- 10.1103/PhysRevFluids.4.084607 is OK

MISSING DOIs

- None

INVALID DOIs

- None
whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

arfon commented 4 years ago

@cpgr, @iljah - please carry out your review in this issue by updating the checklist above and giving feedback in this issue. The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html

Any questions/concerns please let @jedbrown or myself know.

iljah commented 4 years ago

@jedbrown / @arfon Should title of this issue be updated to fastSF or does it matter?

arfon commented 4 years ago

@jedbrown / @arfon Should title of this issue be updated to fastSF or does it matter?

Good catch. I just updated it!

iljah commented 4 years ago

hi @ShubhadeepSadhukhan1993 , above article proof seems to contain things that aren't supposed to be there according to review guidelines ["the JOSS paper (the compiled PDF associated with this submission) should only include"] and hence should probably be removed before acceptance. @jedbrown probably knows better but I'd say the following sections should be removed: "Velocity and scalar structure functions", "Design of the Code", "Validation".

shashwat-bhattacharya commented 4 years ago

@iljah Thanks for the advice. We will do the needful and get back to you soon.

jedbrown commented 4 years ago

It's your discretion, but defining what structure functions are and the basic parallel distribution strategy is reasonable to retain (it helps a reader understand what the software really does). Validation (seems more like "verification") could be deferred to project documentation. The important point is to write for the correct audience (first impression on a potential user).

ShubhadeepSadhukhan1993 commented 4 years ago

@iljah Thanks for your view on our paper. Please mention should we retain the paper content as it is or remove the sections as mentioned earlier. We will work on them accordingly. Presently, we have removed those sections from our repository already.

ShubhadeepSadhukhan1993 commented 4 years ago

@jedbrown Please mention, what should we follow? Thanking you

jedbrown commented 4 years ago

It's your discretion based on what you think a reader will need to know to assess whether your package is likely to meet their needs.

shashwat-bhattacharya commented 4 years ago

@jedbrown Thanks for your reply. We will go ahead with your suggestion of retaining the definition of structure functions and basic parallelization strategy. We will move the validation part to the project documentation. We are currently making these changes and will update you when done.

iljah commented 4 years ago

Sorry for long delay, that sounds good. I'll try to get this done this week.

iljah commented 4 years ago

@whedon generate pdf

whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

iljah commented 4 years ago

Current structure of pdf looks fine, two "extra" sections might provide useful background information for non-specialists. One small change is in order I think: the term strong scaling is used for describing scaling with constant work size I'd change "code exhibits strong scaling" to e.g. "code exhibits good scaling" or similar. Also, did you really use up to 1024 processors i.e. approx 512 nodes or 1024 cores and many fewer than 512 nodes? @ShubhadeepSadhukhan1993

ShubhadeepSadhukhan1993 commented 4 years ago

@iljah Thanks for your useful comments. We used fewer nodes for each run. For example, 1024 cores are achieved by using 64 nodes and 16 cores per node. We used 16 cores per node in every case.

iljah commented 4 years ago

Having trouble installing one dependency: https://github.com/anandogc/h5si/issues/1

shashwat-bhattacharya commented 4 years ago

@iljah Thanks for pointing out the issue. I just had a conversation with the developer of h5si. He will look into it and address the problem in the github page. From what I have seen in the link shared by you, the error message suggests that your c++ (CXX) compiler does not have mpi. Is it possible that you have mpi installed in your c compiler but not in your c++ compiler? Anyway, the h5si developer should be able to give you a better advice.
Thanks.

iljah commented 4 years ago

I have mpicxx and mpicc but h5si doesn't seem to be using them.

iljah commented 4 years ago

Found another issue with prerequisite h5si: https://github.com/anandogc/h5si/issues/2

cpgr commented 4 years ago

@jedbrown

I've am ready to finalise my review but cannot fill in the tick boxes, and it looks like my invite has expired. Can you please re-invite me.

Thanks!

jedbrown commented 4 years ago

@whedon re-invite @cpgr as reviewer

whedon commented 4 years ago

OK, the reviewer has been re-invited.

@cpgr please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations

cpgr commented 4 years ago

Thanks @jedbrown

iljah commented 4 years ago

@ShubhadeepSadhukhan1993 I don't see any community guidelines in README as required by checklist: 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

iljah commented 4 years ago

@ShubhadeepSadhukhan1993 Could you also please add bit of info to paper about other similar packages, as required by checklist? (State of the field: Do the authors describe how this software compares to other commonly-used packages?)

iljah commented 4 years ago

And changes I suggested in https://github.com/openjournals/joss-reviews/issues/2185#issuecomment-641971304 are still relevant. At least processors should be changed to cores.

iljah commented 4 years ago

@jedbrown does performance evaluation also include scalability? Test programs included in repository are only 2D so it might be difficult to evaluate scalability claims made in article. I suggested adding 3D test program in https://github.com/ShubhadeepSadhukhan1993/fastSF/issues/2

iljah commented 4 years ago

Based on 2D tests on my laptop the stated performance seems to check out in that it would take on the order of 1000 s to calculate a 1024^2 case if my laptop had 16 cores.

jedbrown commented 4 years ago

A 3D test problem seems appropriate. Performance evaluation is whatever is claimed. So if the package makes claims about scalability, it'd be reasonable to attempt to confirm that the claims are plausible (within reason; e.g., use what hardware you have handy and that two points on a scalability curve are roughly comparable to the claims). This is mostly about making sure that someone with time/resources could run a reproduction study and as a sanity check.

ShubhadeepSadhukhan1993 commented 4 years ago

@cpgr @iljah @jedbrown Thanks for your valuable comments and suggestions. We will come back with our answers to the raised questions and also implement the suggested changes.

iljah commented 4 years ago

@ShubhadeepSadhukhan1993 to me this looks finished except for community guidelines and state of field...

shashwat-bhattacharya commented 4 years ago

@ShubhadeepSadhukhan1993 I don't see any community guidelines in README as required by checklist: 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

Thanks @iljah for the suggestion. We have added a section "Contributions and bug reports" towards the end of the README.md file, in which we briefly explain to contribute and report bugs / issues, if any.

shashwat-bhattacharya commented 4 years ago

@ShubhadeepSadhukhan1993 Could you also please add bit of info to paper about other similar packages, as required by checklist? (State of the field: Do the authors describe how this software compares to other commonly-used packages?)

@iljah We thank you for the suggestion. To the best of our knowledge and belief, no other commercial or open-source packages for computing structure functions exist or are available at the moment. Currently, such codes are developed in-house and are not open to the general public. We have added the above statements in the section "Summary" of the revised paper.

We have talked to some researchers who work on structure functions, and their codes (again, they are not open to public) typically involve 6 nested for loops (for 3D fields). However, we employ vectorization and 3 loops (instead of 6) in our code; this makes our code approximately 20 times faster than the schemes involving 6 loops. We mention about this in the begining of section titled "Design of the code".

shashwat-bhattacharya commented 4 years ago

And changes I suggested in #2185 (comment) are still relevant. At least processors should be changed to cores.

Thanks for the suggestions. We have done the necessary modifications.

shashwat-bhattacharya commented 4 years ago

@jedbrown does performance evaluation also include scalability? Test programs included in repository are only 2D so it might be difficult to evaluate scalability claims made in article. I suggested adding 3D test program in ShubhadeepSadhukhan1993/fastSF#2

Based on the suggestions of @iljah and @jedbrown , we have added 3D test cases (velocity and scalar structure functions). Please refer to README.md for details.

Thanks for the suggestions.

shashwat-bhattacharya commented 4 years ago

@jedbrown @iljah @cpgr We thank you for a comprehensive review of our code. We have implemented your suggestions to the best of our ability. We will welcome further comments, if any. We hope that our work is now suitable for publication in JOSS.

jedbrown commented 4 years ago

@whedon generate pdf

whedon commented 4 years ago

:point_right: Check article proof :page_facing_up: :point_left:

iljah commented 4 years ago

Thanks @shashwat-bhattacharya for the changes. @jedbrown to me this looks good to go.

jedbrown commented 4 years ago

Thanks for your reviews and my apologies for my greatly delayed reply. I made some copy edits (see PR) and also encountered some further issues that I'd like you to consider.

shashwat-bhattacharya commented 4 years ago

Thanks @jedbrown for your suggestions. We will implement them and get back to you soon.

shashwat-bhattacharya commented 4 years ago

@jedbrown I would like to thank you again for your useful recommendations. We have implemented them to the best of our ability as follows:

We thank you again for these useful suggestions. They have definitely improved the code. I hope the paper is now suitable for publication. We will welcome further comments, if any.

labarba commented 4 years ago

hi 👋 – @jedbrown, it looks like the author is waiting for your assessment of their mods. Pop in and have a look!

ShubhadeepSadhukhan1993 commented 4 years ago

Hello @jedbrown, We have implemented your suggestions to the best of our ability. We are waiting for further course of action. Any further suggestions from you will be welcome. Thanking you.

shashwat-bhattacharya commented 4 years ago

Hi @jedbrown , we are awaiting your response. We are using this code for our subsequent work and thus it will be helpful if this paper is published soon. Please let us know if anything further needs to be done to the code or the manuscript such that it is suitable for publication in JOSS.

Kevin-Mattheus-Moerman commented 4 years ago

@jedbrown :point_up:

jedbrown commented 4 years ago

Thanks for your updates and sorry about my delinquency getting to this.

IMPORTANT: Please note the following:

  • The input files can have different names than the ones specified above, but it needs to be ensured that the hdf5 file name and the dataset name are the same (except that the dataset name does not have .h5 extension. The input file names need to be specified via command-line arguments (explained later).

@whedon generate pdf