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?

Linux 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

Jeff Templon 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 Linux Benchmarks

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 SUSE GmBH.

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 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

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 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).

Then type

./install_adamo new
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 variable.

Be also sure to set your HERMES_ROOT environment variable to /hermes/pro now. You will also have to install the file cfortran.h on /hermes/pro/include.


Dad is flawlessly compiling on linux by just unpacking the package from the hermes-sgi on /hermes/pro/dad, typing
make install


Pink is compiling on linux by unpacking the package from the hermes-sgi on /hermes/pro/pink, typing
make install
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 elf).

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
cd /
tar zPpxvf /whereeveritis/pink-tcl.tar.gz

It is also helpful if you know that you have to set certain environment variables:

export TK_LIB=/usr/i486-linuxaout/lib
export TK_INC=/usr/include/tcl
export BLT_LIB=/usr/i486-linuxaout/lib
export TCL_LIB=/usr/i486-linuxaout/lib
export TCL_INC=/usr/include/tcl
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 (see above).


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/


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.


No Problems.


No Problems.


No Problems.


HRC is flawlessly compiling on linux by just unpacking the package from the hermes-sgi on /hermes/new/hrc/hrc.tar.gz, typing
make install
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
Wolfgang Wander,