Comment 10 for bug 1657615

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote : Re: [Bug 1657615] Re: Configuration writing to a read-only file system in 2.5.1

Hi Zach,

> I don't love the idea of picking at random a process to run;

Our code is actually designed at multiple place to configure itself at the time of the first process/loading of the code.
Such behaviour is actually especially useful when combine with the auto-update feature of MG5aMC (feature that you do not use).
This is perfectly fine in general but in the case of filesystem without write disk access since the code can not configure itself in that case.

This force you/us to find some work-around from each of the auto-configure step in order to have those working with your setup. (Copy-file, modifying configuration file,…)
I think that running one LO and one NLO process (you do not need to run them, just to “output” them) is actually the best way to handle such difficulty in the long term.
But this is obviously your call if you prefer to catch those problems one by one at each new release.

By the way, do you use the script compile.py? If yes, one correct solution would be that I run one LO and NLO generation from that script (and then clean the associate output obviously).

> Could you confirm that
> these are the right ones to cover most LO and NLO use cases?
> install SysCalc Golem95 PJFry QCDLoop maddm collier ninja oneloop

I do not know which of those library " Golem95 PJFry QCDLoop collier ninja oneloop” are compatible with your “set dependencies “ options.
Valentin will give more details on that.

Concerning SysCalc, we have now an internal python module handling the same functionalities (and more like you can change the dynamical scale definition).
Since the user support for SysCalc is not that great, I would suggest to use that one instead. It only requires to have lhapdf6 with python integration activated.

Additionally, Cuttools and iregi needs to be compile (we do not have any install for such tools which are automatically compiled when you “output” your first process with loop matrix-element.

> I suppose the first point that you raised indicates that the default
> path in the config file points to a path that doesn't exist.

Correct that path point to the default position where that program is expected to be installed.
In most of the case this is therefore not valid

> Why
> wouldn't the default be set to none, and only if the user chooses to
> install one of these externals would the default config card be changed
> to use that location?

Actually we use the fact that the “ninja” path is not valid to trigger the question on which reduction tools.
If the user specify that he did not want to install ninja then this path is set to None such that we do not ask the question again.

I can obviously prevent the asking of such question if I’m not in a write system. But in this context this does not sounds a good idea.

Cheers,

Olivier

> On 18 Feb 2017, at 04:40, Zachary Marshall <email address hidden> wrote:
>
> Hi Olivier,
>
> I don't love the idea of picking at random a process to run; I'd rather
> actually run the install commands if possible. Could you confirm that
> these are the right ones to cover most LO and NLO use cases?
>
> install SysCalc Golem95 PJFry QCDLoop maddm collier ninja oneloop
>
> I suppose the first point that you raised indicates that the default
> path in the config file points to a path that doesn't exist. Why
> wouldn't the default be set to none, and only if the user chooses to
> install one of these externals would the default config card be changed
> to use that location? If the user is installing an external then we
> know read/write is true, so it's safe to update the config card.
>
> Thanks again,
> Zach
>
> --
> You received this bug notification because you are subscribed to
> MadGraph5_aMC@NLO.
> https://bugs.launchpad.net/bugs/1657615
>
> Title:
> Configuration writing to a read-only file system in 2.5.1
>
> Status in MadGraph5_aMC@NLO:
> New
>
> Bug description:
> Hello,
>
> In 2.5.1, we can run:
>
> $MADGRAPH_INSTALLATION_DIR/bin/mg5_aMC
>
> generate p p > t t~ [QCD]
> output
>
> where the installation directory is on a read-only file system, but
> `pwd` is read/write (e.g. a scratch area or tmp directory). This now
> asks about which programs to install, and then attempts two write a
> configuration file back to the read-only area:
>
> set golem ''
> save options --auto
> save configuration file to
> /cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc47-opt/19.2.5/sw/lcg/external/MCGenerators_lcgcmt67c/madgraph5amc/2.5.1.atlas/x86_64-slc6-gcc47-opt/input/mg5_configuration.txt
> Command "output tt" interrupted with error:
> IOError : [Errno 30] Read-only file system:
> '/cvmfs/atlas.cern.ch/repo/sw/software/x86_64-slc6-gcc47-opt/19.2.5/sw/lcg/external/MCGenerators_lcgcmt67c/madgraph5amc/2.5.1.atlas/x86_64-slc6-gcc47-opt/input/mg5_configuration.txt'
>
> I believe this is because of a change in
>
> madgraph/interface/extended_cmd.py
>
> which now tries to save a configuration file via the
> write_configuration function when you try to do almost anything. I
> think, since we have the dependencies set to save locally, the correct
> behavior would be to make a locally directory and write there (or
> simply not update the config card at all).
>
> Thanks,
> Zach
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mg5amcnlo/+bug/1657615/+subscriptions