Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python vs C #1618

Open
rhc54 opened this issue Nov 23, 2022 · 3 comments
Open

Python vs C #1618

rhc54 opened this issue Nov 23, 2022 · 3 comments

Comments

@rhc54
Copy link

rhc54 commented Nov 23, 2022

I'm starting work on a new "elastic" HPC scheduler and am trying to decide on the language to use. I'm equally happy to write it in Python or C. Setting aside the pros/cons of the two languages, my question here regards the packaging of the end result - my sponsor very much wants to see this project contributed to OpenHPC when appropriate.

You have a couple of my C-based packages already in your distribution, so I know there is no problem integrating packages based on that language. One of those packages (PMIx) has Python bindings, but I note that these have never been enabled or distributed here - I'm not sure why (lack of interest, integration obstacles, ...).

My question therefore is: are C-based packages easier to absorb and distribute? Is there some special "sauce" I should use if I want to go the Python route that would make it easier for you to distribute it? Could you perhaps point me to an example or two of a Python package that is already included and might serve as a guide for my work?

Thanks in advance
Ralph

@adrianreber
Copy link
Member

You have a couple of my C-based packages already in your distribution, so I know there is no problem integrating packages based on that language. One of those packages (PMIx) has Python bindings, but I note that these have never been enabled or distributed here - I'm not sure why (lack of interest, integration obstacles, ...).

Not completely sure about the history here, but I would assume lack of interest. No one was asking for it.

My question therefore is: are C-based packages easier to absorb and distribute? Is there some special "sauce" I should use if I want to go the Python route that would make it easier for you to distribute it? Could you perhaps point me to an example or two of a Python package that is already included and might serve as a guide for my work?

C or Python makes no real difference to us. Packaging C application is easy but the same is true for Python applications.

If a Python application is distributed in the Python typical way packaging gets very easy as there are a couple of RPM build macros which do most of the steps for the packaging.

We currently have one package (EasyBuild) which does not yet use the typical Python packaging setup but we are trying to change that (#1597).

Examples of other Python code:

@jcsiadal
Copy link
Contributor

jcsiadal commented Dec 5, 2022

I think Python would be fine, as long as it's compatible with the default Python3 included with both Rocky and OpenSUSE versions we support. In other words, stay away from any feature or module that's specific to particular subversion of Python3.

Should we enable PMIx Python bindings? The package is long due for an update to include PRRTE.

Copy link

github-actions bot commented Aug 1, 2024

A friendly reminder that this issue had no activity for 30 days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants