more finely grained thread job allocation