Re: FW: [Haskell] parallel seq

2006-05-04 Thread Phil Trinder
Chad,

 I was thinking about the dynamic behavior of par, and there's something
 that's a little confusing to me. Am I right in understanding that (x
 `par` y) evaluates to y, and may or may not evaluate x along the way?

The reason that par doesn't necessarily evaluate it's 1st argument is that
typical parallel Haskell programs contain vast amounts of potential
parallelism. So rather than create a relatively heavyweight thread and be
forced to administer it, e.g. schedule it for every possible expression
that could be evaluated in parallel, the expression is 'sparked', i.e. a
lightweight action that simply notes that the expression *could* be
evaluated in parallel.

 I think it would be easier to reason about if we knew that x would be
 evaluated, either by a newly-spawned thread or by the parent thread.

Yes, although we usually reason by saying trhat the 'potential
parallelism' in two expressions is the same, i.e. making the assumption
that all sparked expressions become threads.

 If
 I'm understanding this correctly, this could be done by defining

 x `pSeq` y = x `par` y `seq` x `seq` y

This seems plausible.

All the best,

Phil

 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 On Behalf Of Scherrer, Chad
 Sent: 25 April 2006 21:35
 To: haskell@haskell.org
 Subject: [Haskell] parallel seq

 I was thinking about the dynamic behavior of par, and there's something
 that's a little confusing to me. Am I right in understanding that (x
 `par` y) evaluates to y, and may or may not evaluate x along the way?

 I think it would be easier to reason about if we knew that x would be
 evaluated, either by a newly-spawned thread or by the parent thread. If
 I'm understanding this correctly, this could be done by defining

 x `pSeq` y = x `par` y `seq` x `seq` y
 (seq has higher precedence than par)

 When (x `pSeq` y) is evaluated, x may or may not be evaluated by a new
 thread. The parent thread continues along evaluating y. Then the parent
 makes sure x was evaluated before finally returning y.

 I've not seen this approach used before -- Is there something I'm
 missing that makes using pSeq as above just silly?

 Thanks!

 Chad Scherrer
 Computational Mathematics Group
 Pacific Northwest National Laboratory

 Time flies like an arrow; fruit flies like a banana. -- Groucho Marx
 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell



--
Phil Trinder
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.macs.hw.ac.uk/~trinder


___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Gph] [Fwd: Re: [Haskell] Implicit parallel functional programming]

2005-02-03 Thread Phil Trinder
Satnam,

 Does anyone know of any other work on implicitly
 parallelizing functional programs for fine grain parallel execution?

The skeletons community implicitly replace higher-order functions with
parallel implementations:
  http://homepages.inf.ed.ac.uk/mic/Skeletons/

There's an excellent survey of parallel FP in
  Research Directions in Parallel Functional Programming,
  Hammond K. and Michaelson G. (Eds) Springer Verlag ISBN 1-85233-092-9
  (2000).
  http://www-fp.dcs.st-and.ac.uk/pfpbook/

 there is interesting work with pH at MIT.

Is anyone working on pH at the moment?


Phil


  Original Message 
 Subject: Re: [Haskell] Implicit parallel functional programming
 From:[EMAIL PROTECTED]
 Date:Wed, January 19, 2005 4:36 am
 To:  Satnam Singh [EMAIL PROTECTED]
 Cc:  Haskell@haskell.org
 --





 On Tue, 18 Jan 2005, Satnam Singh wrote:

 I'm trying to find out about existing work on implicit parallel
 functional programming. I see that the Glasgow Haskell compiler has a
 parallel mode which can be used with PVM and there is interesting work
 with pH at MIT. Does anyone know of any other work on implicitly
 parallelizing functional programs for fine grain parallel execution?

 The emergence of multi-core processors makes me think that we should
 look at implicit parallel functional programming in a new light.

 At Brooklyn College, we are working on a version of Parallel Haskell that
 does not require PVM. Instead, we use Internet protocols and the Mosix
 patches to Linux.

 Murray Gross
 Brooklyn College, CUNY
 Metis Project


 ___
 Haskell mailing list
 Haskell@haskell.org
 http://www.haskell.org/mailman/listinfo/haskell



 ___
 Gph mailing list
 [EMAIL PROTECTED]
 http://www.macs.hw.ac.uk/mailman/listinfo.cgi/gph



--
Phil Trinder
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.macs.hw.ac.uk/~trinder

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Deadline for JFP Special Issue on Parallel FP Postponed

2003-09-16 Thread Phil Trinder
The submission deadline for the JFP special issue on High-Performance
Parallel Programming has been postponed to 31st October 2003, see
  http://www.macs.hw.ac.uk/~trinder/jfpCFP.htm

Phil

--
Phil Trinder
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.macs.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


CFP: JFP Special Issue on Parallel Functional Programming

2003-03-27 Thread Phil Trinder
  Journal of Functional Programming Special Issue on 

Functional Approaches to High-Performance Parallel Programming

Guest editor: Phil Trinder
Submission deadine: 26th September 2003
Web Page: http://www.cee.hw.ac.uk/~trinder/jfpCFP.htm

High-performance parallel programs are hard to write.  For a long time
it has been recognised that ideas and approaches drawn from functional
programming may be particularly applicable in this area because

  * Concurrent stateless computations are much easier to coordinate. 
  * High-level coordination reduces programming effort. 
  * Declarative notations are amenable to reasoning, i.e. to transformation, 
derivation and analysis. 

After a long gestation, this potential is now finally being realised
in practice.  Declarative techniques are being used to construct
significant parallel and high-throughput systems, e.g. real-time image
analysis and high-end telephone exchanges. Many production
systems use conventional imperative technologies in a declarative way,
e.g. coordinating legacy Fortran code.  Furthermore, the recent
emergence of computational Grids pose new challenges that the
functional paradigm is well-placed to address: grids offer enormous
amounts of computing power, but require sophisticated and dynamic
management that is hard to provide in a low-level paradigm.

A special issue of the Journal of Functional Programming will be
devoted to functional approaches to high-performance parallel
programming. Full-length, archival-quality submissions are solicited
on topics including but not limited to the following.

  * Skeletons and higher-order parallel program construction
  * Parallel Program development methodologies, including derivation 
and optimisation.
  * Parallel program modelling, including static analyses to predict 
properties (e.g. cost models) and dynamic analyses to profile execution 
properties.
  * Parallel functional languages, including design, semantics, 
