Closed whedon closed 2 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @dalcinl, @stevengj 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/JuliaCon/proceedings-review) 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:
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
Software report (experimental):
github.com/AlDanial/cloc v 1.88 T=0.15 s (627.5 files/s, 56726.9 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Julia 68 1380 578 5510
Markdown 16 144 0 443
YAML 8 73 7 366
SVG 1 0 0 80
Bourne Shell 1 5 20 39
TOML 2 4 0 30
-------------------------------------------------------------------------------
SUM: 96 1606 605 6468
-------------------------------------------------------------------------------
Statistical information for the repository 'fd5280ce7d51695c8975f415' was
gathered on 2021/02/07.
The following historical commit information, by author, was found:
Author Commits Insertions Deletions % of changes
Bart Janssens 5 39 2 6.39
Erik Schnetter 5 101 90 29.75
Filippo Vicentini 1 4 0 0.62
Jake Bolewski 1 41 41 12.77
Jared Crean 2 8 0 1.25
Joel Mason 1 2 0 0.31
Katie Hyatt 1 8 0 1.25
Lucas C Wilcox 1 54 0 8.41
Sam 1 4 0 0.62
Simon Byrne 2 0 138 21.50
Steven G. Johnson 2 51 49 15.58
Thomas Bolemann 3 9 1 1.56
Below are the number of rows from each author that have survived and are still
intact in the current revision:
Author Rows Stability Age % in comments
PDF failed to compile for issue #68 with the following error:
Can't find any papers to compile :-(
@whedon generate pdf from branch paper
Attempting PDF compilation from custom branch paper. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
:wave: @dalcinl, please update us on how your review is going (this is an automated reminder).
:wave: @stevengj, please update us on how your review is going (this is an automated reminder).
A few minor comments/requests for the article:
Section 3.2, about MPI.jl
automatically building and commiting datatypes. What about user-defined datatypes? Are those supported? Can those be used in communication calls?. Any plan to support that? I think this should be clarified in the text, even if just with a short sentence. MPI.jl
's datatype automatism looks even better than mpi4py
's, but support for a more low level, MPI-native way could also be of use for experienced users and library developers.
Page 2, section 3.4, last sentence in right column before Sec. 4 starts: how to deal with binaries which depend on MPI. I'm not sure what this really means. Are you talking about interoperating with shared libraries containing MPI-based parallel algorithms? I would suggest a slight reword to make meaning of this sentence clearer.
Page 3, left column, second paragraph, there is a missing blank space between MPI.send
and the word "and".
Page 3, left column, second paragraph. You blame Julia's GC for the slowdown with medium message sizes. Did you try to bracket the communication+timing with gc_disable()
/gc_enable()
to confirm, if that is ever possible? BTW, could you clarify what Python and NumPy versions were used in these tests? FYI, mpi4py branch master, to be released soon, now uses the highest available pickle protocol to communicate generic objects. Under Python 3.8, that would be pickle protocol version 5, which introduces important optimizations for buffer-like objects like NumPy arrays.
Some of the references do not have a DOI.
Perhaps you should add a disclaimer to the paper (similar to the one you have in your docs), that the project does not support the full feature set of the MPI standard, together with a promise that they this will be addressed in the future?
* Some of the references do not have a DOI.
@crstnbr I've included the DOIs in the bib file: any idea why they don't appear?
Some comments:
• why is mpi4py faster for large generic objects? Is it Python pickle vs Julia Serialization module?
• An important part of MPI is non-blocking communications, but asynchonous I/O is usually handled in julia with tasks or "green threads". Are there any prospects to combine these? (recently asked on discourse)
• MPI persistent communications are not supported? any plans?
• In section 3.2 what about non-Array containers supporting stride and pointer? Should there be discussion of the MPI.Buffer and MPI.UBuffer types and the design decisions here?
• dynamic process management in MPI-2 is not supported? any plans?
• one-sided communications seem to be supported in MPI.jl but not are mentioned in the paper?
• parallel I/O support? is it possible to use MPI.jl with parallel HDF5 and other libraries?
• The MPI.jl repo was started in 2012, and is one of the oldest Julia packages. What have been the major milestones and changes over the last 8 years? Any design mistakes or lessons learned?
typo: "arbirary" in sec. 3.1
@stevengj Out of curiosity, could you provide me with a link to that discussion related to combining non-blocking MPI and green threads?
I believe he is referring to this one: https://discourse.julialang.org/t/how-to-combine-mpi-non-blocking-isend-irecv-and-julia-tasks/52524
@whedon generate pdf from branch paper
Attempting PDF compilation from custom branch paper. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@whedon generate pdf from branch paper
Attempting PDF compilation from custom branch paper. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Thank you @dalcinl and @stevengj for the feedback. We have addressed the comments as follows:
- Section 3.2, about
MPI.jl
automatically building and commiting datatypes. What about user-defined datatypes? Are those supported? Can those be used in communication calls?. Any plan to support that? I think this should be clarified in the text, even if just with a short sentence.MPI.jl
's datatype automatism looks even better thanmpi4py
's, but support for a more low level, MPI-native way could also be of use for experienced users and library developers.
Yes, this available, we have added a sentence to this effect. (note it is now section 3.3)
- Page 2, section 3.4, last sentence in right column before Sec. 4 starts: how to deal with binaries which depend on MPI. I'm not sure what this really means. Are you talking about interoperating with shared libraries containing MPI-based parallel algorithms? I would suggest a slight reword to make meaning of this sentence clearer.
Yes, that is exactly the problem. We have expanded the text here, and given examples (HDF5 and PETSc).
- Page 3, left column, second paragraph, there is a missing blank space between
MPI.send
and the word "and".
Fixed.
- Page 3, left column, second paragraph. You blame Julia's GC for the slowdown with medium message sizes. Did you try to bracket the communication+timing with
gc_disable()
/gc_enable()
to confirm, if that is ever possible? BTW, could you clarify what Python and NumPy versions were used in these tests? FYI, mpi4py branch master, to be released soon, now uses the highest available pickle protocol to communicate generic objects. Under Python 3.8, that would be pickle protocol version 5, which introduces important optimizations for buffer-like objects like NumPy arrays.
We did try disabling the GC, and it didn't have much effect. Instead we benchmarked the serialization protocols directly, which do appear to explain the main differences. We have clarified this and added the version numbers as well.
- Some of the references do not have a DOI.
This appears to be a problem with the style sheet.
- Perhaps you should add a disclaimer to the paper (similar to the one you have in your docs), that the project does not support the full feature set of the MPI standard, together with a promise that they this will be addressed in the future?
We have tried to address this in the new section 3.1.
• why is mpi4py faster for large generic objects? Is it Python pickle vs Julia Serialization module?
This does appear to be the case. We have added comments to this effect in section 4.1.
• An important part of MPI is non-blocking communications, but asynchonous I/O is usually handled in julia with tasks or "green threads". Are there any prospects to combine these? (recently asked on discourse)
We have added section 3.6 to address this.
• MPI persistent communications are not supported? any plans?
They are not currently supported, we have mentioned it in section 3.1.
• In section 3.2 what about non-Array containers supporting stride and pointer? Should there be discussion of the MPI.Buffer and MPI.UBuffer types and the design decisions here?
UBuffer
was added since this paper was originally written. We have added it to (now) section 3.3.
• dynamic process management in MPI-2 is not supported? any plans?
There is some support (mentioned in new section 3.1), but unfortunately their utility is hampered by the requirement to use within the MPI launcher (discussed at end of the new section 3.6).
• one-sided communications seem to be supported in MPI.jl but not are mentioned in the paper?
It is mentioned in the new section 3.1.
• parallel I/O support? is it possible to use MPI.jl with parallel HDF5 and other libraries?
I/O support is mentioned in new section 3.1, added discussion of integration with HDF5 in section 3.5.
• The MPI.jl repo was started in 2012, and is one of the oldest Julia packages. What have been the major milestones and changes over the last 8 years? Any design mistakes or lessons learned?
We added a brief history in new section 1.1
In addition to the above changes, we added some context to the pooled variance example (section 4.3).
@whedon generate pdf from branch paper
Attempting PDF compilation from custom branch paper. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
I also added the doi links to the bibliography
@simonbyrne Great job, your clarifications improved the text considerably. A few minor issues remains:
@crstnbr After Simon fixes these minor typos above, I'm done with this review, I consider the paper ready to go. Is this confirmation enough, or should I somehow tell whedon about it?
@dalcinl That should be confirmation enough. Thank you for your review!
@stevengj, can you take a look at the updated article proof?
@whedon generate pdf from branch paper
Attempting PDF compilation from custom branch paper. Reticulating splines etc...
Thanks @dalcinl, I have made the changes, and fixed a few other typos I found.
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@stevengj, to get this over the finish line it'd be great if you could take a (final) look at the updated article proof and finish your review / give your recommendation. Thanks in advance!
@whedon remind @stevengj in 2 weeks
Reminder set for @stevengj in 2 weeks
:wave: @stevengj, please update us on how your review is going (this is an automated reminder).
@stevengj, can I ask you once more to take a final look at this and give your recommendation? Would be great to finish this before JuliaCon 2021.
LGTM.
@whedon commands
Here are some things you can ask me to do:
# List all of Whedon's capabilities
@whedon commands
# Assign a GitHub user as the sole reviewer of this submission
@whedon assign @username as reviewer
# Add a GitHub user to the reviewers of this submission
@whedon add @username as reviewer
# Re-invite a reviewer (if they can't update checklists)
@whedon re-invite @username as reviewer
# Remove a GitHub user from the reviewers of this submission
@whedon remove @username as reviewer
# List of editor GitHub usernames
@whedon list editors
# List of reviewers together with programming language preferences and domain expertise
@whedon list reviewers
# Change editorial assignment
@whedon assign @username as editor
# Set the software archive DOI at the top of the issue e.g.
@whedon set 10.0000/zenodo.00000 as archive
# Set the software version at the top of the issue e.g.
@whedon set v1.0.1 as version
# Open the review issue
@whedon start review
EDITORIAL TASKS
# All commands can be run on a non-default branch, to do this pass a custom
# branch name by following the command with `from branch custom-branch-name`.
# For example:
# Compile the paper
@whedon generate pdf
# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name
# Remind an author or reviewer to return to a review after a
# certain period of time (supported units days and weeks)
@whedon remind @reviewer in 2 weeks
# Ask Whedon to do a dry run of accepting the paper and depositing with Crossref
@whedon recommend-accept
# Ask Whedon to check the references for missing DOIs
@whedon check references
# Ask Whedon to check repository statistics for the submitted software
@whedon check repository
EiC TASKS
# Invite an editor to edit a submission (sending them an email)
@whedon invite @editor as editor
# Reject a paper
@whedon reject
# Withdraw a paper
@whedon withdraw
# Ask Whedon to actually accept the paper and deposit with Crossref
@whedon accept deposit=true
@whedon check references
@simonbyrne, can you please archive the current state of MPI.jl using Zenodo and post the associated DOI here (see https://joss.readthedocs.io/en/latest/editing.html#after-reviewers-recommend-acceptance).
@whedon set 10.5281/zenodo.5063032 as archive
I'm sorry @simonbyrne, I'm afraid I can't do that. That's something only editors are allowed to do.
@crstnbr zenodo doi is here: https://doi.org/10.5281/zenodo.5063032
@whedon set 10.5281/zenodo.5063032 as archive
OK. 10.5281/zenodo.5063032 is the archive.
@whedon accept
To recommend a paper to be accepted use @whedon recommend-accept
@whedon recommend-accept
Attempting dry run of processing paper acceptance...
PDF failed to compile for issue #68 with the following error:
Can't find any papers to compile :-(
Submitting author: !--author-handle-->@simonbyrne<!--end-author-handle-- (Simon Byrne) Repository: https://github.com/JuliaParallel/MPI.jl Branch with paper.md (empty if default branch): Version: Editor: !--editor-->@crstnbr<!--end-editor-- Reviewers: @dalcinl, @stevengj Archive:
Status
Status badge code:
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
@dalcinl & @stevengj, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @crstnbr 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 ✨
Review checklist for @dalcinl
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Paper format
paper.tex
file include a list of authors with their affiliations?Content
[x] Context: is the scientific context motivating the work correctly presented?
[x] Methodology: is the approach taken in the work justified, presented with enough details and reference to reproduce it?
[x] Results: are the results presented and compared to approaches with similar goals?
Review checklist for @stevengj
Conflict of interest
[x] As the reviewer I confirm that I have read the JuliaCon conflict of interest policy and that there are no conflicts of interest for me to review this work.
Code of Conduct
General checks
Functionality
Documentation
Paper format
paper.tex
file include a list of authors with their affiliations?Content