FOR ALL THE EXTERNAL F77 USERS:
A direct link to the f77 filter
RECENT NEWS: Hermes Data Processing is
now massivly powered by Linux!
Helping hints to install Hermes software on Linux based PCs
Why should you consider this at all?
is a free Unix-like operating system which is POSIX compliant
and runs on (nearly) any PC with an Intel 386 or above. This makes
it a low price system which provides highest possible CPU performance.
PC prices - due to the exploding market on this sector - decrease
monthly while the performance is steadily increasing.
The Andrew McNab's
HEP pc page contains several
interesting links concerning Linux in High Energy Physics. This
page also contains postings from several newsgroups (among them
cern.heplib) concerning Linux. Recently he started a very useful
FAQ for Linux in HEP computing.
The Cern-Libraries for High Energy Physics are also constantly
ported to Linux by JINR/Dubna. Have a look on Victor Balashov's
CERNLIB on LINUX/IBM PC platform page.
Stephen Baum has set up a huge list of
Linux Software for
Scientists. Another very nice such list can be found at
has setup a
scientific Linux page
and is the author of an article in the jan/feb issue of
Computers in Physics about Linux.
There are even DAQ (DataAQuisition)
solutions available for
Linux platforms. Have a look on
The Linux Lab Project or the
ECP/EDO/RD24 Home Page on
DAQ solutions for LHC.
Concerning performance, in Hermes Software we usually compare a P5/133
Linux system against our SGI-System (MIPS R4400/200MHz). For our Monte-Carlo
Program (totally written in Fortran77) the Pentium runs about 15% faster
than the SGI-CPU (both highly optimized) whereas the C-based reconstruction
programm does run at comparable speed. One has to mention that the Fortran
performance for Linux can be significantly worse for pure number-crunching
algorithms (see Jeff Templon's article) due to Intels inherently worse
floating point performance and limited capabilties of f2c ( the fortran
to c converter by netlib ) regarding floating point issues.
Regarding the new P6/200MHz systems first experience shows that the
software runs at about twice the speed of an P5/133. This currently results
about the same price performance ratio as the P5/133 at the gain of
less system maintenance.
You may also want to have a look on some
What do you install?
We have best experiences with the slackware distributions and
installation kits coming on the SUSE CDs. They can be found in
my new office. You can of course also buy the CD at the
In case of problems, which I do not expect as the installation
tools are rather good, feel free to ask me for help.
In the installation you should make sure to install X11 support
and the programming development, TeX is not needed for the
hermes software and uses a huge amount of disk space.
When installing avoid the g77 fortran compiler. It seems not
yet to be sufficient to compile the complete hermes software.
We use f2c - the fortran to c converter - plus a f77 script and
filter (see below) instead.
And what else?
You should get the 95a libraries from
Looking at the copyright policy of CERN I may not be allowed to
install the binaries here on this server for download. The 96a libraries
are already available (also in the new ELF executable format) however HERMES
Software has not yet been tested in the new environment. To be safe - stay
with 95a for a while.
This is all you can get from external sources...
Starting up with the Hermes Software
As on any new platform we start with Adamo. Try to get the adamo3x3.car
from our hermes sgi on /hermes/newadamo or a later version from CERN.
It is important that this version is released after Oct-95 as
older releases do not include DAD support.
However there will be some problems installing adamo already
now if we do not configure some things first:
This were the prepartions
- Make sure that the CERNLib is installed correctly. With this
I mean that /cern/pro is linked to /cern/95a and /cern/pro/bin
contains the right executables - namely ypatchy for the adamo
This also means that your search path contains the cern binary
directory and CERN_ROOT is set correctly:
- f2c as it comes with the slackware
distribution is not
optimized dor the challenges of HEP-physicist fortran code productions ,-)
You should replace the f77 script in /usr/bin by the one supplied
in this package
account for several extensions to fortran77 often found in
physicists code. This package includes a filter to reorder DATA
statements in the code, to remove initializations from variable definitions
and place them in extra data statements,
a fix for the often used line continuation
TAB-DIGIT and a library with the Fortran bit functions, which are
defined in CERNLIB but might be used also in CERN-free code...
Please have a look into the f77 problem page
for more details.
For HERMES Collaboration members (and only for those) I've generated
a precompiled version of the f77 environment which also includes a
slightly modified f2c (which is needed to compile ACE). If you are a
member of the HERMES Collaboration please get
this package and follow the instructions in
INSTALL. For other Linux users
this is unlikely to be of any use.
- We need fsplit, which is not
part of the slackware distribution. Unpack this fsplit.tar.gz tar file, type make
fsplit in the newly created fsplit/ directory and copy
the fsplit program to /usr/local/bin.
- Some of the software assumes that nawk is available. You can (must)
savely assume that gawk performs the task as well and make a symbolic
link from /usr/bin/gawk to /usr/bin/nawk if you don't have nawk installed.
Forgetting to do this results in undefined symbols for all Adamo Common
Blocks in hdc and hrc.
What is the status of the Hermes software on Linux platforms?
All the software needed to do any kind of data processing, analysis,
monitoring Monte-Carlo-production and software development is available.
You got your Adamo .car file as described above? OK. Then you
generate a new directory named /hermes/adamo. There you put the
adamo3x3.car. In addition you need the
install_adamo script which you
make executable (chmod 755 install_adamo) and copy
it to /hermes/adamo. You can also get the
adamo_var_setup file and
copy it to the /hermes/adamo directory, if you believe in the
installation parameters, I usually use (Attention here - if you are
reading the page for general information on the installation of
Hermes software and are not using Linux, you will fail here - the
adamo_var_setup file is setup for Linux only).
and wait for the installation to complete (successfully?).
In the end you should create new directories named /hermes/pro/lib
and /hermes/pro/include and link the files in /hermes/adamo/3.3/lib
and /hermes/adamo/3.3/include to the corresponding new directories.
The same should be done with the adamo binaries in /hermes/adamo/3.3/bin,
namely linking them to the directory /hermes/pro/bin. In any case
/hermes/pro/bin should now be also included in the PATH environment
Be also sure to set your HERMES_ROOT environment variable to
You will also have to install the file cfortran.h
Dad is flawlessly compiling on linux by just unpacking the package
from the hermes-sgi on /hermes/pro/dad, typing
Pink is compiling on linux by unpacking the package
from the hermes-sgi on /hermes/pro/pink, typing
However make sure to have read the
pink installation pages.
Especially the required packages tcl7.3 and tk3.6 are no longer supported
with modern linux distributions. Get them from the above pink installation
page and compile them in a.out format (or elf - if your cernlibs support
for a.out systems only:
For the ease of installation I make
a tar file of tcl/tk/blt available here
which you should install on your PC using
tar zPpxvf /whereeveritis/pink-tcl.tar.gz
It is also helpful if you know that you have to set certain
in addition to the standard HERMES_ROOT, CERN_ROOT, etc.
This were the base libraries...
Before you continue some design corrections. HERMES software cannot be
installed one after another as they all share their ddl (data
definition language): e.g. hmc requires hdc ddl for the raw data
output and hrc ddl for input, hrc requires hmc and hdc ddl for
input. So you will have to copy the complete ddl from the hermes
ddl archive first:
rcp hermes:/hermes/new/ddl/*.ddl /hermes/new/ddl
( or similar ftp commands )
Similar considerations lead to the advice to copy the include files from
hermes to your local system:
rcp hermes:/hermes/new/include/*.h /hermes/new/include
( or similar ftp commands )
Finally there is a set of commonly used files in /hermes/???/lib one needs
to run hmc/hrc:
rcp hermes:/hermes/new/lib/*.[iI][eE] /hermes/new/lib
rcp hermes:/hermes/new/lib/*.map /hermes/new/lib
rcp hermes:/linux.mnt/hermes/new/lib/dad* /hermes/new/lib
( or similar ftp commands )
Is compiling on Linux. You will have to get the
modified linux online libary first (contains CERNLIB code and can therefore
not be made available here - HERMES members can copy the precompiled linux
library from hermes:/linux.mnt/hermes/new/online/ and install libonline.a
in /hermes/new/lib locally.
Is compiling fine under linux. You'll have to use the latest f77 script
Is known to compile. However no supported configuration scripts are
available. Little work required to get it going. Probably you will not
need to run hdb as the geometry files can be obtained from the
global repository on hermes: /hermes/new/lib/hmcdg.ie.
No Problems. Well you need at least kernel 1.3.26 for the support
of large shared memory areas. The executable has to be copied to the
hermes executable directory manually.
HRC is flawlessly compiling on linux by just unpacking the package
from the hermes-sgi on /hermes/new/hrc/hrc.tar.gz, typing
However also here you have to make sure that all the supporting
files, like field maps and PID tables can be found on $HERMES_ROOT/lib.
Ported. You will also need the new versions
of f77 and f77reorder (see above).
Is ported. ACE requires a make new to install properly.
This was all - have fun on your new system.
Back to the Hermes Homepage