Re: S-PLUS on multi-processor machines [was: S+ and Bi processor machine]

Douglas Bates (bates@stat.wisc.edu)
01 Feb 1998 13:01:17 -0600


ripley@stats.ox.ac.uk (Prof Brian Ripley) writes:

> Similar considerations apply to Unix, but in both cases it is a bit more
> complicated than multiple threads. Windows NT and Unix (e.g. Solaris) are
> multi-tasking operating systems and can (and do) run multiple tasks
> simultaneously on multiple processors. So one immediate benefit of two
> processors is that system tasks do not need to interrupt the S-PLUS
> application; another is that the machine may be usable for other tasks
> (editing, for example).

> Using more than one processor is a form of parallelization, and this needs
> thought for most statistical computations. I often use a bulk form of
> parallelization, for example by running two or more folds of a K-fold
> cross-validation experiment at the same time. If you do run more than
> one copy of S-PLUS it is easiest to ensure that they have separate working
> directories. I would have thought that almost all large statistical
> computations could be re-organized into independent pieces to be run on
> separate copies of S-PLUS.

As described at http://cm.bell-labs.com/stat/project/S/, one of the
objectives in the evolution of the S language is support for event
management, with S-level facilities for specifying events and actions.
One approach being explored for this is support for separate threads
of execution within the same S process. Thus one could, for example,
have a compute-intensive task within S running in the background while
still carrying on interactive work with S.

Depending upon implementation details the different threads could be
executing on different processors in a multiprocessor machine.

The event management support is one of the goals for version 4 of the
S language. This is the language that will form the base for the
S-PLUS 5.0 product.

Another stated goal for S-PLUS 5.0 is support for the Linux operating
system. Linux kernels have provided symmetric multiprocessing since
version 2.0.0 of the kernel. The combination of a multiple processor
Intel-based machine and the Linux operating system can be quite
cost-effective. For example I am writing this on a dual-processor
Pentium Pro machine that cost (US)$3300 and runs Linux. It easily
outperforms UltraSparc 2 workstations from Sun that cost 4 to 6 times
as much.

Please be aware that I am talking about goals here. Exactly what
support for operating systems and for separate threads of execution
will be available when S-PLUS 5.0 is released will be determined by
Mathsoft, of course.