openjournals / joss-reviews

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

[REVIEW]: shmem4py: OpenSHMEM for Python #5444

Closed editorialbot closed 1 year ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@mrogowski<!--end-author-handle-- (Marcin Rogowski) Repository: https://github.com/mpi4py/shmem4py Branch with paper.md (empty if default branch): joss Version: 1.0.0 Editor: !--editor-->@danielskatz<!--end-editor-- Reviewers: @greghbauer, @gonsie Archive: 10.5281/zenodo.8143862

Status

status

Status badge code:

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

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

@greghbauer & @gonsie, 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 @danielskatz 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 @gonsie

📝 Checklist for @greghbauer

editorialbot commented 1 year ago

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's md or bib files, type:

@editorialbot generate pdf
editorialbot commented 1 year ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.07 s (1120.0 files/s, 135661.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          36            981           1254           4297
C/C++ Header                    15            219             41           1316
Dockerfile                       8             44              6            204
TeX                              1             13              0            130
Markdown                         3             22              0             87
make                             5             19              7             81
INI                              2              8              0             70
Bourne Shell                     1             12              0             61
YAML                             2              6              1             60
reStructuredText                 2             85            284             41
C                                1             12             10             35
DOS Batch                        1              8              1             26
TOML                             1              0              0              7
-------------------------------------------------------------------------------
SUM:                            78           1429           1604           6415
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 1 year ago

Wordcount for paper.md is 706

editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1145/2020373.2020375 is OK
- 10.25080/Majora-7b98e3ed-013 is OK
- 10.1109/MCSE.2021.3083216 is OK
- 10.1109/TPDS.2022.3225481 is OK
- 10.1109/IPDPS.2015.35 is OK
- 10.1007/978-3-319-41321-1_15 is OK
- 10.1109/HiPC.2017.00037 is OK
- 10.1109/IPDPSW50202.2020.00104 is OK
- 10.1007/978-3-319-05215-1 is OK
- 10.1007/978-3-319-05215-1_2 is OK
- 10.1109/ICPP.2012.55 is OK

MISSING DOIs

- None

INVALID DOIs

- 10.5555/3291168.3291210 is INVALID
editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

danielskatz commented 1 year ago

@greghbauer and @gonsie - Thanks for agreeing to review this submission. This is the review thread for the paper. All of our communications will happen here from now on.

As you can see above, you each should use the command @editorialbot generate my checklist to create your review checklist. @editorialbot commands need to be the first thing in a new comment.

As you go over the submission, please check any items that you feel have been satisfied. There are also links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#5444 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for reviews to be completed within about 2-4 weeks. Please let me know if either of you require some more time. We can also use editorialbot (our bot) to set automatic reminders if you know you'll be away for a known period of time.

Please feel free to ping me (@danielskatz) if you have any questions/concerns.

gonsie commented 1 year ago

Review checklist for @gonsie

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

danielskatz commented 1 year ago

👋 @greghbauer - Can you generate your checklist, and ideally check off the first two items, just to make sure all the permissions here are working right?

danielskatz commented 1 year ago

👋 @gonsie - Are you doing ok on your review? Is anything blocking you?

danielskatz commented 1 year ago

👋 @greghbauer - Can you generate your checklist, and ideally check off the first two items, just to make sure all the permissions here are working right?

danielskatz commented 1 year ago

👋 @gonsie - Are you doing ok on your review? Is anything blocking you?

danielskatz commented 1 year ago

👋 @gonsie - Are you doing ok on your review? Is anything blocking you?

danielskatz commented 1 year ago

👋 @greghbauer - Can you generate your checklist, and ideally check off the first two items, just to make sure all the permissions here are working right?

greghbauer commented 1 year ago

Review checklist for @greghbauer

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

gonsie commented 1 year ago

@mrogowski

Seems like the Community Guidelines stuff is missing (I couldn't find any guidance on the documentation site, nor in the repo itself).

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

gonsie commented 1 year ago

All I have left to do is test the functionality. I hope to get to that within the next week or so.

greghbauer commented 1 year ago

After several false starts, I was able to complete the functionality testing, using Open MPI OpenSHMEM on NCSA Delta with anaconda, with SLURM srun replacing oshrun. I was able to do some of the tests across more than one node.

The install instructions at https://shmem4py.readthedocs.io/en/latest/installation.html state "Once a working OpenSHMEM implementation is installed" trivializes the task.

The install instructions at https://github.com/mpi4py/shmem4py/blob/master/INSTALL.rst are more complete but assume root level capabilities with the user of sudo apt-get.

I did not try to use the docker container docker build scripts. On HPC sites docker is typically not possible. Would sif build scripts be possible?

danielskatz commented 1 year ago

@gonsie and @greghbauer - thanks for your comments and concerns. Once @mrogowski has addressed them, I hope we will see comments here from him.

mrogowski commented 1 year ago

Thank you for your comments! I will make necessary changes and respond within a few days.

mrogowski commented 1 year ago

We have added a CONTRIBUTING.md file in the root directory of the repository. We hope it clarifies how to seek support, report issues and contribute to the software. We used a template recommended by other JOSS reviewers and tailored it to our application. Thanks for pointing it out, @gonsie @greghbauer!

danielskatz commented 1 year ago

@gonsie & @greghbauer - is the contributing part now ok?

@gonsie - I note you haven't checked off any of the functionality part of your list - Is something blocking this part for you?

@greghbauer - Re your comments above, are any of these issues that you think should block acceptance of this work? Or are they more suggestions for the future?

greghbauer commented 1 year ago

Hi. I am ok with the changes. Greg

On Mon, Jul 3, 2023 at 10:31 AM Daniel S. Katz @.***> wrote:

@gonsie https://github.com/gonsie & @greghbauer https://github.com/greghbauer - is the contributing part now ok?

@gonsie https://github.com/gonsie - I note you haven't checked off any of the functionality part of your list - Is something blocking this part for you?

@greghbauer https://github.com/greghbauer - Re your comments above https://github.com/openjournals/joss-reviews/issues/5444#issuecomment-1610628425, are any of these issues that you think should block acceptance of this work? Or are they more suggestions for the future?

— Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/5444#issuecomment-1618670862, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQES7IYBRGCWXOZWSDNUESDXOLQTLANCNFSM6AAAAAAXWDBLOM . You are receiving this because you were mentioned.Message ID: @.***>

danielskatz commented 1 year ago

@greghbauer - can you check off your remaining item then?

danielskatz commented 1 year ago

👋 @gonsie - is the contributing part now ok?

And I note you haven't checked off any of the functionality part of your list - Is something blocking this part for you?

mrogowski commented 1 year ago

@greghbauer thanks for approving all the items and the latest changes! I do not intend to ignore your comment on installation instructions. I will modify the text assuming configured MPI (clusters) or root access (workstations). I think those are fair assumptions unlike "a working OpenSHMEM implementation". 🙂

gonsie commented 1 year ago

@mrogowski I would greatly appreciate more detailed instructions. I am having trouble getting OpenSHMEM set up. Thanks.

mrogowski commented 1 year ago

Thanks for the feedback. Which instructions are you following and what OS are you on? Have you tried Docker containers, or perhaps there are more details needed on how to use those?

gonsie commented 1 year ago

I'm running on a Mac... no experience with Docker. I also have access to a RedHat x86_64 cluster, but no root access.

mrogowski commented 1 year ago

Let me make the installation instructions more comprehensive by including your setup and get back to you.

mrogowski commented 1 year ago

Could you please try to follow the steps below on your Mac? I just set it up on my machine and it works fine, even though I have not tested on a Mac before. The first step installs a few packages with brew.

  brew install gcc autoconf automake libtool mpich
  git clone https://github.com/pmodels/oshmpi --recurse-submodules
  cd oshmpi
  ./autogen.sh
  mkdir build && cd build
  ../configure CC=/opt/homebrew/bin/mpicc CXX=/opt/homebrew/bin/mpicxx --prefix=/Users/XXXXXXXX/SHMEM/install-oshmpi
  make -j
  make install
  export PATH=/Users/XXXXXXXX/SHMEM/install-oshmpi/bin/:$PATH
  export FI_PROVIDER=tcp
  git clone https://github.com/mpi4py/shmem4py/
  cd shmem4py
  python -m pip install .
  cd demo
  mpiexec -n 3 python hello.py
  mpiexec -n 8 python race_winner.py
mrogowski commented 1 year ago

@danielskatz, thanks for persistently following up with all of us! It looks like all the items on both checklists are checked off now. I am yet to modify the installation instructions to reflect @greghbauer's comments and @gonsie's experience on a Mac. What other steps should we plan for regarding the release and publication?

danielskatz commented 1 year ago

@gonsie - just to confirm, you are ok with this being accepted now?

gonsie commented 1 year ago

Yes, I think the Mac install instructions would be helpful, but I'm happy to accept this as is. Thank you.

danielskatz commented 1 year ago

@mrogowski - At this point could you:

I can then move forward with recommending acceptance of the submission, which will include me generating a draft and then proofreading it

mrogowski commented 1 year ago

We have published a release with a 1.0.0 tag. It is archived in Zenodo, and the DOI is 10.5281/zenodo.8143862.

danielskatz commented 1 year ago

@editorialbot set 10.5281/zenodo.8143862 as archive

editorialbot commented 1 year ago

Done! archive is now 10.5281/zenodo.8143862

danielskatz commented 1 year ago

@editorialbot set 1.0.0 as version

editorialbot commented 1 year ago

Done! version is now 1.0.0

danielskatz commented 1 year ago

@editorialbot recommend-accept

I will proofread this, and then talk about next steps

editorialbot commented 1 year ago
Attempting dry run of processing paper acceptance...
editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1145/2020373.2020375 is OK
- 10.25080/Majora-7b98e3ed-013 is OK
- 10.1109/MCSE.2021.3083216 is OK
- 10.1109/TPDS.2022.3225481 is OK
- 10.1109/IPDPS.2015.35 is OK
- 10.1007/978-3-319-41321-1_15 is OK
- 10.1109/HiPC.2017.00037 is OK
- 10.1109/IPDPSW50202.2020.00104 is OK
- 10.1007/978-3-319-05215-1 is OK
- 10.1007/978-3-319-05215-1_2 is OK
- 10.1109/ICPP.2012.55 is OK

MISSING DOIs

- None

INVALID DOIs

- 10.5555/3291168.3291210 is INVALID
editorialbot commented 1 year ago

:wave: @openjournals/csism-eics, this paper is ready to be accepted and published.

Check final proof :point_right::page_facing_up: Download article

If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/4407, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

danielskatz commented 1 year ago

I'm trying to figure out what's going on with the bad DOI before we move forward - I've contacted Crossref and ACM about it.

danielskatz commented 1 year ago

The paper otherwise looks good, and we can proceed and acceptance and publication once the DOI issue is fixed, and I'll let you know what I find out about it.

mrogowski commented 1 year ago

Thank you. I also reported it using the form on https://doi.org, but I did not hear back yet.

danielskatz commented 1 year ago

Slight DOI progress - it turns out that the paper is a USENIX paper that was published through the ACM DL, so ACM is contacting USENIX now to see if they can fix this, as they are supposed to own the DOI.

danielskatz commented 1 year ago

It's not clear to me where the DOI for this came from, as the original from USENIX (https://www.usenix.org/conference/osdi18/presentation/alquraan) doesn't list a DOI. If this isn't resolve fairly quickly, the best option would probably be to remove the DOI from the bibtex entry and to add this URL instead, but let's see what USENIX says first.

danielskatz commented 1 year ago

@mrogowski - Let's go ahead and proceed as above. Can you remove the DOI that doesn't work and add the URL?

mrogowski commented 1 year ago

I just updated the bibtex entry to that listed on https://www.usenix.org/conference/osdi18/presentation/moritz, including the URL. Thanks for following up on that.