Version 1.7.1 is officially out!
As you would expect for a 0.0.1 point release, this is primarily behind-the-scenes changes, mostly focused on bug-fixes and performance improvements. The performance tweaks to the default scheduler have improved our performance on some basic micro-benchmarks rather significantly. This is the primary reason for this particular release. We're working on a task-teams/eureka concept, the beginnings of which you can play with now.
Perhaps the most significant change in behavior you will see is the new spawn-cache. The idea is to collect multiple qthread_fork() operations in a worker-private queue and only dump them to the scheduler when we would normally hit the scheduler (i.e. because a task either yielded, blocked, or exited). This has a bunch of convenient consequences, such as that tossing a single task in the cache and then returning will schedule that task without needing to touch the main scheduler or do any kind of synchronizing. Also, doing help-first task spawning (instead of the default work-first behavior) is now as easy as doing a qthread_fork() and then immediately calling qthread_yield(). The result of this is a significant performance improvement to mass task-spawns. The down side of this is that certain codes (which may have relied on the fact that fork'd tasks are immediately schedulable) may not work any more. So far I've only found one such code, and it was broken for other reasons (i.e. home-grown spin-locks).
Anyway, enjoy!
http://code.google.com/p/qthreads/downloads/detail?name=qthread-1.7.1.tar.bz2
--
Kyle B. Wheeler
Dept. 1423: Scalable System Software
Sandia National Laboratories
505-844-0394