Next: The TONS idea
Up: Introduction
Previous: The need for parallelization
  Contents
A computing platform
A friend of mine came up with the idea to build a new computing
environment, one that would do the things right, we felt other
environments did wrong. We have been discussing this openly with other
people as well, and therefore the number of things we find is wrong in
existing tools is large, and I am just going to mention a few key
issues here:
- We need a good front-end language (the language the end-user
uses), with no unnecessary historical luggage (odd or ugly syntax
due to back-compatibility concerns). Personally I find Fortran to
be an excellent example of truly ugly syntax (consider the
indentation requirements for example - why would anyone want that
in a language ?).
- The computing ``engine'', the backend, must be
efficient enough, so that real production code can be run on this
system with acceptable performance (this is what MatLab does
wrong).
- Because we think cluster computing is going to be widely used,
and because we hate to parallelize code manually, the computing
environment should also be able to automatically parallelize and
distribute computations on a cluster of machines. The C
programming language is especially hard to parallelize
automatically, due to the freedom it gives the programmer to
reference memory as she pleases. This is an unnecessary freedom in
numerical computing (it's great if you write operating system
kernels, but we don't care about that in a numerical computing
language).
- The software must be open source1.1. This is necessary if we ever want to
build anything that can compete with existing tools. We cannot build
a replacement for MatLab, RLab, and the others, if
we keep the development process closed and the code a secret.
After having decided upon these goals, we found that the project and
the various sub-projects needed a name.
The name of the computing environment as a whole, became
TONS. In the beginning it was short for ``Toolkit
for Open Numerics''. Later we changed it to
be ``Tons of Numerics''. Note that
the latter is a recursive acronym, I think that was the main reason
for the change. However that story is not all that important for the
project.
The front-end language has been dubbed TAL, for TONS
Algorithmic Language. But since this language still
only exists in our minds and not in the form of real code, I will not
discuss this language any further here.
This project touches aspects of several of the goals mentioned above.
An efficient virtual machine was developed, and it currently has the
capability to automatically parallelize and distribute code to a
cluster of machines, with some restrictions and limitations of course.
The TONS system today, consists only of the code that I have written
in order to examine the possibilities to perform automatic
parallelization and distribution of calculations. Therefore, when I
refer to the TONS project in any of the following, I refer to the code
that I wrote for this project and this report.
Next: The TONS idea
Up: Introduction
Previous: The need for parallelization
  Contents
1999-08-09