Modifications to Rocks 3.3 x86_64 to support CMS software

Contents

Introduction

The following document details some of the modifications required for Rocks 3.3 x86_64 running on AMD64 or Intel64 processors. These changes were tested on AMD64 Dual Core nodes at the UCSD Tier2 Center. Support for both ORCA 8_7_5 and CMSSW 0_8_0 was tested and verified.

OSG Worker Node Client Install

Although the OSG Worker node client currently supports 64bit it was determined that installing with default settings can cause potential incompatabilities with some CMS software that depends on certain VDT components being 32bit. While it was not confirmed that CMS software, and in particular SCRAM required 32bit OSG Worker Node Client in all cases it was thought to be safer to force the install of the 32bit version.

Script used to install the worker-node client software on the nodes. Setting the environment variable VDT_PRETEND_32=1 forces the installation to grab, amoung other software, a full 32bit perl binary which is used after sourcing the VDT over the underlying system perl binary.

#!/bin/sh

if [ ! -d "/wn-client" ]
then
    mkdir /wn-client
fi

if [ -e "/wn-client/setup.sh" ]
then
   echo "Looks like OSG:wn-client already installed! Aborting...."
   exit
fi



cd /wn-client
wget http://physics.bu.edu/pacman/sample_cache/tarballs/pacman-latest.tar.gz
tar zvxf pacman-latest.tar.gz
rm -f pacman-latest.tar.gz
chown root:root -R `find . -name "pacman*" -type d`
cd `find . -name "pacman*" -type d`
source setup.sh
cd -

VDTSETUP_AGREE_TO_LICENSES=y
export VDTSETUP_AGREE_TO_LICENSES
VDTSETUP_INSTALL_CERTS=l
export VDTSETUP_INSTALL_CERTS
VDTSETUP_EDG_CRL_UPDATE=n
export VDTSETUP_EDG_CRL_UPDATE
VDTSETUP_ENABLE_ROTATE=s
export VDTSETUP_ENABLE_ROTATE
VDTSETUP_ENABLE_WS_CONTAINER=s
export VDTSETUP_ENABLE_WS_CONTAINER
VDT_PRETEND_32=1
export VDT_PRETEND_32
pacman -pretend-platform:RHEL-3

Packages

The following packages were installed to provide 32 bit libraries for supporting the CMS software. With the exception of a few 32bit libraries that come standard with rocks the rest of these libraries were pulled from SL308 from CERN.

i386 compat-gcc
i386 compat-gcc-c++
i386 compat-libstdc++
i386 compat-libstdc++-devel
i386 compat-slang
i386 cracklib
i386 cups-libs
i386 cyrus-sasl
i386 cyrus-sasl-gssapi
i386 cyrus-sasl-md5
i386 cyrus-sasl-plain
i386 db4
i386 e2fsprogs
i386 expat
i386 fontconfig
i386 freetype
i386 ganglia-gmond
i386 gcc-objc-ssa
i386 gdb
i386 gdbm
i386 glib
i386 glib2
i386 glibc-devel
i386 gpm
i386 gpm-devel
i386 gridwrapper
i386 krb5-libs
i386 krb5-workstation
i386 krbafs
i386 laus
i386 laus-libs
i386 libacl
i386 libattr
i386 libf2c
i386 libgcc
i386 libgcj
i386 libjpeg
i386 libjpeg-devel
i386 libpng
i386 libpng-devel
i386 libstdc++
i386 libtermcap
i386 libtiff
i386 libtiff-devel
i386 ncurses
i386 ncurses-devel
i386 nss_ldap
i386 openldap
i386 openmotif
i386 openmotif21
i386 pam
i386 pam_krb5
i386 perl-IO-Socket-SSL
i386 perl-ldap
i386 perl-Net_SSLeay
i386 perl-SOAP-Lite
i386 perl-XML-SAX-Base
i386 popt
i386 pstack
i386 redhat-lsb
i386 samba
i386 swig
i386 tcl
i386 XFree86-devel
i386 XFree86-libs
i386 XFree86-libs-data
i386 XFree86-Mesa-libGL
i386 XFree86-Mesa-libGLU
i386 zlib
i686 glibc
i686 openssl

Command to determine current 32bit libraries installed on a node

rpm -qa --qf '%{ARCH} %{NAME}-%{VERSION}-%{RELEASE}\n' | grep ^i | sort 

Scripts used to validate the nodes

