Dean

| From Simon Marlow's reply, I gather that the current 
| implementations of Concurrent Haskell provide "concurrency" 
| but not "parallelism", and that provision of parallelism is 
| not likely in the near term.

That's more or less right.  The trouble is that for shared-memory
parallelism

- you take a performance hit for fine-grain locking
- so you need real parallelism to recover that performance

All the pieces are there in GHC, mostly implemented; but making
it all really work, really reliably, and somewhat portably, is a
non-trivial task... and the reward (as I say above) can be elusive.

| 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).

Do make sure you understand Concurrent Haskell (I'm sure you do),
which is specifically about multiple threads each of which can perform
I/O.  (See "Tackling the awkward squad" on my home page.)   You are
on thin ice with unsafePerformIO, especially when concurrency is
involved.

Simon

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

Reply via email to