Hi all,
Recently I looked into wrapping MadGraph and ship it as a `_jll`, it turns out MadGraph operates in a hacky way:
- it's 50% a Python package
- more of an application than a library (you don't have Fortran output .so to wrap)
- most importantly, when a user uses it, it first generates Fortran source code with Python and compile it with gcc-fortran.
So basically it's JAOT(just ahead of time) like Julia but not Julia. Now there seems to be a next-gen effort:
https://indico.cern.ch/event/1207838/#2-madgraph4gpu-project focusing on making it SIMD (I'm surprised it doesn't do that already) and GPU capability, but seeing they're going to do this in C++, I can imagine it will be a lot of effort.
I'm wondering if Pere has any insights on this, regarding what's the extend of this re-writing and or if they considered alternative technology.
One last remark I have is that I think* the way most people interact with MadGraph is actually backend-agnostic, they just use the command line interface. So it sounds like a perfect Julia application for both technical (JIT, CPU intense, GPU support across vendor), and user (the fact that it's not usually used as a library) perspective.
Best,
Jerry Ling