BZDEV: CERN visit

From: Todd Veldhuizen (tveldhui@oonumerics.org)
Date: Fri May 01 1998 - 11:41:04 EST


Sorry the list has been so slow. I'm on the road. Today I have some
free time so I thought I would write up some notes I took in meetings at
CERN (european nuclear physics research centre).

The group I visited is building a large C++ library to support the
new accelerator (LHC == Large Hadron Collider). Their library is
called LHC++, and you can visit them at:

http://wwwinfo.cern.ch/asd/lhc++/index.html

Their library incorporates several big components: Objectivity
for database, IRIS explorer for visualization, NAG C libraries,
and some others. They expect the LHC experiments to generate 100
petabytes of data over the lifetime of the project. On top
of these components they are writing a lot of custom code.

Possible uses for Blitz++:
- CLHEP, their C++ class library for high-energy physics
- GEANT-4, a C++ application for simulating detectors (?)
- experiment-specific software (the LHC accelerator will have 4 (?)
  different detectors, and each one has custom software needs)

A lot of their calculations require small, dense linear algebra
objects similar to the ones Blitz++ currently provides (sort of).
They model the accelerator and detectors, which involves simulating
particles whizzing around at near light-speed in magnetic and
electrostatic fields. They use length 3, 4 or 5 vectors and
3x3, 4x4 and 5x5 matrices a lot. They need a tiny symmetric matrix.
They need to define some special vectors, such as cylindrical and
rectangular coordinates, and "Lawrence vectors" which are length-4
vectors with some special properties, such as:

  a = [ x y z t ]
  dot(a,a) = x^2 + y^2 + z^2 - t^2

Common operations: dot products, cross products, solving
small linear systems, matrix-vector and matrix-matrix products.

They use farms of workstations (they are estimating 1000 CPUs
for the LHC needs, I think). The simulations are trivially
parallelizable-- they just spawn independent jobs on each
machine, like a rendering farm.

They expect LHC++ to have about 500 users by 2005, when the LHC
starts running. Maybe 50 of these people will be actively
developing with LHC++.

Blitz++ might be an ideal thing for them to use, provided some of
the current big problems can be solved (few supported compilers,
long compile times).

Several other accelerators are using C++ (at least partially):
SLAC, Brookhaven, Fermilab.

Fun aside: I saw the room where the WWW was born, and the original
web server-- A NeXT. They keep it in a glass case.

Cheers,
Todd
--------------------- blitz-dev list --------------------------------
* To subscribe/unsubscribe: mail to majordomo@oonumerics.org, with
"subscribe blitz-dev" or "unsubscribe blitz-dev" in the body of the message
* Blitz++ web page: http://oonumerics.org/blitz/



This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 04:30:04 EST