Hi Nik,

> The topic of (scalable) concurrency models in the era of multicore PCs
> has been of great interest recently in programming language
> communities.

that's a bit too general description:-) I would say that if your PC has
many cores, and your program forks OS processes, your OS does/should
take advantage of many CPUs.  And picolisp has great support for that.

> I'm just curious about this and would like to know how PicoLisp deals
> with concurrency.

Well, the traditional unix fork plus a few ipc lisp functions does the
job very well.

> The (traditional) multiprocessing by forking, shared memory etc. is
> error-prone and not scalable!

Do you have anything to support this assertion?  I would rather disagree
on this.  It is more reliable than using threads and scalable about the
same.  For example, my OS uses processes, is well reliable in this
regard and takes advantage of my two cores just fine;-)

As for scalability, depends what do you want to achieve.  A while ago I
read a great analysis of different web servers and scalability of using
processes, threads and events and it all mainly depends on how good or
broken is your OS for using a particular model.  Only event driven
(asynchronous) web servers scaled much better but that is single process
(no threads) and hard to program.

How many processes do you need?  I can fork about 500 from one parent
(limited by my OS set up).  And because picolisp is, well, "pico", it
doesn't take much memory (picolisp uses less that 2MB).

Cheers,

Tomas
-- 
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to