implementation and performance.
  * High-performance functional and skeleton applications.
  * Adaption of high-performance functional technologies for emerging 
architectures such as the Grid. 

Papers covering a fusion of functional and more conventional
technologies are encouraged, in addition to papers on purely
functional technologies.  

Submissions should be sent to the guest editor Phil Trinder
([EMAIL PROTECTED]), with a copy to Jenny Parker
([EMAIL PROTECTED]). Submitted articles should be sent in PDF or
Postscript format, preferably gzipped.  In addition please send as
plain text: title, abstract, and contact information.  The submission
deadline is 26th September 2003, and for other submission details,
please consult an issue of the Journal of Functional Programming or
see the Journal's web pages.

--
Phil Trinder
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.macs.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


Re: Q: GHC, Parallel libraries

2002-10-15 Thread Phil Trinder

Jan,

Simon's correct: the latest publicly-available version of Glasgow 
parallel Haskell is 4.06. We have a development version based on 5.02 that 
we're using locally and hope to merge it back into the main GHC repository 
soon - approximately a month from now. 

Alway happy to chat: When do you need it, and what parallel platform will you 
use? We get good results on x86 Linux Beowulf clusters, and Sun SMPs.

Phil 

 
On 15 Oct 2002 11:46:25 +0200 Jan Kybic [EMAIL PROTECTED] wrote:

 Hello,
 I would like to parallelize my program in Haskell but I have
 difficulties getting started. I would therefore appreciate any
 help or pointers.
 
 I am using ghc-5.04 on i386 Linux. I installed from a binary bundle on
 the ghc website. I thought I would just compile with
 --parallel and I would get acess to the 'par' primitive. But no, it
 seems that the parallel libraries are missing on my system. If I
 understood correctly, they are files with _mp in their name, right?
 I looked on the web for a precompiled binary version of those
 libraries, in vain. I found the GUM web page but it seems to be much
 outdated, based on the ghc-4.06. Is there any more recent version available?
 
 Then, I tried to get the ghc-5.04.1 source distribution and compile it
 from source. I found the building guide on the ghc site but it talks
 only about fptools in general and does not mention the ghc specificities.
 The build (./configure --prefix=$HOME ; make) fails. First of all it
 could not find 'readline', which I solved by some config.mk hacking,
 now it fails with: Main.hs: can't locate import `Exception' 
 apparently because the binary bundle directory hierarchy is different
 from what the Makefile expects. 
 
 I also tried to build only the libraries. It first failed with not
 being able to find the ghc-pkg-inplace, after changing this to the
 installed version it fails with 
 Reason: No such file or directory
 File: ../../ghc/driver/package.conf
 
 Any help appreciated. Thanks,
 
 Jan
 
 -- 
 -
 Jan Kybic [EMAIL PROTECTED]  Odyssee, INRIA, Sophia-Antipolis, France
or [EMAIL PROTECTED],tel. work +33 492 38 7589, fax 7845
 http://kybic.host.sk/
 ___
 Haskell mailing list
 [EMAIL PROTECTED]
 http://www.haskell.org/mailman/listinfo/haskell

--
Phil Trinder
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.macs.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: GPH: Re: GpH Mosix

2002-09-12 Thread Phil Trinder

Robert,

Thanks for this.

Phil

On Wed, 11 Sep 2002 15:20:03 +0100 (BST) Robert F. Pointon 
[EMAIL PROTECTED] wrote:

 On Wed, 28 Aug 2002 [EMAIL PROTECTED] wrote:
  On Wed, Aug 28, 2002 at 10:46:34AM +0100, Phil Trinder wrote:
   Paul,
   
   The GdH implementation is currently used here, and is basically in
   beta-release form. If you would use it we could wrap up a and
   X86/Linux version for you.
  
  That will be very sweet! I'd love to play with this thing ;-)
  Please post the link when it is ready.
 
 A binary snapshot of GdH has been available since February, see the
 bottom of the GdH page:  http://www.cee.hw.ac.uk/~dsg/gdh
 Note: best to install and test GpH first to verify that you have 
 the required libraries... see ~dsg/gph

 cheers,
 
 ___ 
 ][_)  | +44 (0)131 451 3328
 ]| \obert Pointon | http://www.cee.hw.ac.uk/~rpointon
 --+--
 Dept of Computing  Electrical Eng.
 Heriot-Watt University
 Riccarton
 Edinburgh, EH14 4AS


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



GpH Mosix

2002-08-28 Thread Phil Trinder

Paul,

The GdH implementation is currently used here, and is basically in beta-release 
form. If you would use it we could wrap up a and X86/Linux version for you.

The GUM implementation of GpH and GdH uses very simple communication (mainly 
point to point, with a single barrier synchronisation, and the communication is 
restricted to just 3 C modules. As a result it can be readily ported to new 
communications libraries, e.g. MPI and CMMP (bespoke CM5 library) versions 
exist.

 Then what will Mosix provide when you can have
 a PVM cluster without Mosix running the same thing?

Don't know a lot about Mosix, but if the PVM calls in the 3 GUM communications 
modules can be replaced with Mosix shared-memory routines that would give a low 
effort port of GUM to a Mosix cluster. I'd expect Mosix communication to be 
*much* faster than PVM: it's so generic that it absorbs a lot of time, e.g. 
probing for a message takes 2000 machine cycles.

For small numers of processors a higher-performance implementation could be 
constructed by adapting the runtime system to effectively use the shared 
memory, but IIRC Simon Marlowe found there were problems with memory contention 
with more processors.

Phil

On Tue, 20 Aug 2002 
21:17:28 +0800 [EMAIL PROTECTED] wrote:

 Speaking of GpH, I wonder how is GdH coming along? It seems
 that the installation instruction on http://www.cee.hw.ac.uk/~dsg/gdh/
 is still incomplete...
 
 As far as I know, Mosix has nothing to do with PVM, so am I
 right to say that GpH still needs PVM even you use it on a
 Mosix cluster? Then what will Mosix provide when you can have
 a PVM cluster without Mosix running the same thing?
 
 Regards,
 .paul.
 
 On Tue, Aug 20, 2002 at 12:09:28PM +0100, Phil Trinder wrote:
  Murray,
  
  There are several parallel Haskell implementations: a survey of them has just 
  appeared in Journal of Func. Prog Vols 45 (July  Sept 2002). Implementations 
  are available for
  o Eden http://www.mathematik.uni-marburg.de/inf/eden/
  o GpH  http://www.cee.hw.ac.uk/~dsg/gph/
  
  My group works on Glasgow parallel Haskell (GpH) which extends Haskell 98 with 
  a parallel composition combinator. As Simon said the main implemntation,
  GUM, buys portability using the relatively slow PVM communications library. 
  This doesn't matter so much on distributed memory machines, and we've recently 
  achieved some quite respectable results SunServer shared-memory machines.
  
  Simon Marlowe developed an alternative SMP implementation of GpH a couple of 
  years ago that may be more suitable for a Mosix platform, but I'm not sure of 
  the status of that implementation now.
  
  Phil
  
  On Mon, 19 Aug 2002 18:04:44 +0100 Simon Peyton-Jones [EMAIL PROTECTED] 
  wrote:
  
   Hi Murray
   
   I'm catching up with my email backlog, but I didn't see a reply to your
   message, so I thought I'd reply.  The parallel-Haskell crew are at
 http://www.cee.hw.ac.uk/~dsg/gph/
   There's a mailing list that I'm ccing.
   
   GHC can be built to run on a shared-memory multiprocessor, but we have
   not built and tested that for some time.  
  
  Untrue - both Eden and GpH are currently used on SunServer SMPs.
  
   GPH is aimed more at
   distributed-memory machines, and has quite a bit more code layered on
   top of GHC.  Details on the GPH page above.  
   
   Let me know if I can help.  It'd be great to get some more
   parallel-Haskell stuff going.
   
   Simon
   
   | A group of us at Brooklyn College (City University of New 
   | York) are in the latter stages of setting up a Mosix cluster 
   | that we would like to use for research on, among other 
   | things, parallel execution of Haskell code and run-time 
   | optimization of both automatic and programmed parallelization.
   | 
   | I would greatly appreciate hearing from anyone who can 
   | provide advice on 
   | an appropriate bibliography on the language implementation and past 
   | work in this area (other than the code in the Haskell compilers and 
   | libraries, of course), approaches, ongoing work, etc. 
   | 
   | Also, I would be most interested in hearing from anyone 
   | interested in joining our effort (no problems with remote 
   | access to the cluster by way of SSH), or making arrangements 
   | for cooperation in research in this area, although, of 
   | course, access to our equipment will be subject to approval 
   | from higher authorities (however, note that I really don't 
   | expect difficulty here, since our administration has already 
   | shown considerable interest in supporting the project).
   | 
   | Replies to the list will be read, but those who wish may mail 
   | me directly at [EMAIL PROTECTED] 
   | 
   | Thanks in advance for any replies. 
   | 
   | Murray Gross
   | Adj. Lecturer, Brooklyn College, 
   | City University of New York 
   | 
   | 
   | 
   | ___
   | Haskell mailing list
   | [EMAIL PROTECTED] http://www.haskell.org

Re: A: Evaluation order, ghc versus hugs, lazy vs. strict

2002-08-28 Thread Phil Trinder

Dear All,

Hal's comments on the use of Evaluation Strategies for controlling 
strictness are substantially right, and they are used this way in Eden, a 
parallel Haskell. In Glasgow parallel Haskell(GpH) we use them to control 
parallel evaluation as well. The key reference is 
  Algorithm + Strategy = Parallelism, Journal of Functional Programming, 
  8(1):23--60, January 1998.
  http://www.cee.hw.ac.uk/~dsg/gph/papers/

Highlights are as follows. There are three basic strategies: 

r0, rwhnf, rnf :: Strategy a
r0 - does no evaluation, 
rwhnf - reduces it's argument to Weak Head Normal Form (WHNF). Hal defines this 
  as stratWHNF), and 
rnf - reduces it's argument to normal form (i.e. containing no redexes). It's 
  defined in a class similar to the Eval class

Strategies can be composed, e.g. seqList applies a strategy to every element of 
a list:

seqList :: Strategy a - Strategy [a]
seqList s [] = ()
seqList s (x:xs) = s x 'seq' (seqList s xs)

so

seqList r0 :: Stratgy [a]- evaluates just the spine of a list
seqList rwnf :: Strategy [a] - evaluates every element to WHNF
seqList (seqList r0) :: Strategy [[a]]  
 - evaluates just spines of every sublist in a list 
   of lists

Analogous parallel strategies, like parList, also exist.

The Strategies.lhs module is distributed with GHC (since version 0.29), so 
simply 'import Strategies' if you want to play.

HTH

Phil
On Fri, 23 Aug 2002 05:10:05 -0700 (PDT) Hal Daume III [EMAIL PROTECTED] wrote:

 I think there's more to strategies than this.  They are not necessarily
 related to parallel programming and can be used for tuning (in the seq
 sense) sequential (perhaps non-parallel would be a better
 word) programs.
 
 The type of strategies is:
 
   type Strategy a = a - ()
 
 for example, a strategy which reduces its argument to weak head normal
 form could be given by:
 
   stratWHNF x = x `seq` ()
 
 We define a funciton 'using' which uses strategies to do a computation:
 
   v `using` s = s x `seq` x
 
 These are used in parallel programming something like:
 
   fib 0 = 1
   fib 1 = 1
   fib n = a + b `using` strategy
 where a = fib (n-1)
   b = fib (n-2)
   strategy result = a `par` b `par` result
 
 This clearly separates the computation a+b from the way it is evaluated
 a in parallel to b in parallel to the result (i.e., a+b).
 
 But this can of course be used for sequential programming, too, simply by
 using seq instead of par in the above example.  This enables you to write
 clean code (your functions stay the same, except they are appended with
 `using` strategy), but you can control more precisely when things get
 reduced.
 
  - Hal
 
 --
 Hal Daume III
 
  Computer science is no more about computers| [EMAIL PROTECTED]
   than astronomy is about telescopes. -Dijkstra | www.isi.edu/~hdaume
 
 On 23 Aug 2002, Ketil Z. Malde wrote:
 
  Jan Kybic [EMAIL PROTECTED] writes:
  
   What are GUM and Strategies? Could you provide any links?
  
http://www.cee.hw.ac.uk/~dsg/gph/docs/Gentle-GPH/sec-gph.html
  
  GUM is an implementation of GPH (a parallel Haskell) that
  runs on top of PVM.
  
  Strategies are about making sure parallel threads actually do the work
  they're intended to before returning control to the main thread; in
  other words, ensuring sufficient strictness.  Or something like that.
  
  Grain of salt as applicable, I'm not using any of this yet.
  
  -kzm
  -- 
  If I haven't seen further, it is by standing in the footprints of giants
  ___
  Haskell mailing list
  [EMAIL PROTECTED]
  http://www.haskell.org/mailman/listinfo/haskell
  
 
 ___
 Haskell mailing list
 [EMAIL PROTECTED]
 http://www.haskell.org/mailman/listinfo/haskell

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



GpH/GdH Parallel Distributed Haskell Research

2002-08-21 Thread Phil Trinder


Prompted by Simon PJ, here's a bulletin on GpH/GdH parallel and 
distributed Haskell research at Heriot-Watt and St Andrews Universities. 

Kevin Hammond has recently had an EPSRC project funded to use GpH as parallel 
coordination layer for large GAP (symbolic algebra) computations. We're also 
part of an EU framework VI Network bid on parallel symbolic computation.

Jan Nystrom will join us at Heriot-Watt in November from Upsala as the RA on 
a new EPSRC/Motorola Research Labs project investigating Erlang  GdH for 
distributed telecoms applications.

We're maintaining collaboration with the Eden (another parallel Haskell) groups 
at Marburg in Germany and Madrid, funded by Britsh Council ARC and Accion 
Integradas respectively. 

Hans Wolfgang Loidl has just returned to Germany after completing his 
3-year Post-Doc. He's been working on improving the architecture independence 
of GpH, and participates part time.

There are 5 research students working on
GpH and GdH:

- Robert Pointon (Finishing PhD) has designed  implemented GdH and is now 
evaluating it.

- Alvaro Rebon (Finishing PhD) is implementing the granularity anaylsis 
proposed in Hans Wolfgang Loidl's thesis as a free standing tool.
 
- Andre Du Bois (Entering 2nd year PhD) is designing and planning to construct 
a mobile Haskell by extending GdH.

- Abyd Al Zain (Starting PhD) is designing and planning to construct a GRID 
implementation for GpH on networks of HPCs. The key problems are to extend 
GpH's existing dynamic adaption mechanisms to the hierarchical, heterogeneous 
and shared architecture.

- Mustafa Aswad (Completing MPhil) is investigating developing GpH programs for 
multiple architectures, based on a GpH gene-sequence alignment program.   

More details including a raft of publications is available from 
  
  http://www.cee.hw.ac.uk/~dsg/gph/
  http://www.cee.hw.ac.uk/~dsg/gdh/
  http://haskell.cs.yale.edu/communities/

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: GPH: RE: Concurrency and Haskell

2002-08-20 Thread Phil Trinder

Murray,

There are several parallel Haskell implementations: a survey of them has just 
appeared in Journal of Func. Prog Vols 45 (July  Sept 2002). Implementations 
are available for
o Eden http://www.mathematik.uni-marburg.de/inf/eden/
o GpH  http://www.cee.hw.ac.uk/~dsg/gph/

My group works on Glasgow parallel Haskell (GpH) which extends Haskell 98 with 
a parallel composition combinator. As Simon said the main implemntation,
GUM, buys portability using the relatively slow PVM communications library. 
This doesn't matter so much on distributed memory machines, and we've recently 
achieved some quite respectable results SunServer shared-memory machines.

Simon Marlowe developed an alternative SMP implementation of GpH a couple of 
years ago that may be more suitable for a Mosix platform, but I'm not sure of 
the status of that implementation now.

Phil

On Mon, 19 Aug 2002 18:04:44 +0100 Simon Peyton-Jones [EMAIL PROTECTED] 
wrote:

 Hi Murray
 
 I'm catching up with my email backlog, but I didn't see a reply to your
 message, so I thought I'd reply.  The parallel-Haskell crew are at
   http://www.cee.hw.ac.uk/~dsg/gph/
 There's a mailing list that I'm ccing.
 
 GHC can be built to run on a shared-memory multiprocessor, but we have
 not built and tested that for some time.  

Untrue - both Eden and GpH are currently used on SunServer SMPs.

 GPH is aimed more at
 distributed-memory machines, and has quite a bit more code layered on
 top of GHC.  Details on the GPH page above.  
 
 Let me know if I can help.  It'd be great to get some more
 parallel-Haskell stuff going.
 
 Simon
 
 | A group of us at Brooklyn College (City University of New 
 | York) are in the latter stages of setting up a Mosix cluster 
 | that we would like to use for research on, among other 
 | things, parallel execution of Haskell code and run-time 
 | optimization of both automatic and programmed parallelization.
 | 
 | I would greatly appreciate hearing from anyone who can 
 | provide advice on 
 | an appropriate bibliography on the language implementation and past 
 | work in this area (other than the code in the Haskell compilers and 
 | libraries, of course), approaches, ongoing work, etc. 
 | 
 | Also, I would be most interested in hearing from anyone 
 | interested in joining our effort (no problems with remote 
 | access to the cluster by way of SSH), or making arrangements 
 | for cooperation in research in this area, although, of 
 | course, access to our equipment will be subject to approval 
 | from higher authorities (however, note that I really don't 
 | expect difficulty here, since our administration has already 
 | shown considerable interest in supporting the project).
 | 
 | Replies to the list will be read, but those who wish may mail 
 | me directly at [EMAIL PROTECTED] 
 | 
 | Thanks in advance for any replies. 
 | 
 | Murray Gross
 | Adj. Lecturer, Brooklyn College, 
 | City University of New York 
 | 
 | 
 | 
 | ___
 | Haskell mailing list
 | [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
 | 
 

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Haskell/Erlang Research Position

2002-04-03 Thread Phil Trinder

Research Associate in Haskell/Erlang for Distributed Telecommunications 
£17,278-£26,229 p.a.

Applications are invited for a three year Research Associate position at 
Heriot-Watt University to work with Dr Phil Trinder on an EPSRC 
funded project entitled High-Level Techniques for Distributed 
Telecommunications Software. The project is a collaboration with Motorola UK 
Research Labs and aims to evaluate high-level distributed programming 
techniques for constructing realistic telecommunications software. 

Applications are welcomed from candidates with a doctorate or a very good first 
degree in Computing or cognate discipline; a successful candidate without a PhD 
will have the opportunity of registering for one. Applicants should have good 
written and verbal communication skills and be able to demonstrate a strong 
programming ability: experience with distribution and the Haskell or Erlang 
programming languages is desirable. Likewise a research background, and 
familiarity with the telecommunications sector are desirable.

For application details please contact the Personnel Office, Heriot-Watt University, 
Edinburgh, EH14 4AS, tel/fax: 0131 451 3475 (24 hours) quoting Ref 66/02/J. The 
closing date is Friday 19th April 2002. Informal enquires can be directed to Phil 
Trinder tel:  +44 131 451 3435, or e-mail: [EMAIL PROTECTED] More details of 
the project and further particulars for the position can be found at: 
http://www.cee.hw.ac.uk/~dsg/telecoms/


___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



Haskell/Erlang Research Position

2002-04-03 Thread Phil Trinder

Research Associate in Haskell/Erlang for Distributed Telecommunications 
£17,278-£26,229 p.a.

Applications are invited for a three year Research Associate position at 
Heriot-Watt University to work with Dr Phil Trinder on an EPSRC 
funded project entitled High-Level Techniques for Distributed 
Telecommunications Software. The project is a collaboration with Motorola UK 
Research Labs and aims to evaluate high-level distributed programming 
techniques for constructing realistic telecommunications software. 

Applications are welcomed from candidates with a doctorate or a very good first 
degree in Computing or cognate discipline; a successful candidate without a PhD 
will have the opportunity of registering for one. Applicants should have good 
written and verbal communication skills and be able to demonstrate a strong 
programming ability: experience with distribution and the Haskell or Erlang 
programming languages is desirable. Likewise a research background, and 
familiarity with the telecommunications sector are desirable.

For application details please contact the Personnel Office, Heriot-Watt University, 
Edinburgh, EH14 4AS, tel/fax: 0131 451 3475 (24 hours) quoting Ref 66/02/J. The 
closing date is Friday 19th April 2002. Informal enquires can be directed to Phil 
Trinder tel:  +44 131 451 3435, or e-mail: [EMAIL PROTECTED] More details of 
the project and further particulars for the position can be found at: 
http://www.cee.hw.ac.uk/~dsg/telecoms/


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: question about concurrency implementation

2002-03-21 Thread Phil Trinder

Dean,

Alastair Reid wrote:

  Just to be sure we agree on terminology: some people like to
  distinguish between parallelism and concurrency.
  
  Parallelism is a way of going faster but doesn't change your
  programming model.  Implemented correctly, a parallel implementation
  yields the same results as a sequential implementation - it just runs
  faster.  (This is ignoring the effects of interaction with the outside
  world, of course - since that can also affect determinism.)  Parallel
  Haskell adds par and friends (operations which have no effect on the
  semantics of your program).
  
  Concurrency changes your programming model.  A concurrent program is
  allowed to give different results and interesting interactions
  (including race conditions) between threads.  A concurrent program may
  run on a single processor.  Concurrent Haskell adds forkIO,
  killThread, MVars, etc (operations which affect not just the semantics
  of your program but also the way the semantics are defined).

We distinguish between parallel, concurrent and distributed depending on the 
number of processors and whether threads are *stateful*, i.e. access stateful 
objects like Mvars or Files, or *stateless*. That is:

Sequential, e.g. Haskell 98:  
  1 PE, 1 Stateful thread,  0 stateless threads
Concurrent, e.g. Concurrent Haskell: 
  1 PE, N Stateful thread,  0 stateless threads
Parallel, e.g. GpH: 
  N PEs, 1 Stateful thread, N stateless threads
Distributed, e.g. GdH: 
  N PEs, N Stateful thread, N stateless threads

In fact these languages form an inclusion hierarchy, e.g. GdH is a superset of 
both GpH and Concurrent Haskell:

  GdH
 /   \
   GpH  Conc. Haskell
 \   /
   Haskell 98

Dean Herington wrote:
 I've asked these questions in order to convince myself that multiple
 threads can (and will) cooperate in lazily evaluating a value they share,
 without need for any special programming.  In particular, I plan to have
 multiple threads share values whose computations involve uses of
 `unsafePerformIO` (the safety of which my application's usage pattern
 guarantees).

The key issue is whether the 'values' are stateful (e.g. Mvars or Files) or 
stateless (e.g. a shared Haskell variable). Sharing stateless objects between 
parallel, concurrent, or distributed threads preserves sequential semantics, 
but sharing stateful objects can introduce non-determinism, unless you have 
additional properties.

Phil
--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: RE: question about concurrency implementation

2002-03-20 Thread Phil Trinder

Dean,

  If the costs are the same, does that rely on there being no true 
  concurrency in
  the current implementations?
 
 It depends what you mean by true concurrency: from the point of view of
 the Haskell programmer, GHC's implementation of concurrency is almost
 preemptive, because we can context-switch at any allocation.  Most
 computation does some allocation, but it's possible to write functions
 that don't (although these tend to be on the trivial side - an optimised
 nfib won't allocate, for example).  We could artificially cause all
 computation to do some allocation to avoid this problem, but we haven't
 found it necessary so far.
 
 But I suspect by true concurrency you're referring at the kind of
 concurrent processes that can be executed on multiple CPUs
 simultaneously.  We did investigate doing this a while back, and found
 that the locking required on thunks was very expensive (slowed down the
 program by at least 2x on the bog-standard SMP machine we had here).
 However there are some clever techniques that can be used to reduce the
 cost - giving each process its own private allocation area and only
 degrading to full locking for access to the shared portion of the heap
 is one such technique we experimented with briefly but I don't have any
 concrete benchmarks I'm afraid.  Also you really need a multithreaded
 garbage collector, which is a lot of work.

We've developed a Haskell extension that exhibit's true concurrency on 
multiple CPUs, it's called Glasgow distributed Haskell (GdH). It's primarily 
designed for distribution (i.e. multiple stateful threads on multiple 
processors), but can be used to build parallel programs too. For more info see

http://www.cee.hw.ac.uk/~dsg/gdh/

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Re: GPH: RE: Setting up ghc for GPH and GranSim

2002-01-04 Thread Phil Trinder

Mathew,

Simon's quite right, the GranSim simulator for Glasgow parallel Haskell (GpH) 
is only available with certain GHC versions, and it's most readily available 
for version 0.29. Information about the platforms supported, together with GHC 
source and binary downloads, is available from the GHC website:
  http://www.haskell.org/ghc/

under 'Download', 'Older releases', '0.29'.

The easiest way to get GranSim is to download an appropriate binary 
distribution, but be aware that GHC version 0.29 supports Haskell 1.2 which 
has most familiar Haskell constructs, but lacks a few: most significantly 
Monadic IO. At present people issues mean that we don't plan a newer release 
of GranSim. 

Although GranSim is a little old, shiny new GpH programs (i.e. Haskell 1.4) can 
be run on parallel (or sequential) platforms using GHC 4.06, as documented at 
  http://www.cee.hw.ac.uk/~dsg/gph/

Phil
 
On Fri, 28 Dec 2001 03:00:07 -0800 Simon Peyton-Jones [EMAIL PROTECTED] 
wrote:

 You can't use any old GHC for GpH, I'm afraid.  (GpH modifies GHC
 internally.)  Best thing to do is to go to the GpH website and get your
 GHC from there.
 
   http://www.cee.hw.ac.uk/~dsg/gph/
 
 There's a GpH mailing list, which I'm ccing.   Perhaps they are planning
 a new release?
 
 Simon
 
 | -Original Message-
 | From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
 | Sent: 21 December 2001 17:52
 | To: [EMAIL PROTECTED]
 | Subject: Setting up ghc for GPH and GranSim
 | 
 | 
 | Hi all,
 | 
 | I'm new to both this list and Haskell, so apologies if these 
 | questions have been answered before or seem obvious.  I've 
 | trawled the website and my suspicion is that I'm using a 'too 
 | new' version of the compiler that doesn't support GranSim.  Anyway:
 | 
 | I'm trying to set up a ghc.  I want to compile GPH programs 
 | and run them on GranSim.
 | 
 | With my current setup (details at the bottom of the mail) I 
 | get the following error when I try to compile a GPH program: 
 | [mjb67@mjb67 mjb67]$ ghc -gransim -fvia-c -fglasgow-exts 
 | --make parfib.hs 
 | ghc-5.02.1: can't find module `Prelude'
 | 
 | Does anyone have any idea what I might be doing wrong?  The 
 | error is reported even when the program is normal Haskell, 
 | whenever I use the -gransim or -parallel options to the 
 | compiler.  I presume this is some sort of library issue?
 | 
 | My compiler was set up in the following way:
 | 
 | I installed the binary RPMs: 
 | http://www.haskell.org/ghc/dist/5.02.1/ghc-5.02.1-rh71-1.i386.
 rpm
 http://www.haskell.org/happy/dist/1.11/happy-1.11-1.i386.rpm
 
 I downloaded the source RPM from:
 http://www.haskell.org/ghc/dist/5.02.1/ghc-5.02.1-rh71-1.src.rpm
 
 I unpacked the source.
 
 I then typed (in the source root directory)
 ./configure --enable-gransim
 make
 make install
 
 Thanks in advance,
 
 Matthew
 
 
 
 ___
 Glasgow-haskell-users mailing list [EMAIL PROTECTED]
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
 

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder


___
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



Re: seq / strictness and laziness

2001-11-19 Thread Phil Trinder

Both parallel and sequential computation must be carefully controlled to 
produce good parallel and distributed Haskell programs. Several languages 
including Glasgow parallel Haskell and Eden use *evaluation strategies*: 
overloaded polymorphic functions to describe the amount of evaluation. 

 type Done = ()
 type Strategy a = a - Done

There are three basic strategies: 
 - r0 performs no evaluation on its argument,  
 - rwhnf reduces its argument to weak head normal form,
 - rnf reduces its argument to (head) normal form: i.e. deepseq. System support 
   for rnf/deepseq would be A Good Thing.

 r0, rwhnf :: Strategy a 
 r0 x = ()
 rwhnf x = x `seq` () 
 
 class NFData a where
 class Eval a = NFData a where
   rnf :: Strategy a

Example instances of NFData are given below, a useful set are predefined in the 
module below:

 instance (NFData a, NFData b) = NFData (a,b) where
   rnf (x,y) = rnf x `seq` rnf y

 instance NFData a = NFData [a] where
   rnf [] = ()
   rnf (x:xs) = rnf x `seq` rnf xs

Strategies are simply functions that can be abstracted and composed lilke 
any others, e.g. SeqList applies a strategy to each element of a list 
sequentially.

 seqList :: Strategy a - Strategy [a]
 seqList strat [] = ()
 seqList strat (x:xs) = strat x `seq` (seqList strat xs)

So 'SeqList r0' evaluates just the spine of the list, and 'seqList (seqList 
rwhnf)' evaluates the elements of a list of lists to weak head normal form.

You can apply a strategy to an expression 

 using :: a - Strategy a - a
 using x s = s x `seq` x

So to force newcounts in your program you want to change the last line to be
something like:

countAFile oldcounts filename =
do 
compiledFile - readAndCompile filename
let newcounts = countAssociations compiledFile oldcounts
return newcounts 'using' rnf

There's a copy of the Strategies module attached. More info in Algorithm + 
Strategy = Parallelism, 
P.W. Trinder, K. Hammond, H-W. Loidl, S.L. Peyton Jones 
In Journal of Functional Programming 8(1):23--60, January 1998.
URL: http://www.cee.hw.ac.uk/~dsg/gph/papers/ps/strategies.ps.gz

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder



Strategies.lhs
Description: Binary data


SFP Call for Participation

2001-05-29 Thread Phil Trinder

CALL FOR PARTICIPATION
3rd Scottish Functional Programming Workshop
University of Stirling
Aug 22nd-24th, 2001

You are invited to participate in the 3rd Scottish Functional
Programming Workshop. The draft programme is below, and both registration
form and additional information are available at:
  http://www.cee.hw.ac.uk/~greg/sfp3/

SFP'3 Draft Programme
=

Parallelism 
---

A Comparative Study of Skeleton-based Parallel 
Programming Environments Allowing Arbitrary Nesting
Remi Coudarcher, Jocelyn Serot, Jean-Pierre Derutin
Universite Blaise Pascal - Clermont II, France

BSP in a Lazy Functional Context
Quentin Miller
Universite d'Orleans, France

Parallel Functional Genetic Programming
Graeme McHale and Greg Michaelson
Heriot-Watt University, Scotland

Introduction of Pipelining into Gaussian Elimination
Joy Goodman
Glasgow University, Scotland

The Efficiency of Parallel Graph Reduction on a 
Loosely-coupled Multiprocessor
Hans Wolfgang Loidl

An SPMD environment machine for functional BSP programs
Armelle Merlin, Gaetan Hains
Universite d'Orleans, France

Implementing and Measuring GdH Skeletons
Phil Trinder
Heriot-Watt University, Scotland

Distribution


Distributed Programming with Dynamic Reply Channels
Rita Loogen, Steffen Priebe
Philips-Universitat Marburg, Germany

Distributed Applications in GdH
Robert Pointon
Heriot-Watt University, Scotland

Applications


Haskell:  Language for Business Systems
Dominic Steinitz, British Airways
Chris Reade, Dan Russell, Phil Molyneux, Barry Avery
Kingston Business School, England

Functional programming languages for verification tools:
experiences with ML and Haskell
Martin Leucker, Thomas Noll, Perdita Stevens, Michael Weber
RWTCH Aachen, Germany/University of Edinburgh, Scotland

Infinite Pretty Printing in eXene
Allen Stoughton
Kansas State University, USA

Derivation and Transformation
-

Extending Higher-Order Deforestation: 
Transforming Programs to Eliminate Even More Trees
Geoff Hamilton, Dublin City University, Ireland

Deriving Non-heirarchical Process Topologies
Ricardo Pena, Fernando Rubio, Clara Segura
Universidad Complutense de Madrid, Spain

Language Design and Implementation
--

Some Experiences Connecting Functional Languages 
and Java
Andre Rauber Du Bois, Antonio Carlos da Rocha Costa
Universidade Federal do Rio Grande do Sul/
Universidade Catolica de Pelotas, Brazil

Paging Behaviour of List-based Memory in a Distributed 
Virtual Memory System for Pure Functional Languages
Marco T. Morazan and Douglas R. Troeger
City University of New York, USA

Types
-

How to Fix Type Errors Automatically
Bruce J. McAdam
University of Edinburgh, Scotland

Function Types and Complete type Inference
Manfred Widera, Christoph Bierle
Fern Universitat Hagen, Germany

Human-like Explanations of Polymorphic Types
Yang Jun, Greg Michaelson, Phil Trinder
Heriot-Watt University, Scotland

Theory
--

The dual of grafting is decoration
Tarmo Uustalu, Varmo Vene
Universidade do Minho, Portugal
University of Tartu, Estonia

Towards a Denotational semantics for Eden
Mercedes Hidalgo-Herrero, Yolanda Ortega-Mallen
Universidad Complutense de Madrid, Spain



___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Haskell PhD Scholarship

2001-01-11 Thread Phil Trinder

Folks,

Are you planning to do a PhD and interested in parallel or distributed versions 
of Haskell? There's a PhD scholarship available at Heriot-Watt University, 
Edinburgh, Scotland. To win the scholarship you'll need to have, or get, a 
first-class degree and have excellent references.

The group at Heriot-Watt have implemented and used parallel versions of Haskell 
and ML, and a distributed Haskell. We're part of a vibrant functional 
programming community in the central belt of Scotland. More information on who 
we are and what we do is available at

  http://www.cee.hw.ac.uk/~trinder/projects.html
  http://www.cee.hw.ac.uk/~trinder/
  http://www.cee.hw.ac.uk/~dsg/

If you're interested in applying for the scholarship please contact me.

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: http://www.cee.hw.ac.uk/~trinder


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Versions of GHC Supporting GHC

2000-05-31 Thread Phil Trinder

Ben,

GpH is available with GHC versions 0.29, 2.10, and 3.02, 
all of which are downloadable from the GHC site.

The runtime system was completely revised for version 4, 
and we're just completing the adaption of GUM for version 
4. Should be available within weeks.

Additional information about GpH is available from the web 
site, and mailing list: 
  http://www.cee.hw.ac.uk/~dsg/gph/
  [EMAIL PROTECTED]

Apologies for slow response - I've been away. Enjoy!

Phil

-Original Message-
From: Ben [mailto:[EMAIL PROTECTED]]
Sent: 26 May 2000 19:51
To: [EMAIL PROTECTED]
Subject: Glasgow Parallel Haskell


Recently GPH was installed on my Universities beowulf cluster. PVM3 is
installed (as well as Lam MPI). Ghc appears to be correctly installed; it
compiles non-parallel programs fine. However when I try to compile (for
example) the fibonacci function given in the documentation it fails.

--- End ---



--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder





PhD Scholarships Available

2000-05-12 Thread Phil Trinder

The Department of Computing and Electrical Engineering at 
Heriot-Watt University, in Edinburgh, Scotland has a number 
of EPSRC PhD Studentships available for UK and EU nationals 
to undertake research in Functional Programming. The 
department has a very active group working on parallel 
functional programming, type theory and rewriting.

Candidates should hold or expect to hold a good honours degree or the
equivalent.

Further information about research interests is available from 
http://www.cee.hw.ac.uk/Research/dependable_index.html
or for further details and application forms contact:

Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder

--- End Forwarded Message ---


--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder





Re: FW: ghc -parallel ...

2000-01-24 Thread Phil Trinder

Dirk,

Glasgow parallel Haskell (GpH) doesn't work with GHC 4.04, 
but will real soon: (in 4.06 I believe). More info on GpH, 
including the mailing list can be found on 

http://www.cee.hw.ac.uk/~dsg/gph/

