NWChemEx / NWChemEx/ParallelZone

Python API for 1.0

Open
#75 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
0
Forks
1
Avg merge
40m
Merged PRs (30d)
3

Description

A 1.0 of ParallelZone requires the Python API to be finalized, decently performant, and unit tested. To that end I started PR: https://github.com/NWChemEx-Project/ParallelZone/pull/74. The aforementioned PR currently showcases several of the more general issues found on the Python API project board.

I specifically want to call out (sub bullets refer back to the #74):

  • Import time (more general issue)
    • The serial Python unit tests barely do anything and they take over 5x longer than the C++ tests
    • I haven't profiled, but I'm guessing this is import overhead, this issue should be updated if it's not
      • This is based on the times from Python unittest times being similar to the C++ times, but the final wall time is one to two orders of magnitude slower.
  • MPI overhead (more general issue)
    • The MPI overhead is visible, but admittedly not too appreciable at this point (about half a second; C++ unit tests saw half that). It's possible that fleshing out more unit tests may add to to the overhead, or that we can ignore the overhead for ParallelZone. More profiling should be done.
  • Import syntax (more general issue)
    • A 1.0 requires us to finalize the API, so while a minor annoyance, this is critical for a release
  • Auto-generated __init__.py file (more general issue)
    • Same as above data point
  • Unit tests of Python bindings of exposed C++
  • Documentation of Python API.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with PR #74 and the Python API project board, then review the listed concerns: import time, import syntax, generated init.py, Python binding unit tests, and documentation. The issue is complete when the API is finalized, performance is acceptable, the bindings are tested, and the Python API is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
api, hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.