[comp.sys.transputer] Strand88 Announcement

root@ail.co.uk (Operator) (09/19/89)

Strand Software Technologies is pleased to announce the availability
of STRAND88(TM).  Following extensive testing, this is the first full
release of the Strand language which is based on STReams and AND 
parallelism.

STRAND88 addresses the needs of programmers who wish to explore
the programming challenges posed by the rapidly expanding number
of parallel processor hardware types becoming available. The vital
difference between STRAND88 and any other parallel processing
language is that the same code runs efficiently on single processor
machines such as workstations as well as on a growing list of parallel 
architecture hardware, including both shared memory and distributed 
memory machines, based on most of the common processor types e.g.  
Intel 80386, Motorola 68020/30, SUN Sparc, Inmos Transputer and
NatSemi 32032.  (Further details of specific hardware platforms
supported are shown below.)

STRAND88 offers the programmer:-

PARALLEL SEMANTICS.

Many widely used systems analysis tools and development
methodologies are based on the technique of identifying parallel
streams of computation which, for execution on von Neumann
machines, have to be arranged in a particular sequence.
STRAND88's parallel semantics allows these parallel streams
to be mapped directly into executable STRAND88 code to take full
advantage of available parallel hardware.  The continued use of
established methodologies is a major benefit but, in addition,
applications written in STRAND88 will run on any configuration of
parallel hardware, ranging from those with only one processor to
those with thousands, without modification.

PORTABILITY.

The design of STRAND88 and the implementation techniques
employed allow applications written in STRAND88 to migrate to
the latest generation of hardware without re-programming effort
giving the benefit of 'future-proofing'.  Programmers will also
appreciate being liberated from dependency on a particular
hardware manufacturer.

PROTECTION OF INVESTMENT IN EXISTING APPLICATIONS.

We have designed a foreign language interface into STRAND88
which allows exisiting applications, written in sequential languages
to be re-analysed (through functional and data decomposition)
and a STRAND88 harness added to them to allow the parallelism
latent in them to be identified and exploited.  At present C and
Fortran interfaces are provided but more will follow.

STRAND88 PRICES AND AVAILABILITY:-
In the tables below, the first figure is the $US price (for USA) and the 
second figure is the pounds sterling price (for the rest of the world 
except that prices in Japanese Yen are also available - see contact details 
below).

EDUCATIONAL PRICES

HARDWARE TYPE

PC PLUG-IN TRANSPUTER BOARDS	
Supporting Helios, Parasoft Express	

WORKSTATIONS						
Sun 3, Sun 4, System V Unix/80386 Workstations and Atari ATW
Transputer Workstation

WORKSTATION PLUG-IN TRANSPUTER BOARDS
Supporting Helios, Parasoft Express

	All of the above at $500 (350) for a single unit license.


SHARED MEMORY SUPERCOMPUTERS
Sequent Symmetry and Balance
Encore MultiMAX	

DISTRIBUTED MEMORY SUPERCOMPUTERS
Intel iPSC/2

MULTI TRANSPUTER SUPERCOMPUTERS
Meiko Computing Surface

	All of the above at $1250 (850) for a single unit license.


MEDIA AND DOCUMENTATION  

A pack which includes one set of documentation and the
appropriate media is included in the above prices.  Additional sets
of documentation are available at $165 (110) per set.


NEW RELEASES AND UPGRADES

New releases and upgrades, as and when available, will be priced
at $200 (125) per pack per hardware type to include media,
documentation and delivery to the site.

EDUCATIONAL SUPPORT AND MAINTENANCE

Such agreements  are available at 25% of the Unit License fees
per annum.

SITE LICENSES

Educational establishments have, as an alternative to single unit
pricing the option to license the software on a per site basis for
the payment of a license fee of $5,000 (3,500) for all versions
of Strand on all supported hardware.

The Licensee may at any time now and in the future use as many
copies of the software as required on the site.  One copy of the
appropriate media and full documentation will be supplied for
each hardware type required at $250 (150) per pack delivered
to the site.

The Site Licensee is also entitled to any future additional hardware
implementations of Strand under these same terms and conditions.

