[racket] Web server

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Jul 17 13:26:10 EDT 2014

At Thu, 17 Jul 2014 12:19:21 -0400, Brian Adkins wrote:
> I just read "Places: Adding Message-Passing Parallelism to Racket" and wanted 
> to pass on a link to any other Racket newbies interested in parallelism:
> 
> https://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf
> 
> This was good to read:
> 
> "We expect to develop new constructs for parallelism in Racket that internally 
> combine futures and places to get the advantages of each."
> 
> 
> I read the paper quickly, and I may have more questions later, but
> one question did pop up after reading the comparison between Python's
> MP lib and Racket on page 11. From that, it appears that Python's
> solution may be able to take advantage of the copy-on-write aspect of
> forking.

Yes, that sounds right. When fork() is available and doesn't create
problems with threads or other resources, then I expect that it would
be much faster and use less memory.


> Is that not the case with Places? If so, what was the rationale in not 
> utilizing copy-on-write?

Do you mean copy-on-write via processes and fork(), or somehow by
itself?

We wanted to avoid multiple processes because OSes don't provide great
facilities for managing them and communicating between them.

Copy-on-write can be especially convenient when implemented through the
virtual memory manager, but offhand, I don't know of approaches that
work so easily within a process.


Posted on the users mailing list.