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