Site License fees will be invoiced at the time of dispatch of the
initial software order.

EDUCATIONAL SUPPORT AND MAINTENANCE

Educational Support and Maintenance is available for Site Licensees
including hotline support for the sum of $1,250 (900)  per annum.
Unless otherwise agreed, each site must have one named technical
contact through whom all communications with Strand Software
Technologies Inc. regarding technical support issues must be routed.


RUN TIME LICENCES

Versions of Strand are available for installation on target host
machines which are intended solely to run applications.  These are
available as Educational Run Time licenses at $150 (100) per copy,
multiple copies by negotiation.

EDUCATIONAL PRICING IS ONLY AVAILABLE TO RECOGNISED
EDUCATIONAL ESTABLISHMENTS AND WHERE THE USE IS FOR
TEACHING AND NON-COMMERCIAL RESEARCH PURPOSES ONLY.


COMMERCIAL PRICES			Single		Annual
					Licence		Maint
HARDWARE TYPE				Fee		Charge
					$		$
					(sterling)	(sterling)
PC PLUG-IN TRANSPUTER BOARDS
Supporting Helios, Parasoft Express 	1,500		400
					(1,000)		(300)
WORKSTATION PLUG-IN TRANSPUTER BOARDS
Supporting Helios, Parasoft Express 	3,500		700
					(2,000)		(400)

WORKSTATIONS	
Sun 3, Sun 4, System V Unix/80386
Workstations and Atari ATW		6,500		1,300 
Transputer Workstation			(4,000)		(600)

SHARED MEMORY SUPERCOMPUTERS	
Sequent Symmetry and Balance		16,000		3,200
Encore MultiMAX				(10,000)	(1,500)
 
MULTI TRANSPUTER SUPERCOMPUTERS	
Meiko Computing				16,000		3,200	 
Surface					(10,000)	(1,500)
							
DISTRIBUTED MEMORY SUPERCOMPUTERS	
Intel iPSC/2				20,000		4,000
					(12,000)	(1,800)

MEDIA AND DOCUMENTATION

A pack which includes one set of documentation and the
appropriate media is included in the above prices.  Additional
sets of documentation are available at $165 (110) per set.

RUN TIME LICENSES

Versions of Strand are available for installation on target host
machines which are intended solely to run applications.  These are
available as Commercial Run Time licenses at 5% of the List Price
of the target machine per copy, multiple copies by negotiation.

ANNUAL MAINTENANCE CHARGE
 
Includes hotline support and new releases of the software
originally licensed and is payable annually in advance.  It will be
billed at the time of dispatch of the software and on each
anniversary thereafter 

The software may be subject to encryption.

Site Licenses are available by negotiation.

The prices shown do not include local sales taxes.



For further information, please e-mail:-

Strand88@ail.co.uk

or contact:-

In USA (from 14 August 1989):-

Strand Software Technologies Inc.,
15220 N.W. Greenbrier Parkway, Suite 350,
Beaverton, OR 97006

Tel. No. 503 690 9830	Fax. No.503 690 9797

In  the rest of the world:-

Strand Software Technologies,
Greycaine Road,
Watford,
Herts, WD2 4JP
UK

Tel. No. 0923 247707 (within UK) or +44 923 247707 (elsewhere in Europe)
Fax. No. 0923 247836 (within UK) or +44 923 247836 (elsewhere in Europe)

STRAND88TM  and StrandTM are trademarks of Artificial Intelligence Ltd.
Strand Software Technologies is a division of Artificial Intelligence Ltd.

gdburns@TBAG.OSC.EDU (Greg Burns) (09/21/89)

I have some questions about Strand88 that may help more folks on the
mailing list understand more about the system.  I've attended a talk
about it but I don't remember it very well (was there something about
logic programming in there?) and I don't have any literature on Strand88.

So I am working strictly from the announcement...

* What is the paradigm of communication between parallel streams?
  (message passing, procedural locks, tuple space...)

* I take it that there is nothing automatic going on here in terms of
  finding parallelism.  Is that true?

