RPMCompatSLC6

Introduction

Physics validation using slc5 produced binaries on slc6 machines has been done. So users or production can run on sl(c)6 nodes, but using standard slc5 build releases. With the new CMTUSERCONTEXT in place on cvmfs, we can run transparently (or compile against) old SLC5 releases on SLC6 machines. CMTUSERCONTEXT is available as SVN package as well at https://svnweb.cern.ch/trac/atlasoff/browser/CMTUSERCONTEXT. With this now in place there's no reason NOT to migrate to SLC6. DC14 would be the first big production with SLC6 native builds. But be aware, that the G4 production is planned with 17.7, where we currently build only SLC5 releases.

This page describes compatibility RPM's you need to install on SLC6 64 bit system if you want to:

  • run Atlas Offline releases built on SLC5 platform in 32b and 64b mode with gcc 4.3.5 (4.3.6)
  • build and/or run 64bit Atlas Offline releases on 64bit SLC6

Since ATLAS is not using the default compiler from the OS due to several reasons, if you install release from a kit on your own you will have to install the proper gcc compiler used to build the release. One can find information for the specific compiler used to build a release and the way to install it at the release status page.

To identify SLC system one can do:

% cat /etc/redhat-release
Scientific Linux CERN SLC release 6.3 (Carbon)
% uname -i
x86_64
We are on SLC 6.3 64 bit system.

All RPM installations are privileged operations and should be done as 'root' on local system.

At CERN SLC6 64bit RPM repositories are:

for SLC6 http://linuxsoft.cern.ch/cern/slc6X/x86_64/Packages

Run SLC5/64bit binaries on SLC6 64bit machine or build on SLC6 with gcc 4.6.2 in 64bit mode.

You need to check inside
http://linuxsoft.cern.ch/cern/slc6X/x86_64/Packages
http://linuxsoft.cern.ch/cern/slc6X/x86_64/updates/RPMS/

for the latest versions of

  • libuuid-devel-2.17.2-12.el6.x86_64

yum install libuuid-devel  

Build slc5 binaries on SLC6 with gcc 4.3.6 for 32b and 64b (few RPMs are needed for 32b SLC6 build)

  • glibc-2.12-1.47.el6.i686
  • glibc-devel-2.12-1.47.el6.i686
  • openssl098e-0.9.8e-17.el6.i686
  • freetype-2.3.11-6.el6_1.8.i686
  • libxml2-2.7.6-4.el6.i686
  • libxml2-devel-2.7.6-4.el6_2.1.i686
  • libaio-0.3.107-10.el6.i686
  • compat-libtermcap-2.0.8-49.el6.i686
  • ncurses-devel-5.7-3.20090208.el6.i686
  • castor-devel-2.1.9-8.i686 (these castor rpms needed by ByteStreamStoragePlugins and tdaq-common/EventStorage)
  • castor-devel-2.1.9-8.x86_64
  • castor-lib-2.1.9-8.i686
  • castor-lib-2.1.9-8.x86_64
  • libstdc++-4.4.6-3.el6.i686 (required by castor-lib-2.1.9-8.i686)
  • freetype-devel-2.3.11-6.el6_1.8.i686
  • libpng-devel-1.2.46-1.el6_1.i686
  • compat-readline5-5.2-17.1.el6.i686
  • mesa-libGL-devel-7.11-3.el6.i686
  • mesa-libGL-7.11-3.el6.i686
  • mesa-libGLU-devel-7.11-3.el6.i686
  • mesa-libGLU-7.11-3.el6.i686
  • libXext-devel-1.1-3.el6.i686 (needed by ROOT)
  • libXpm-3.5.8-2.el6.i686 (needed by ROOT)
  • libXft-2.1.13-4.1.el6.i686 (needed by ROOT)
  • pam-1.1.1-10.el6.i686 (needed by AtlasHLT)
  • compat-db43-4.3.29-15.el6.i686
  • compat-expat1-1.95.8-8.el6.i686 (needed for dq2 commands)
  • compat-expat1-1.95.8-8.el6.x86_64 (needed for dq2 commands)
  • compat-openldap ( 32b and 64b needed for lcg-cp, DQ2Clients / Rucio)
  • automake-1.11.1-4.el6.noarch (for Sherpa WolfgangE)
  • autoconf-2.63-5.1.el6.noarch (for Sherpa WolfgangE)
  • libtool-2.2.6-15.5.el6.x86_64 (for Sherpa WolfgangE)
  • libuuid-devel-2.17.2-12.9.el6_4.3.i686 (for 32b SLC6 builds)
  • zlib-1.2.3-29.el6.i686
  • zlib-devel-1.2.3-29.el6.i686
  • zlib-devel-1.2.3-29.el6.x86_64 (included in SLC6 but missing in SL6)

yum install  glibc.i686 glibc-devel.i686 openssl098e.i686 freetype.i686 libxml2.i686 libxml2-devel.i686  libaio.i686 compat-libtermcap.i686 ncurses-devel.i686 \
castor-devel.i686 castor-devel.x86_64 castor-lib.i686 castor-lib.x86_64 libstdc++.i686  freetype-devel.i686 libpng-devel.i686 compat-readline5.i686 mesa-libGL-devel.i686 \
mesa-libGL.i686 mesa-libGLU-devel.i686 mesa-libGLU.i686 libXext-devel.i686 compat-db43.i686 compat-expat1.i686 compat-expat1.x86_64  compat-openldap.i686 compat-openldap.x86_64 libXpm.i686 libXext.i686 libXft.i686 pam.i686 automake.noarch autoconf.noarch libtool.x86_64 libuuid-devel.i686 zlib.i686 zlib-devel.i686 zlib-devel.x86_64  