These scripts were used either on the nodes or submitted via the grid to validate CMS support on the nodes.

Note: These may contain UCSD Specific settings)

CMSSW 0_8_0

#!/bin/bash
# simple script to validate cms software - J. Letts
hostname
OSG_GRID="/wn-client"
OSG_APP="/code/osgcode"
source $OSG_GRID/setup.sh

export PERL5LIB="/code/osgcode/wn-client/perl/lib/site_perl/5.8.0/i686-linux/XML/Parser/:${PERL5LIB}"
echo "Running perl to test for Expat"
perl -e 'use XML::Parser::Expat'

echo "Dump env"
/bin/env
echo
echo

echo "Where is perl"
which perl
echo

echo "Perl version information"
perl -V
echo "========================"


# specify code base, project (CMSSW, ORCA) and version
cmsuser=cmssoft
project=CMSSW
version=0_8_0
scram="scramv1 -arch slc3_ia32_gcc323"


# OSG_APP defined only on WNs
if [ $HOSTNAME == 'uaf-1.t2.ucsd.edu' ] ; then
  export OSG_APP=/code/osgcode
fi

# set up CMS environment
export CMS_PATH=$OSG_APP/$cmsuser/cms
source $OSG_APP/$cmsuser/cmsset_default.sh ${project}_${version}

# prepare your work area and environment further
$scram project $project ${project}_${version}
cd ${project}_${version}/src
eval `$scram runtime -sh`

# setup cvs
source $CMS_PATH/utils/cmscvsroot.sh $project 2>&1
cvs -d `echo $CVSROOT | awk -F@ '{print $1":98passwd\@"$2}'` login

# checkout and run code to generate 25 simple events
cvs co -r ${project}_${version} IOMC/ParticleGuns
cd IOMC/ParticleGuns/test
cmsRun FlatPtGunInternal.cfg

# all done?
rc=$?
echo cmsRun return code was $rc
exit $rc

ORCA 8_7_5

#!/bin/bash
# simple script to validate cms software - J. Letts
export LD_ASSUME_KERNEL=2.4.21
OSG_APP=/code/osgcode
OSG_GRID=/wn-client

source $OSG_GRID/setup.sh

# specify code base, project (CMSSW, ORCA) and version
cmsuser=cmssoft
project=ORCA
version=8_7_5
scram="scram -arch slc3_ia32_gcc323"


# OSG_APP defined only on WNs
if [ $HOSTNAME == 'uaf-1.t2.ucsd.edu' ] ; then
  export OSG_APP=/code/osgcode
fi

# set up CMS environment
export CMS_PATH=$OSG_APP/$cmsuser/cms
source $OSG_APP/$cmsuser/cmsset_default.sh ${project}_${version}

# prepare your work area and environment further
$scram project $project ${project}_${version}
cd ${project}_${version}/src
eval `$scram runtime -sh`

cat > orcarc << EOF
InputFileCatalogURL = @{

xmlcatalog_http://tier2.ucsd.edu/cms/METADATA/SPECIAL/mu05b_MBforPU/POOL_Catalog.META.mu05b_MBforPU.xml

xmlcatalog_http://tier2.ucsd.edu/cms/METADATA/SPECIAL/mu05b_MBforPU/POOL_Catalog.EVD.mu_Hit3653_g133.mu05b_MBforPU.xml

xmlcatalog_http://tier2.ucsd.edu/cms/METADATA/SPECIAL/eg05_jets_2g_pt50up/POOL_Catalog.META.eg05_jets_2g_pt50up.xml

mysqlcatalog_mysql://phedex:98passwd@t2data0.t2.ucsd.edu:3306/eg05jets2gpt50up
}@
InputCollections = @{
/System/eg_2x1033PU8713_TkMu_g133_OSC/eg05_jets_2g_pt50up/eg05_jets_2g_pt50up
}@
FirstEvent=0
MaxEvents=10
TFileAdaptor=true
EOF

/bin/env
ldd `which ExDigiStatistics`
ExDigiStatistics -c orcarc

# all done?
rc=$?
echo Return code was $rc
exit $rc

Glite Verification Test

source $OSG_APP/glite/setup_glite_ui.sh

Then run

glite-sd-query

There should be no linking errors.

Authors

-- TerrenceMartin - 23 Aug 2006
Topic revision: r2 - 2006/10/02 - 20:31:29 - TerrenceMartin
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback