Actors, Fibers/Coroutines, Rubinius' Multi-VM and other Concurrency topics have come up recently. To put all these concepts into perspective, we talked to Ruby's MenTaLguY, who's been working on Ruby fastthread, Ruby Actors implementations, Rubinius, and much more. Also: a glimpse at MenTaLguY's next project.
A JDJ article explains that as we move towards Multi-Core processor architectures, single threaded performance improvement is likely to see a significant slowdown over the next one to three years. In some cases, single-thread performance may even drop. This in turn will require software developers change the way we develop software, increasing our utilization of parallel execution architectures.
Quite often performance problems will be reported with some very antidotal comments that do nothing to help you understand where to start looking. Faced with this dilemma, it is not uncommon for teams to start guessing at the root cause. Now enter "the box", a little diagram that is an abstraction of a complete system. The box is a reminder of the true cases of performance bottlenecks.
Fibers were recently in the Ruby 1.9 branch. The Coroutine-like concept has many uses, such as implementing lightweight concurrency and others. We look at the concept and influences of Fibers in Ruby 1.9, as well as code samples.
Ruby's thread system is about to undergo big changes in Ruby 1.9, possibly moving from user space threads to kernel threads. Or not. A recent interview with Matz and Sasada Koichi shows some new ideas that are considered. We take a look at the different possible future Ruby threading systems.
Are Ruby 1.x User-space threads a hindrance with writing GUIs? We take a brief look at the situation and show the situation, options and alternatives such as using JRuby.