print

ILL - Computation and software packages

Main page          Previous   ---   Top 8/14   ---   Next

Computation

There was simultaneously a need for high performance computing for instrument simulation and ab initio calculations and personal computers for the daily work and less demanding calculations.

High performance computing

Instrument simulation and ab initio calculations required increasing performance only obtainable by distributing processing in parallel over multiple systems.

Early work was done on remote systems accessed over the network. One system was the CISI Cray T3 computer system incorporating 256 DEC-Alpha processor nodes. At the ILL the first steps in cluster operations involved installation in 1996 of two twin processor DEC-DS20E alpha-EV6-833MHz systems, with fast memory interconnect. These operated as a module matching the CISI Cray T3 basic four processor unit. The system proved to be very powerful, and only when the much faster 3GHz Xeon cpus were more common that they could be retired.

The first linux cluster installed at the ILL used 8 HP bi-processor computers, essentially large PCs. Portland (PGI) Fortran was chosen, partly because it had been used by software developers, and partly it offered a complete package, including BLAS routines, with ready built parallel processing extensions. There was often a mismatch between software component versions for other suppliers. It was still necessary to build some of the low-level BLAS routines on these systems. A management tool, Alinka, was also acquired, to manage the batch use of the set of processors.

Later installation of a group of AMD computers (which had superior shared memory hardware to the Intel processors) indicated that a small number of users could mutually agree to share a system reasonably equitably without the constraints imposed by Alinka. Initially gigabyte ethernet linked cluster elements. When Linux blade systems were introduced Infiniband interfaces were later added to improve system interconnectivity; most programs used the MPICH task synchronisation package..

Personal computers

As the price of personal computers dropped scientists acquired either PC-Windows or Apple Macintosh systems, with some groups have preferences for one or the other.

Once thin-wire ethernet had been installed the Appletalk network was replaced and all systems used first this then the RJ45 cabled switched ethernet network.

The number of workstations too increased. After the initial period (1990) when a DEC-Station (MIPS-Ultrix) workstation had been accquired, from 1992 HP-UX (Nuclear Physics, TOFHR, 3-axis groups) and SGI (LSS, Diffraction groups) were preponderant, The OpenGL graphics of SGI was not heavily exploited and though the SGI system was the most comfortable in use the company finally exited from the field, and Linux became increasing used at the ILL, though only a few scientists used it for personal work.

The central data files were moved from an SGI server first to a SUN server, then in the early 00’s to Linux based systems (SuSe).

Software

Since the start the ILL has used and still uses many external software packages but, it has also developed many programs for instrument control, data reduction, data analysis and scientific calculations. Only a few trends will be described here.

Languages and softwares packages

The principal language at the ILL was Fortran. This was initially Fortran-IV. The instrument control system on CARINE was written in Fortran with a real-time layer (Le Sourne 1972). On the central computer Cobol was used for an administration activity, management of mission payments. The data archiving programs were written in PDP10 assembler. The Fortran-10 on the DEC-1091 was a superset of Fortran-77. The VAX offered the features of language independent compiled object code which allowed mixing languages.

The Fortran IV lacked variable memory allocation. In other words, a program compiled for, say, a large matrix inversion would use the same huge memory space if a small or large matrix is to be inverted. Since the frequency at which a batch program was excuted was inversely proportional to the required memory space, Yvon Siret developed a clever variable memory allocation routine for the DEC10 and said to A.Filhol "These are the 10 program lines I'm most proud of in my entire career as a computer scientist."

The Pascal language was also used for data processing and scientific calculations (e.g. ABFfit, A. Filhol, ILL87AN22T, ILL90AN08T), first on the Apple Macintosh computers and then on the VAX. The DEC compiler implemented several extension to the norm, especially arrays with varying size (i.e. runtime memory management). On the Mac the programmer had to develop its own array memory management.

Mathematical support

The two applied mathematicians, Yvon Siret and Christian de Polignac were supportive of new techniques such as introducing Bayesian analysis (with Mendes in initial years). This was supplemented by encouragement from Hossfeld (Juelich). Quantitative Maximum Entropy (from the Cambridge Group with Daniell and Skilling) was presented by Sivia from RAL who made a number of visits. For the most part scientists used conventional least-squares fitting procedures for model fitting which also provided some indications of errors in the final results.

Here a funny anecdote about Quantitative Maximum Entropy calculations on D3 data. On mainframe computers (32-bits) the convergence was very slow so it was a shock to find a very fast convergence on a small and much slower Macintosh Plus. The Apple SANE numerical library[1] being able to handle huge numbers in the range 1.9 10-4951 to 1,1 104932) this revealed truncation problems on "normal" computers even when the double precision was used.

The reactor division performed calculations using standard packages on the Central Computer for source desgn (Paul Ageron, Robert), and several large international standard packages were installed.

Numerical support (Siret, de Polignac) maintained use of well-known scientific software libraries, the IBM Scientific Software Package, LINpack and CERN libraries, the Harwell libraries and the UK NAG libraries etc. For the PDP10 the source code was usually compiled and tested in-house; for the VAX computers pre-compiled libraries were available. Later for Unix most libraries were recompiled for the four common unix systems, HP-UX, SGI-IRIX, DEC-Alpha, and linux. With linux came the possibility of license-free GNU software, though for high performance, multiprocessor Fortran, a PGFortran license was bought., which included multi- processing support. The most expensive licenses were the recurrent costs for the IDL package which formed the basis of several instrument display and treatment packages (e.g. LAMP, Didier Richard)

Standard ILL utilities for accessing data were maintained by Calcul Scientifique. Initially written in assembler these were mostly written in Fortran. The VMS system had a common object file allowing languages to be mixed. Later linux systems using gcc had interoperable language capabilities, and with but minimal changes the same programs could be recompiled to run on PC-Windows, Macintosh, and Linux, using appropriate versions of the PGplot graphics library, IDL, Matlab etc.

[1] "Apple Numerics Manual" 1988, 2nd edition, Addison-Wesley.

Main page          Previous   ---   Top 8/14   ---   Next