Phil

 -Original Message-
 From: Dirk Nowotka TUCS [mailto:[EMAIL PROTECTED]]
 Sent: None
 To: [EMAIL PROTECTED]
 Subject: ghc -parallel ...
 
 
 Hi,
 
 I've been trying to compile a toy example with GHC's parallel option.
 
 The `impossible' happened ...
 
 How do I get the parallel machinery working?
 
 Best,
   Dirk
 
 
 Here is the verbose compiler report:
 (the program code follows after that)
 
 droog:~/Hacks/haskell/Equations/src/test ghc -parallel
 -i/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concurrent
 :/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/std -v
 parFact.hs
 The Glorious Glasgow Haskell Compilation System, version 4.04, patchlevel 1
 
 Effective command line: -parallel
 -i/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concurrent
 :/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/std -v
 ghc: unrecognised option: -fstack-check
 
 Ineffective C pre-processor:
 echo '{-# LINE 1 "parFact.hs" -}'  /tmp/ghc21755.cpp  cat
 parFact.hs  /tmp/ghc21755.cpp
 
 real0.0
 user0.0
 sys 0.0
 ghc:compile:Output file parFact.o doesn't exist
 ghc:compile:Interface file parFact.hi doesn't exist
 ghc:recompile:Input file parFact.hs newer than parFact.o
 
 Haskell compiler:
 /softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/hsc
 /tmp/ghc21755.cpp  -fparallel -fignore-interface-pragmas
 -fomit-interface-pragmas -fsimplify [ -finline-phase2
 -fmax-simplifier-iterations4 ]   -fwarn-overlapping-patterns
 -fwarn-missing-methods -fwarn-duplicate-exports -fhi-version=404 -static
 -himap=/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concu
 rrent%.hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/st
 d%.hi:.%.hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/
 concurrent%.mp_hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/im
 ports/concurrent%.mp_hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4
 .04/imports/std%.mp_hi-v -hifile=/tmp/ghc21755.hi -C=/tmp/ghc21755.hc
 -F=/tmp/ghc21755_stb.c -FH=/tmp/ghc21755_stb.h +RTS -H600 -K100
 Glasgow Haskell Compiler, version 4.04, for Haskell 98, compiled by GHC
 version 4.04
 
 panic! (the `impossible' happened):
 closureCodeBody:arg_regs
 
 Please report it as a compiler bug to [EMAIL PROTECTED]
 
 
 
 real2.5
 user2.3
 sys 0.1
 deleting... /tmp/ghc21755.cpp /tmp/ghc21755.hi /tmp/ghc21755.hc
 /tmp/ghc21755_stb.c /tmp/ghc21755_stb.h
 
 rm -f /tmp/ghc21755*
 
 
 
 
 parFact.hs:
 
 module Main(main) where
 
 import IO
 import Parallel
 
 pfc :: Int - Int - Int - Int
 pfc x y c
   | y - x  c = f1 `par` (f2 `seq` (f1+f2))
   | x == y= x
   | otherwise = pf x m + pf (m+1) y
   where
 m  = (x+y) `div` 2
 f1 = pfc x m c
 f2 = pfc (m+1) y c
 
 pf :: Int - Int - Int
 pf x y
   | x  y = pf x m + pf (m+1) y
   | otherwise = x
   where
 m = (x+y) `div` 2
 
 parfact x c = pfc 1 x c
 
 mk_num  :: String - Int
 mk_num s = (fst . head) (reads s :: [(Int,String)])
 
 main = do putStr "argument 1: "
   arg1 - getLine
   putStr "argument 2: "
   arg2 - getLine
   putStrLn (show (parfact (mk_num arg1) (mk_num arg2)))
 

------
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder




Re: Parallel Haskell on GHC-4.04

1999-12-10 Thread Phil Trinder

Shimoda,

Help with Glasgow parallel Haskell is available from:

  http://www.cee.hw.ac.uk/~dsg/gph/

and on 

  [EMAIL PROTECTED] 

a friendly mailing list.

Phil 

On Fri, 10 Dec 1999 12:31:28 +0900 (JST) Shimdoa Hirotada 
[EMAIL PROTECTED] wrote:

 Hello. Thank you for your reply.
 
 In the meantime, you can run parallel programs using GHC 0.29 (binaries for
 a few architectures available from GHC's web site:
 http://www.haskell.org/ghc) or GHC 3.02 (binaries are rumoured to be
 available, but I'm not sure where).
 
 I installed GHC-0.29 in Solaris and succeeded to compile 
 the example program.
 
 Next, I try GHC-3.02.
 
 Thanks.
 
 
 $BAzED(B  $B9-Ci(B   [EMAIL PROTECTED]
  [EMAIL PROTECTED]
 

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder




Haskell Research Position

1999-06-07 Thread Phil Trinder


Distributed Haskell Research Position
-

Are you interested in discovering the costs and benefits of functional 
languages for distributed programming? In particular in comparing 
them with conventional languages like Java? We have EPSRC funding 
to investigate a distributed version of Haskell, based on the 
Glasgow Haskell Compiler (GHC).

The skills you will need are:

o Functional Programming Experience, preferably using Haskell.

o A good honours degree in Computing, together with some 
  research experience.

o Distributed programming, preferably using Java.

The post is at the Computing and Electrical Engineering Department 
(http://www.cee.hw.ac.uk/) of Heriot-Watt University Edinburgh 
(http://www.hw.ac.uk/). It is available immediately, for 
approximately 18 months, and the salary will be between £15735 
and £20107.

For application details please contact the Personnel Office, 
Heriot-Watt University, Edinburgh EH14 4AS tel/fax: 0131 451 3475 
(24 hours) quoting Ref 98/99/G. Further particulars can be 
obtained directly from me. Closing date 18th June 1999.

Phil Trinder

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder







Re: Parallel Haskell

1998-11-06 Thread Phil Trinder

Ernesto,

There's also a parallel implementation of Haskell based on 
the Glasgow Haskell Compiler (GHC):

Web page:   http://www.dcs.gla.ac.uk/fp/software/gph/
Mailing List:   [EMAIL PROTECTED]

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder






Glasgow Parallel Haskell

1998-06-11 Thread Phil Trinder

Folks,

There's a new mailing list about the implementation and use 
of Glasgow Parallel Haskell (GpH). GpH is included with 
most releases of the Glasgow Haskell Compiler since ghc 
0.29.

More information on GpH is available at 
  http://www.dcs.gla.ac.uk/~hwloidl/fp-www/software/gransim/GranSim-GUM-papers.html 

To subscribe to the list send a message to 
  [EMAIL PROTECTED] 
with the following text in the message body:
  subscribe gph 

When you want to leave the list use:  
  unsubscribe gph

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder





Glasgow Parallel Haskell

1998-06-11 Thread Phil Trinder

Folks,

There's a new mailing list about the implementation and use 
of Glasgow Parallel Haskell (GpH). GpH is included with 
most releases of the Glasgow Haskell Compiler since ghc 
0.29.

More information on GpH is available at 
  http://www.dcs.gla.ac.uk/~hwloidl/fp-www/software/gransim/GranSim-GUM-papers.html 

To subscribe to the list send a message to 
  [EMAIL PROTECTED] 
with the following text in the message body:
  subscribe gph 

When you want to leave the list use:  
  unsubscribe gph

Phil

--
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder