Re:Teaching Concurrency (2009) [pdf]
by tbrownaw on Wednesday September 21, 2016 @07:07PM
(#12553071)
And if you step out all the parallelism from your concurrency runtime, you get rid of a big chunk of the overhead. But even with purely cooperative single-threaded multitasking, there's still some overhead vs "ordinary" strictly serial code.
Re:Teaching Concurrency (2009) [pdf]
by TickleSteve on Thursday September 22, 2016 @02:43AM
(#12554933)
For CPU bound code, concurrency is pure overhead.
For I/O bound code, concurrency can give you some benefit.
...but in general, people do not analyse this before throwing tasks at a problem.
> ...but in general, people do not analyse this before throwing tasks at a problem.
Would that be just anecdotal ?
Re:Teaching Concurrency (2009) [pdf]
by TickleSteve on Thursday September 22, 2016 @04:20AM
(#12555347)
yes... in ~25 years in the business, over ~10 companies.
..and I can tell you that precisely none of them performed a correct analysis of a systems concurrency needs before 'designing' it.
A common artifact of this is far too many tasks.
I have seen egregious abuse of pre-emptive threads ... a lot. Abuse of green threads / fibres / coroutines ... not so much. I think one has to be a half decent programmer to be even aware those options.
This isn't a hard and fast rule. There is overhead to parallelism.