[Rivet] installation

Andy Buckley andy.buckley at cern.ch
Mon Jan 27 11:32:01 GMT 2014


Thanks Stefan, feedback appreciated. Frank's new bootstrap script will
make that much easier, but let us know if there are any remaining
issues. No-one spontaneously reports these problems, it seems, so we
need to actively interrogate those who we know have had trouble :-P

Andy


On 27/01/14 00:34, Stefan Hoeche wrote:
> 
> Hi All,
> 
> just adding something to the discussion from the nerdy user point of
> view: I've managed to install Rivet on most of the clusters accessible
> to me, even on OSG, Cray XK7 and an IBM BG/Q. So I'd say I bring quite a
> bit of experience into the discussion.
> 
> That being said, it was the worst nightmare I ever had installing a HEP
> library! I agree with both Franks that, in the current status, Rivet and
> its bootstarp scripts are next to unusable for any un-nerdy person.
>
> Admittedly, even I refuse to upgrade my old versions on lxplus and on
> the SLAC cluster because it is such a pain to meet all the dependencies.
> I'd very much appreciate a bootstrap script which by default installs
> all the dependencies, no matter whether they are found on the system or
> not. This would help in particular those users with admins who refuse to
> upgrade to newer system-wide libraries (SLAC!).
> 
> All that being said, once Rivet _is_ installed, it works like a charm ;)
> Thanks for the great tool!
> 
> Cheers
> Stefan
> 
> 
> On 01/26/2014 03:18 PM, Frank Siegert wrote:
>> Hi Andy,
>>
>> I'm not sure that many experiment users necessarily install their own
>> copy of Rivet, in particular not if they have access to LCG. So even
>> with limited manpower, and to make any effort on Rivet have the impact
>> we want it to have, we should avoid locking a large part of our
>> userbase out. We didn't do so badly for that before Rivet2, i.e. with
>> easier dependencies and the old bootstrap script, except that it being
>> in Python wasn't very smart for maintainability. So back to
>> constructiveness:
>>
>> I'm attaching a proposal for a rivet-2-bootstrap script. It's not
>> trying to be smart about what is already installed, but simply
>> installs everything by default, unless the user specifies that
>> something already exists (and if necessary, in which directory). For
>> example:
>>
>>    INSTALL_BOOST=0 BOOSTPATH=/usr/local ./rivet-2-bootstrap
>>
>> I'm still running a test for the RIVETDEV installation option, so
>> don't consider it completely working and final yet. But if the basic
>> idea looks Ok to you, I'd put this into the repository as
>> rivet-2-bootstrap, and move the current one to
>> rivet-2-bootstrap-lcg(?). Or would you rather have both in one with
>> automatic switching if /afs is available or not?
>>
>> Cheers,
>> Frank
>>
>>
>> On 26 January 2014 23:59, Andy Buckley <andy.buckley at cern.ch> wrote:
>>> Hi Franks,
>>>
>>> Well, it's usable in proportion to the amount of developer time that we
>>> have had to spend on making it nice... the main users what we have had
>>> to win over are the experiment ones who access it through experiment
>>> frameworks or from the Genser-built copy. So certainly that's who I've
>>> been aiming my limited build system dev time at, and to be honest I
>>> still stand by that choice although I'd rather not have *anyone* annoyed
>>> by our code.
>>>
>>> For a tarball build I think the dependencies are as follows:
>>>
>>> YODA requires:
>>>   * Boost (headers only, but currently asks for quite a new version...
>>> can maybe be relaxed: any testers?)
>>>
>>> Rivet requires:
>>>   * HepMC, FastJet (unavoidable, I think)
>>>   * YODA (yes, could have been built-in, but it has wider utility)
>>>   * yaml-cpp (for 2.1.0 I'd like to use a built-in copy, cf. the latest
>>> LHAPDF6)
>>>   * GNU Scientific Library (volunteers to eliminate that dependency? But
>>> is typically an easily-met requirement, I think)
>>>   * Boost (headers only, fairly easy version requirement, I think)
>>>
>>> If we eliminate yaml-cpp, how much is there to object to? Anyway, yes
>>> Frank I'd be very happy for you to make a new rivet2-bootstrap script
>>> which builds everything from scratch... and/or attempts to work out what
>>> is already on the system? At some level users should make their own
>>> minds up about what to install from packaging systems and what by
>>> hand... but by saying that I probably give away what side of Frank's
>>> nerd fence I'm sitting on ;-)
>>>
>>> Anyway, in short I don't see so much room for cutting things down, but
>>> always think that smoothing the entry paths (with scripts or otherwise)
>>> is a good thing as long as it's kept manageable for the developers, too.
>>> Since that's translated as "next to no manpower" for the last... two
>>> years?, I'm afraid the situation isn't so surprising. But we'll do what
>>> we can -- certainly I want to get rid of the yaml-cpp explicity
>>> requirement, and hopefully we can get a couple of new part-time
>>> developers (re)activated in the coming months.
>>>
>>> Andy
>>>
>>>
>>> On 26/01/14 19:47, Frank Siegert wrote:
>>>> I hate to admit that I agree with Frank's rant here, and I have had
>>>> multiple users recently who made the same point, though admittedly
>>>> more politely. The bootstrap script currently is close to useless to
>>>> everybody who isn't installing on lxplus. I have it on my agenda to
>>>> replace it with a working version, but haven't got around to it yet.
>>>> And to be honest, all the changes and external dependencies that came
>>>> with Rivet2 have left me as a second-class developer (if even),
>>>> because there is a lot of stuff in the codebase which is beyond my
>>>> capabilities to fix -- I'm normally quite annoyed myself with even
>>>> installing Rivet on a new cluster, where
>>>> cython/yaml/yoda/boost/cmake/hg/fastjet/hepmc... isn't available. Some
>>>> of those are only necessary for the development version, but it's
>>>> still rather annoying.
>>>> This goes far beyond the switch to YODA, which I agree with as
>>>> necessary, though tbh I originally thought would be Rivet-in-house as
>>>> well.
>>>>
>>>> Anyway, as I'm clearly not the majority of Rivet developers, and
>>>> mostly everybody else on the team seems to be happy about this usage
>>>> of fancy new technologies, separation and dependencies, there is no
>>>> point in discussing that in itself. But we definitely need a usable
>>>> bootstrap script much more urgently than we needed it for Rivet1.
>>>>
>>>> Andy, what about renaming the current rivet2 bootstrap script to
>>>> rivet-2-bootstrap-lcg, and (me) creating a separate one which actually
>>>> does all the installations on its own (but without support for Rivet1
>>>> of course, to avoid it becoming too bloated as the old one did)?
>>>>
>>>> Cheers,
>>>> Frank
>>>>
>>>>
>>>> On 26 January 2014 17:13, Frank Krauss <frank.krauss at durham.ac.uk>
>>>> wrote:
>>>>> Dear Rivet Authors,
>>>>> I am just towards the end of my second hour running trying to
>>>>> install Rivet 2.0.  Admittedly, I am not half as geeky and nerdy as
>>>>> you are, so I accepted/anticipated that this would take me an
>>>>> hour.  But, please, can you explain the rationale why you use
>>>>> cython, yaml, yoda, boost, fastjet & hepmc (I am sure i missed some!)
>>>>> in a non-trivial way with non-trivial version specifications
>>>>> without providing a meaningful installation guide?  You certainly
>>>>> do not want the common people to use your code - is that it?  If
>>>>> you think this helps the user base you are mightily mistaken.  If
>>>>> you think I will continue to advertise your code, you're delusional
>>>>> - this is next to uninstallable as it stands now, with a pretty
>>>>> superficial installation help.
>>>>> Best wishes
>>>>>      Frank
>>>>>


-- 
Dr Andy Buckley, Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow / PH Dept, CERN


More information about the Rivet mailing list