Working with LHCb Software and SLC6

SLC6 on lxplus.cern.ch

On the 6th of May 2013, the CERN IT Department changed the lxplus.cern.ch alias to point to the new lxplus6.cern.ch cluster, installed with Scientific Linux CERN, version 6. More information on this change can be found at:

http://itssb.web.cern.ch/service-change/lxplus-alias-migration-slc6/06-05-2013

Warning, important This is only a change of alias, the previous linux cluster is still available under the name "lxplus5.cern.ch".

Compiling and Running jobs on SLC6

Whereas running SLC5 binaries on SLC6 is straightforward, and has been done for a while in production, the opposite is more difficult and can only be with the gcc46 configurations.

Now that SLC6 is the default on lxplus (and many office desktops), while most of the grid nodes are still using SLC5, please be aware of the following points:

When logging to an SLC6 machine, the default CMT configuration is "x86_64-slc6-gcc48-opt".

This configuration is supported by a large part of the LHCb Software stack (work is being done to release the rest of the stack). It is possible to compile/run your algorithm with this configuration, but many grid resources have been migrated to SLC6 yet so jobs can be submitted with this configuration.

SLC5 cross-compilation on SLC6

You can continue to work with the "x86_64-slc5-gcc46-opt"configuration that was the default on SLC5. In order to do so you need to call:

LbLogin -c x86_64-slc5-gcc46-opt
SetupProject DaVinci

or

LbLogin -c x86_64-slc5-gcc46-dbg
SetupProject DaVinci

Warning, important Please note that just changing the CMTCONFIG environment variable is not sufficient as you need to invoke the LbLogin command in order to set your environment to a specific compiler.

Warning, important LbLogin for x86_64-slc5-gcc46-opt (or dbg) sets the CMTUSERCONTEXT environment variable, used by CMT. This is necessary in order to use the gcc 4.6.2p1 compiler from the LCG externals, that allows for cross compilation (whereas the default 4.6.2 will generate incompatible binaries). If you are using the CMTUSERCONTEXT environment variable yourself, you need to include the following lines in your User context requirements file:

macro gcc_config_version '$(gcc_config_version)' \
       target-slc5&host-slc6&target-gcc46 '4.6.2p1'

Using the gcc43 compiler

To use the gcc43 compiler (e.g. for versions of Gauss prior to v45...) you need to connect to a SLC5 host such as lxplus5.cern.ch as the cross compilation of gcc43 code on SLC6 does not work. This is also true for 32 bit configurations.

In case of problems

In case of issues potentially related to this, the best is to try and submit the jobs from lxplus5.cern.ch to see if it makes a difference and to contact the core software team if it is the case. You can see in the list below if the issue has already been reported and if there is a workaround.

Known Issues

Problem with projects depending on LCGCMT 62b

There is an issue in the LCG_Platforms package in LCGCMT 62b which causes the the SLC6 host to be mistaken with SLC5. One way to detect the issue is to run, in your package's cmt directory:

 cmt show macro_value LCG_hostos
x86_64-slc5

Whereas it should be detected as x86_64-slc6

This will cause cmt to use the wrong version of gcc and you may end up with errors such as:

Traceback (most recent call last):
         File "/afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r2/InstallArea/x86_64-slc5-gcc46-opt/scripts/gaudirun.py",
line 183, in <module>           applyConfigurableUsers()
         File"/afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r2/InstallArea/x86_64-slc5-gcc46-opt/python/GaudiKernel/Configurable.py",
line 1357, in applyConfigurableUsers           c.__apply_configuration__()
         File"/afs/cern.ch/lhcb/software/releases/HLT/HLT_v15r5/InstallArea/x86_64-slc5-gcc46-opt/python/HltConf/Hlt1.py",
line 60, in __apply_configuration__
           import HltTracking.Hlt1TrackUpgradeConf
         File
"/afs/cern.ch/lhcb/software/releases/HLT/HLT_v15r5/InstallArea/x86_64-slc5-gcc46-opt/python/HltTracking/Hlt1TrackUpgradeConf.py",
line 3, in <module>
           import PyCintex
         File"/afs/cern.ch/sw/lcg/app/releases/ROOT/5.32.02/x86_64-slc5-gcc46-opt/root/lib/PyCintex.py",
line 21, in <module>
           import libPyROOT
       ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15'
not found (required by
/afs/cern.ch/sw/lcg/app/releases/ROOT/5.32.02/x86_64-slc5-gcc46-opt/root/lib/libPyROOT.so)

In this case the workaround is to import a newer version of the LCG_Platforms in your local project by doing:

cp -r /afs/cern.ch/sw/lcg/app/releases/LCGCMT/LCGCMT_64d/LCG_Platforms .

Once this done, the LCG_hostos should be correct

 cmt show macro_value LCG_hostos
x86_64-slc6


This topic: LHCb > WebHome > LHCbComputing > Slc6Faq
Topic revision: r9 - 2014-02-04 - BenjaminCouturier
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback