From: Paul Morrison <paul.morrison@ro...> - 2004-12-05 16:23:01
I guess our notes crossed in mid-air! Maybe the wiki will be a better
place to exchange information...? When I get your comments, I will post
> Can it handle more than a very limited quantity of concurrent threads?
> Stackless can easily handle hundreds of thousands of concurrent tasklets on
common desktop hardware.
You're probably right - I had to guess at the size of each stack, and
picked an arbitrary 4K bytes. So that would limit one to 2 ^ 20
tasklets, with nothing else in the machine... Is my arithmetic
right? However, I also get a flavour that the tasklets typically run
for a much shorter time than FBP processes - more similar to the FBP
"non-looping" mode. While FBP supports both "looping" and
"non-looping" modes, over the years, I have found the looping mode
somehow brings out more clearly the architecture of FBP, and in fact
business apps built with FBP rarely seem to exceed 50 or 60 threads.
I would assume that in Stackless, all storage must be allocated
explicitly, or does each tasklet get a chunk of local storage? One
point of convergence is that I have been thinking for a while that FBP
would be cleaner if you only allowed a thread's main-line (not
subroutines under it) to do sends and receives, so the amount of stack
that has to be saved across context switches would be considerably smaller.
Hope this makes sense,
Get latest updates about Open Source Projects, Conferences and News.