FORM is a Symbolic Manipulation System. Its original author is Jos
Vermaseren of Nikhef, the Dutch institute for subatomic physics which is
part of the Dutch physics granting agency FOM. Over the years several other
people have made contributions. These people are: Albert Retey, Denny
Fliegner, Andrei Onyshenko, Markus Frank, Misha Tentyukov and Takahiro Ueda
(all at the univertity of Karlsruhe and paid for by the DFG) and Jens
Vollinga, Irina Pushkina and Jan Kuipers (all at Nikhef and paid for by
FOM). Much systems support has been given by the late Eric Wassenaar and by
Ton Damen, both at Nikhef. Organizational support has been provided by Hans
Staudenmaier and Hans Kühn (Karlsruhe) and the directors of Nikhef. Many
people have put in effort to provide bug reports.
Symbolic Manipulation Systems exist in two varieties. In the most popular
variety the system is set up to mimic the way humans work with formulas as
much as possible. This carries the penalty of a certain loss in efficiency.
For most users the efficiency isn't an issue. In the other variety the
system is set up to make efficient use of the possibilities of a computer
to allow fast processing of very large formulas. At first such systems are
a bit harder to use, but they are far more powerful and hence can be used
for solving problems that really tax the available resources. An analogy is
that there are far more people using calculators than that there are people
programming in FORTRAN or C. Most of the systems in the last category are
FORM is a system that tries to use the computer resources as efficiently as
possible, while at the same time trying to be as general as possible. Its
internal representations are far more compact than those of the popular
Computer Algebra Systems (CAS), but at the same time this has not been overdone
as speed of processing is the major optimization criterion. What is special
about it is that formulas can be disk based without big penalties in
the performance. This means that the available diskspace puts the
practical limits on the size of expressions, rather than the amount of RAM
It would be a mistake to see FORM as a faster version of the popular
Computer Algebra Systems (CAS). Its programming model is completely different.
For some people there may be an initial threshhold, but once this is passed
the language is experienced as rather logical and natural. Very often
people use both a CAS and FORM and create hybrid programs that move
formulas between them. This way complicated problems both in physics and in
mathematics have been solved.
The development of FORM started in 1984 and has been done on the following sequence of computers:
The versions of FORM are at the moment:
Because parallel processing involves extra overhead which is not needed in the sequential version the theoretical limits for improvement will never be reached. In addition the parallelization model employs a master and N workers, in which there are tasks that involve only the master to be active while all the workers wait. This means that there will be saturation effects when the number of processors becomes rather large. The theoretical limits would be T > 1/P for TFORM and T > 1/(P-1) for ParFORM in which P is the number of processors and T the total clock time, normalized to the time needed by the sequential version. Future improvements would involve the reduction of the time spent by the master process while the workers are waiting. The current versions have been constructed with correctness in mind, and getting the system to work properly. Some work has been done in the field of optimizations, but there is still room for improvement. Experience with using these systems should show where the bottlenecks are. Also the trends in hardware development will play a role. The eventual improvement when using a system with several processors depends on the way the problem is solved and programmed. Many modules, each with a very small amount of work per term don't give as dramatic an improvement as modules in which there is much work per term. The user should experiment.