* How does one "use" processors?  Do we place things, as with Occam?
  Do we ask for a certain number of processors in a particular arrangement
  and the placement is automatic?  Do we start from a single stream and
  and new ones are created by (I presume) Strand88 statements, do they
  get automatically placed on other processors?  Does the answer to
  this question differ for functional and data parallelism?

* How does implementation of Strand88 differ between multiprocessors and
  multicomputers (since both are supported)?  Would Strand88 be
  applicable to a SIMD box like the Connection Machine?

* Would it be possible to post a very small demonstration program using
  Strand88 for a data decompostion problem (like the 1D wave equation,
  for example)?

* A lot of people would say that Linda possesses the same inherent
  advantages as Strand88 (though I don't understand the scalability,
  performance-wise, of Linda (nor of Strand88 - yet)).  Are we talking
  apples and oranges or would you cite advantages over Linda?

--Greg

vishnu@CIS.OHIO-STATE.EDU (Prasad Vishnubhotla) (09/21/89)

There is a book "Strand: New Concepts in Parallel Programming" by Ian Foster
and Stephen Taylor published by Prentice Hall. It does talk about some of
the mapping methods.

-- Prasad Vishnubhotla
   Computer Info Sc
   Ohio State Univ.

JFlorentin@ail.co.uk (09/25/89)

 Greg,

>I have some questions about Strand88 that may help more folks on the
mailing list understand more about the system.  I've attended a talk
about it but I don't remember it very well (was there something about
logic programming in there?) and I don't have any literature on Strand88.

See the book 'Strand: New concepts in parallel programming' by Ian
Foster and Stephen Taylor, Prentice-Hall.

>* What is the paradigm of communication between parallel streams?
  (message passing, procedural locks, tuple space...)

Processes communicate via logical variables which can only be written to
once and which can hold data structures whose elements can be instantiated
incrementally by different processes.  This means that not only can actual 
data elements be passed across, but so can variables to hold reply data.

>* I take it that there is nothing automatic going on here in terms of
  finding parallelism.  Is that true?

Execution of programs in Strand is totally parallel.  There is no sequencing 
from which parallelism has to be extracted.

>* How does one "use" processors?  Do we place things, as with Occam?
  Do we ask for a certain number of processors in a particular arrangement
  and the placement is automatic?  Do we start from a single stream and
  and new ones are created by (I presume) Strand88 statements, do they
  get automatically placed on other processors?  Does the answer to
  this question differ for functional and data parallelism?

In the current Strand88 implementation processes have to be allocated
to processors by the programmer.  Since small processes are being created
and disappearing all the time the spread of processes is highly dynamic.  
Allocation operations can be relative according to a virtual parallel machine,
e.g. next on a ring, or up on a mesh.  Strand88 maps various virtual 
machines onto the available physical machine.  Data and functional
parallelism program the same way.

>* How does implementation of Strand88 differ between multiprocessors and
  multicomputers (since both are supported)?  Would Strand88 be
  applicable to a SIMD box like the Connection Machine?

Programming is the same.  For multicomputing more rugged communication
is needed.  Strand has not yet been tried on SIMD machines.  SIMD 
implementations are for future investigation.

>* Would it be possible to post a very small demonstration program using
  Strand88 for a data decompostion problem (like the 1D wave equation,
  for example)?

Look at the above Foster/Taylor book.

>* A lot of people would say that Linda possesses the same inherent
  advantages as Strand88 (though I don't understand the scalability,
  performance-wise, of Linda (nor of Strand88 - yet)).  Are we talking
  apples and oranges or would you cite advantages over Linda?


Strand inter-process communication is strictly disciplined by the assign
once only rule and by having synchronisation linked to communication,
allowing a programmer to ignore synchronisation - this is an important part
of Strand.  Strand garbage collects messages.  Because of the Strand
rules, programs can be read declaratively, ignoring message passing
mechanics.  Linda message passing needs programmer imposed discipline, 
it is not garbage collected and not automatically tied to process
invocation synchronisation.  A collection of processes communicating
via Linda cannot be read declaratively.

John Florentin
Strand Software Technologies
Watford England