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

Greetings #11

Open
HDembinski opened this issue Jan 25, 2023 · 7 comments
Open

Greetings #11

HDembinski opened this issue Jan 25, 2023 · 7 comments

Comments

@HDembinski
Copy link

Hi Harald (if that's your name),

I discovered your package because I need to write a simple simulation in Geant4. I see that the version number of this project is very low and you don't support OpenGL visualization currently, so I won't be able to use it, but you seem to have a lot of stuff going that looks very promising. You are already building wheels for all platforms and you have a design document. You know about the finer points of ownership and how to integrate those in pybind11.

I maintain several HEP libraries that use pybind11, e.g. pyhepmc and iminuit, which are part of the Scikit-HEP project. Is this a hobby project or are you interested in building this into a professional package? If the answer is yes to the latter, I could nominate you for inclusion into the Scikit-HEP project, once this project has become a bit more mature.

Best regards,
Hans

@drbenmorgan
Copy link
Contributor

FWIW, Geant4 itself is also looking towards how to evolve/support Python bindings as discussed here: https://indico.cern.ch/event/1156193/contributions/5056677/. There's a clear user requirement/demand, so if geant4_pybind could be, or form the basis of, a kernel for a broader based community project/effort that would be great! As noted in that presentation, the collaboration has limited FTE to contribute/develop, but we're happy to advertise, take feedback on needs from the C++ interface etc to ensure binding is made as easy as possible.

I think we'd also be happy to include/host it as a project on the Geant4 org here if that were wanted/preferred as things develop - but that's of course up to you @HaarigerHarald!

@HDembinski
Copy link
Author

@drbenmorgan Great to see that you are supporting contributions from the community.

@HaarigerHarald
Copy link
Owner

HaarigerHarald commented Jan 25, 2023

Hi @HDembinski and @drbenmorgan,

I’m happy that there is interest in this project and people willing to contribute since the time I’m able to devote to this project is a bit limited currently, as I’m doing a PhD in firmware development at CERN. So having multiple people maintaining it is definitely better. If you want, I can transfer ownership of this project to either the Geant4 organization or the Scikit-hep organization, but imho the Geant4 organization is probably more suited for it.

For the beginning I could also add you as collaborators here.

Cheers,
Benjamin

@drbenmorgan
Copy link
Contributor

In terms of a final GitHub "home" I think it might be good to gauge community interest and maybe a set of features you feel are needed to achieve a "0.1.0 production" version (if any?)? I'm happy to contribute, but don't feel I should be a collaborator yet as I don't have sufficient Python/pybind knowledge!

Just to note, the HEP Software Foundation's Detector Simulation Working Group (NB: I finished my convenorship in December, but am still in contact) is thinking about a "Python in/for Detector Simulation" meeting jointly with the PyHEP WG. Would you be interested in presenting geant4_pybind at such a meeting as/when it happens? These are very informal and intended to advertise useful packages/tools and link people up to share/contribute, so could be a useful forum for gauging interest/finding contributors (and to showcase a great bit of work!). Let me know what you think.

As you're at CERN, if you haven't already, also feel free to reach out to the Geant4 team there with any questions/feedback/requirements!

@HaarigerHarald
Copy link
Owner

I feel like the main missing part is tests for what's currently bound to python. The stuff used in the basic examples is tested, since they are ported to python and the results match the C++ implementation, however there are a lot of classes I've bound that weren't tested in a similar way. Do they probably work just fine? Yes. But one can't be absolutely sure and given that this might be used for medical purposes I'm hesitant to call it "stable". This mainly where I hope people would contribute and port as many of the C++ examples to python as possible.

By doing that we could also get a feel of which maybe important classes are still need to be bound to python.

Further down the road one could also think about multi threading, due to the single threaded nature of the python interpreter the extensive callbacks into python together with the locking mechanisms required make multi threaded run managers actually slower than their single threaded counterparts. Maybe here someone could come up with an idea that limits the number of callbacks into python, idk.

Sure, I could give a very small presentation at one of these meetings.

Cheers,
Benjamin

@HDembinski
Copy link
Author

But one can't be absolutely sure and given that this might be used for medical purposes I'm hesitant to call it "stable".

Ideally, one would port the C++ test suite to Python, if a C++ test suite exists.

@drbenmorgan
Copy link
Contributor

Sorry for reviving this, but I've had some recent discussion/questions within Geant4 on interest in Python usage from a few different areas. I've made them aware of this project, but I'll also be speaking to them at a workshop in a few weeks time. I'll feedback what's been mentioned in this thread on areas for contribution (e.g. porting tests/validations to Python), but let me know if there's anything else you want me to mention.

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

No branches or pull requests

3 participants