How to work in a CMS environment
Setting up the CMS environment by /cvmfs
/cvmfs
is an IT technology developed at CERN to easily distribute the CMSSW releases around the world ; wherever a CMS user will work he/she will find the same
/cvmfs
mount point with exactly the same files and directories ; partially it can be compared to
/afs
but it's much less sophisticated ; a
/cvmfs
technical presentation can be found
here but the average CMS user can safely skip the implementation details and simply use
/cvmfs
as a read-only directory.
In order to access
/cvmfs
you'll need to activate the UI Grid Environment by :
$ source /swshare/psit3/etc/profile.d/cms_ui_env.sh # for bash
$ source /swshare/psit3/etc/profile.d/cms_ui_env.csh # for tcsh / csh
The following session shows how to use on a UI the release
CMSSW_5_3_21 compiled for
slc6_amd64_gcc472 and hosted inside
/cvmfs
:
$ source /swshare/psit3/etc/profile.d/cms_ui_env.sh
$ echo $VO_CMS_SW_DIR
/cvmfs/cms.cern.ch
$ ls $VO_CMS_SW_DIR
...
slc5_amd64_gcc434 slc6_amd64_gcc472
slc5_amd64_gcc461 slc6_amd64_gcc480
slc5_amd64_gcc462 slc6_amd64_gcc481
slc5_amd64_gcc470 slc6_amd64_gcc490
slc5_amd64_gcc472 slc6_amd64_gcc491
cmsset_default.csh
cmsset_default.sh
crab3
slc5_amd64_gcc481 slc6_mic_gcc481
SITECONF
...
$ cd $VO_CMS_SW_DIR/slc6_amd64_gcc472/cms/cmssw/CMSSW_5_3_21
# the next source might take some seconds to complete since /cvmfs is a cached network filesystem and its local cache might be empty or outdated.
$ source $VO_CMS_SW_DIR/cmsset_default.sh
$ cmsenv
$ which cmsRun
/cvmfs/cms.cern.ch/slc6_amd64_gcc472/cms/cmssw/CMSSW_5_3_21/bin/slc6_amd64_gcc472/cmsRun
The ROOT Environment and Jupyter/IPython
In order to use jupyter (formerly known as IPython), you need to use the anaconda distribution of python. A pre-installed anaconda is available at
/swshare/anaconda
, you can use it by specifying
export PATH=/swshare/anaconda/bin:$PATH
which python
> /swshare/anaconda/bin/python
In order to use the jupyter notebook and
PyROOT, you also need to set up ROOT:
source /afs/cern.ch/sw/lcg/external/gcc/4.9/x86_64-slc6-gcc49-opt/setup.sh
source /afs/cern.ch/sw/lcg/app/releases/ROOT/6.06.08/x86_64-slc6-gcc49-opt/root/bin/thisroot.sh
In order to be able to access the notebook from an external network such as your laptop, you need to use sn SSH tunnel
#on T3 UI (e.g. t3ui02)
jupyter notebook
#on laptop
ssh -N -f -L localhost:PORT:localhost:PORT t3ui02.psi.ch
And then point your browser to
http://localhost:PORT
The CMS Environment and Jupyter
If you want to use jupyter wirth ROOT via CMSSW, keep in mind that CMSSW supplies its own python, which by default clashes with jupyter. You can override it with
cd CMSSW_8_0_19
cmsenv
export PYTHONPATH=/cvmfs/cms.cern.ch/slc6_amd64_gcc530/lcg/root/6.06.00-ikhhed4/lib:$CMSSW_BASE/python
export PATH=/swshare/anaconda/bin:$PATH
How to access your CERN AFS account
In order to access your CERN AFS account you'll need to obtain an AFS token from the CERN server. Run :
kinit YourCERNAFSName@CERN.CH
aklog cern.ch
You can test whether you have a valid token using the
tokens
command
tokens
Tokens held by the Cache Manager:
User's (AFS ID 1234) tokens for afs@cern.ch [Expires Nov 7 16:11]
User's (AFS ID 5432) tokens for afs@psi.ch [Expires Nov 7 10:26]
If you want to use this Kerberos ticket also for password-less login into
lxplus
you'll need
- create a forwardable ticket
kinit -f YourCERNAFSName@CERN.CH
- add the following section to your SSH configuration (
~.ssh/config
)
host lxplus*
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
For more information about Kerberos also have a look at the
CERN Kerberos access page.
You can use AFS for copying files between PSI and CERN, but
do not use AFS for running on software installed at CERN, e.g. in a CMSSW environment spawned by a CERN AFS based grid/cms installation. This will create a lot of traffic, and such jobs will fail on the worker nodes for firewall reasons!!!
How to use /afs/cern.ch/sw/lcg/app/releases/ROOT
All the ROOT versions are available on
/afs/cern.ch/sw/lcg/app/releases/ROOT
; check which is the latest
5. release and run that by a sequence of commands like :
$ alias ROOT_5.34.36=' . /afs/cern.ch/sw/lcg/external/gcc/4.8/x86_64-slc6/setup.sh && . /afs/cern.ch/sw/lcg/app/releases/ROOT/5.34.36/x86_64-slc6-gcc48-opt/root/bin/thisroot.sh'
$ ROOT_5.34.36
$ root
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.34/36 5 April 2016 *
...
How to use /swshare/ROOT
( very very old.. )
The outdated ROOT versions locally available at T3 are :
-
/swshare/ROOT/root_v5.34.18_slc5_amd64
it's compiled for Python 2.4 that's the default Python release on SL5 ( old )
-
/swshare/ROOT/root_v5.34.18_slc5_amd64_py26_pythia6
has been compiled for Python 2.6 that's also available on SL5 as python26
( old )
-
/swshare/ROOT/root_v5.34.18_slc6_amd64_py26_pythia6
it's compiled for Python 2.6 that's the default Python release on SL6 ( the T3 is SL6 based, probably this is the version you'll use )
You can activate
/swshare/ROOT/root_v5.34.18_slc5_amd64(_py26_pythia6)
by:
cd /swshare/ROOT/root_v5.34.18_slc5_amd64(_py26)
source bin/thisroot.(c)sh
Do the same for
/swshare/ROOT/root_v5.34.18_slc6_amd64