Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!dan%@@uunet.UU.NET From: dan%@@uunet.UU.NET (Daniel Cohen) Newsgroups: comp.sys.transputer Subject: STRAND88 Message-ID: <9002030300.AA00916@> Date: 3 Feb 90 03:00:28 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 65 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