Skip to content
New issue

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

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

Already on GitHub? # to your account

Madevent integration: production mode for user, developer mode for performance tests (madevent script rather than symlink?) #693

Open
valassi opened this issue Jun 12, 2023 · 1 comment
Assignees

Comments

@valassi
Copy link
Member

valassi commented Jun 12, 2023

Hi @oliviermattelaer @roiser this is a placeholder for later explaining the design ideas I am following in the integration of madevent.

Essentially we have two use cases and we need two modes: a production mode for users, a developer mode for performance tests.

For the production mode, as suggested by @oliviermattelaer, I am sticking as much as possible to the current Madgraph user interfaces and internal tools. In particular, the use of runcards, the rebuilding when runcards are modified, etc. (Olivier I hope that sounds good?). One notable example is also that I have removed the two additional parameters in the input file to madevent (#658) in MR #688.

However I also think we need to be able to use a developer mode, to do performance testing, vary a few internal parameters etc. I have hidden (or I am hiding and am going to hide) these into internal hooks that should not be used by normal users. For the moment I am using a few environment variables (eg the bridge mode and vecsize_used): actually these hooks may even be removed completely at some point, they may have served their purpose. One important part of this developer mode that I need to still implement is the "build many backends once, then test them all in a row without rebuilding" (extensing much further the switch in #674). This may be a fourth cudacpp_backend target, for instance where "madevent" is not an executable but a shell script that acts as a dispatcher. Whatever... I will think about it later. Maybe not even completely needed. For the moment I am focusing on the production mode, as close as possible to the original.

Ah one detail: while I removed vecsize_used from the runcards (because the point of this was exclusively that of being a runtime parameter without rebuilding), I am thinking of adding vecsize_memmax to the runcard. This is really something the runcard is about: your change that, and you force a rebuild (vecsize_memmax is a build time parameter). This is something also for production users. Note that the default of vecsize_memmax now is determined at generation time (output madevent .. --vector_size=xxx)... but I think it makes sense to add that to the runcards. [PS edited: yes, this is exactly what Olivier had suggested here https://github.com/oliviermattelaer/mg5amc_test/issues/9]

@valassi valassi self-assigned this Jun 12, 2023
@valassi valassi changed the title Madevent integration: production mode for user, developer mode for performance tests Madevent integration: production mode for user, developer mode for performance tests (madevent script rather than symlink?) Aug 27, 2024
@valassi
Copy link
Member Author

valassi commented Aug 27, 2024

I mentioned madevent as a script explicitly in the title. This is related to

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

No branches or pull requests

1 participant