Thread View: comp.sys.transputer
2 messages
2 total messages
Started by dan Daniel Cohen
Sat, 03 Feb 1990 03:00
STRAND88
Author: dan Daniel Cohen
Date: Sat, 03 Feb 1990 03:00
Date: Sat, 03 Feb 1990 03:00
65 lines
2959 bytes
2959 bytes
uunet!wuibc3!gerald writes: To: dan@ssti Subject: What is STRAND ? I have been seeing the name STRAND88 going by for some time on the Transputer news group, but I have never seen an explanation of what it is. Could you give me a short description of STRAND... Sounds like we're not getting our marketing done! Strand is a parallel programming language with research roots in the PARLOG group at Imperial College, the Concurrent Prolog group at the Weitzman Institute, and the ICOT project. Although its' origins are in logic programming, it's a dataflow language as much as an LP language ( although some people say it's an OOP language! ) STRAND88 is an implementation of the Strand language produced by Strand Software Technologies in conjunction with Ian Foster and Steve Taylor. It's available on a number of systems - parallel and sequential - including transputers ( mostly plug-in boards ). Strand is good for parallel programming because of its' computational model; a program runs by the repeated reduction of processes - when one process is reduced others may be spawned - until the processes are defined by built-in kernels. Processes communicate via shared variables, which we implement using message-passing when the processes run on different processors. The point is that the code to achieve inter-process communications is the same, regardless of whether the processes are running on the same processor or on different processors ( in fact, the programmer does nothing; both processes refer to the variable and the Strand system handles the communication ). That makes it good for prototyping since the process-processor allocation is not set in stone and can be changed for experimentation. There's a foreign function interface ( C and Fortran at the moment ) so you don't have to do everything in Strand - some use Strand just for the top level: starting processes and handling the communication between them, while the 'real work' is done by conventional code. If anyone wants more information, feel free to contact me ( if you're in N. America ) or the UK office if you're elsewhere. Ignore the return address in the header - I have to fix sendmail.cf! Otherwise, we'll be at NATUG 3 in Santa Clara in April. Daniel Cohen Strand Software Technologies Inc. 15220 NW Greenbrier Parkway, Suite 350 Beaverton, OR 97006, USA Tel: +1 (503) 690 9830 e-mail: dan%ssti@uunet.uu.net or uunet!ssti!dan UK office: Strand Software Technologies Greycaine Road Watford, Herts. WD2 4JP Tel: +44 923 247707 e-mail: STRAND88@ail.co.uk
Re: STRAND88
Author: Nick Rothwell
Date: Mon, 05 Feb 1990 13:40
Date: Mon, 05 Feb 1990 13:40
46 lines
2650 bytes
2650 bytes
In article <9002030300.AA00916@>, dan% (Daniel Cohen) writes: >Strand is a parallel programming language with research roots >in the PARLOG group at Imperial College, the Concurrent Prolog group >at the Weitzman Institute, and the ICOT project. Although its' origins >are in logic programming, it's a dataflow language as much as an LP >language ( although some people say it's an OOP language! ) Sounds just like Shapiro's Concurrent Prolog to me. Concurrent Prolog is quite nice (as long as you don't want to backtrack, since it doesn't), but it has some flaws, such as the fact that the guards are supposed to execute (and unify) without affecting the rest of the system, and I could never figure out a way of ensuring this without a huge overhead (Shapiro's papers seem to punt on this one); so, my compiler didn't bother. Does Strand deal with this? If Strand is aimed at a local-memory model of computation, how is store management handled? (not to mention chains of unification and all this nasty stuff.) What sort of type system does the language have? Polymorphic? Dynamic? Does it address the problems associated with programming in the large (modules, interfaces, abstraction)? - or is that outside its scope? >Strand is good for parallel programming because of its' computational >model; a program runs by the repeated reduction of processes - when >one process is reduced others may be spawned - until the processes >are defined by built-in kernels. This sounds like parallel combinator reduction, which is fine as an intermediate form but I don't know if I'd like to program that way. Could you post some examples of Strand programs? (Do you have a mailing list, electronic or otherwise?) It's interesting to hear what it can do, but that's not much use without some actual examples of code to illustrate some of the above points. >Daniel Cohen Nick. -- Nick Rothwell, Laboratory for Foundations of Computer Science, Edinburgh. nick@lfcs.ed.ac.uk <Atlantic Ocean>!mcvax!ukc!lfcs!nick ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ...als das Kind, Kind war...
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads