Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uwm.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!emory!hubcap!mmh From: mmh@cs.qmw.ac.uk (Matthew Huntbach) Newsgroups: comp.parallel Subject: Re: What sort of applications are worth parallelising? Message-ID: <8199@hubcap.clemson.edu> Date: 1 Mar 90 21:27:35 GMT Sender: fpst@hubcap.clemson.edu Lines: 30 Approved: parallel@hubcap.clemson.edu In article <8117@hubcap.clemson.edu> ken%aiai.edinburgh.ac.uk@NSFnet-Relay.AC.UK (Ken Johnson) writes: >A sub-question: What sort of application is worth parallelising with a >parallel logic language like Strand-88 or Parlog? A lot of the things these languages are useful for aren't really parallel. They are just easy to express in a pseudo-parallel style. For real parallelism using Strand/Parlog, anything which doesn't involve array access (which cuts out a lot of traditional parallel applications which are often based on array processors). The languages work fine on most divide-and-conquer type algorithms. However the current versions of Strand/Parlog are not much use for OR-parallel type operations or speculative computation i.e. the sort of thing where you know you need the result of calculating A or B, but having the spare processors you calculate both before you know which is required. The reason is that usually you know that you are more likely to need say A than B. The languages don't give you a construct which says "calculate A, and calculate B if you have the spare processing capacity to do so". Such a construct could easily be added to Strand/Parlog - I've been working on it but so far haven't had much luck persuading people it would be useful. At the moment all you can say is "evaluate A and B in parallel" and it is up to the underlying system which is given preference if there are no spare processors available. Matthew Huntbach