llnl / llnl/mpibind

Distribute Python Bindings

Open
#19 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
53
Forks
11
Avg merge
1h
Merged PRs (30d)
3

Description

It would be awesome if users could install and use the Python bindings.

### Python setuptools
This was my first choice because I was familiar with using pip to configure python virtual environments. Unfortunately, when using wheel to build a whl distribution the C extension module that relies on libmpibind does not get its rpath configured correctly. setuptools does not use libtools to invoke the linker so the resulting extension module behaves differently compared to the extension module generated by our autotools setup.

Here are some steps that we could take in this direction:
- explore the possibility of linking with the static libmpibind.a
- It seems like the creators of setuptools are aware of this issue and their [auditwheel](https://github.com/pypa/auditwheel) tool provides functionality for injecting a shared object into the wheel distribution. The auditwheel package is not installed on lc systems so that would require some addtional configuration

### Spack
I have not looked into this too much yet, but it seems like it could be a good alternative to setuptools.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by investigating the Python setuptools and wheel path described in the issue, including the libmpibind rpath problem and auditwheel availability on LC systems. Compare this with the suggested static linking and Spack alternatives. Done means users can install and use the Python bindings through a documented distribution method.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, python
Domain
build-system, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.