LCG Applications RPM Metapackage

There is a meta RPM package which will install all needed libraries on your system.

SLC6.2 update

6.Jan. 2012 Rolf Seuster:

running jobs on SLC5 release

STATUS: works, if release is setup properly: asetup ...,slc5

PAST: On a private machine with freshly installed SLC 6.2 I had to install just two libraries to run reconstruction jobs:

yum install openssl098e
yum install compat-libf2c-34

The release was setup with

asetup devval,rel_2,here,slc5

compiling packages against SLC5 release

STATUS: for any recent release of the 17.2. branch this now works out of the box Still to be done (Nov. 2012): older releases 16.6 and 17.0

PAST: One problem with SLC6 apparently is, that the glibc version is to new to be used with an 'old' gcc version 4.3.5. In newer versions of glibc, all code protected by the '_GNU_SOURCE' precompiler macro are split up into '_GNU_SOURCE' and '__USE_XOPEN2K8' to select POSIC 2008 standard. Newer compilers automatically define this macro once '_GNU_SOURCE' is defined. Older compilers do not. So, this will cause a compilation problem:

/usr/include/bits/stdio.h: In function '__ssize_t getline(char**, size_t*, FILE*)':
/usr/include/bits/stdio.h:118: error: '__getdelim' was not declared in this scope

The only package I tried to compile was JetRec. I could compile this package with adding one line to its requirements file

macro_append cppdebugflags " -D__USE_XOPEN2K8 "

For building release build on SLC6 with a SLC5 setup, we now included this in GaudiPolicy as:

# for building slc5 binaries on slc6 host
macro CppSpecificFlags "" \
    ATLAS&host-slc6&target-slc5 " -D__USE_XOPEN2K8 "

# set an env var for use outside, eg a Makefile
set CPPEXPFLAGS "" \
  ATLAS $(CppSpecificFlags)

macro_append pp_cppflags " $(CppSpecificFlags)"
macro_append pp_cflags   " $(CppSpecificFlags)"

The second definition of CPPEXPFLAGS is added so that these special flags can also easily be added to some Makefile.standalone used inside the atlas release.

Vanilla SL6 machines are missing lockfile- solution is yum install procmail

If you add more rpms to the above list please send an email to Emil.Obreshkov@cern.ch so that he can follow on updating the meta-rpm which is used on the grid.

For grid specific details, see the WLCG Operations SL6Migration page.

reading files from CASTOR

This is slightly modified from a knowledge article KB0000491:
If data access on LXPLUS is working, most likely the private machine has a local firewall that prevents CASTOR callbacks from working. On SLC machines, the correct configuration would be the following lines in /etc/sysconfig/iptables (these need to appear before the first REJECT statement):
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# controlled by CASTOR-client RPM
# allow callbacks for RFIO, port range corresponds to default callback range
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30100 -j ACCEPT
# end of CASTOR-client RPM modifications This configuration should be installed automatically with thecastor-lib RPM, but later modifications might have overwritten it. If you modify the file by hand, you'll need to run
 
/sbin/service iptables restart
 
afterwards in order to make the change effective.
These lines needed to be added to allow reading via the rfio protocol, xrdcp the same file did work without above modifications.

SL6 performance

We see better performance results on SL(C)6 even using slc5 bin releases ~5% simulation, 10-15% recosntruction jobs. HS06 are faster up to 10%.Sites are encouraged to fill HS06 page on the Hepix site and publish the new results https://w3.hepix.org/benchmarks/doku.php?id=bench:results_sl6_x86_64_gcc_445

SL6 issues

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This information below is mainly for individual users with local installations. Users using cvmfs or lxplus will get the proper compiler while using the appropriate setup. SLC6 is coming with gcc version 4.4.7 (RH) and the experiments agreed that they will use more recent gcc version 4.6.3 (GNU) and gcc 4.7.2 on SLC6. For old releases one will need gcc 4.3.6. One way of installing the compilers is by using pacman. If you have 32bit architecture machine (for the old releases only)

pacman -get KV:gcc-alt/gcc_4_3_6_i686_slc5_gcc435
And for 64b architectures
pacman -get KV:gcc-alt/gcc_4_3_6_x86_64_slc5_gcc435_opt
pacman -get KV:gcc-alt/gcc_4_6_3_x86_64_slc6_gcc46_opt
pacman -get KV:gcc-alt/gcc_4_7_2_x86_64_slc6_gcc47_opt

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

One can easily check for missing libraries by adding at the end of JO file.

theApp.ReflexPluginDebugLevel = 10000

If these RPM's are missing one will have lots of errors like this:

dlopen error: libgfortran.so.1: cannot open shared object file: No such file or directory

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ATLAS grid sites

Information for ATLAS grid sites migrating to SL(C)6 can be found at SLC6Readiness.


Major updates:
-- EmilObreshkov - 17-Oct-2011

Responsible: EmilObreshkov
Last reviewed by: Never reviewed

Edit | Attach | Watch | Print version | History: r41 < r40 < r39 < r38 < r37 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r41 - 2014-11-20 - TWikiAdminUser
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Atlas All webs login

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