0.8.0 behaves in the same fashion as 0.7.x by default. If you don't explicitly set the number of tasks, the number of tasks is set to the initial parallelism for that component for the lifetime of the topology (which is set via the parallelism hint). The parallelism hint used to indicate the number of tasks, now it indicates the number of executors. So this:
topology.setBolt("bolt", new MyBolt(), 8).shuffleGrouping("spout")
"bolt" will have 8 tasks, and it will initially have 8 executors. The number of executors for a component must be <= than the number of tasks. So if you want to be able to scale up a topology later on, you can do this:
topology.setBolt("bolt", new MyBolt(), 8).setNumTasks(24).shuffleGrouping("spout")
Initially "bolt" will have 8 executors with 3 tasks per executor, and you can adjust the number of executors up to 24 later on.
Tasks are very cheap, so having lots of them per executor is reasonable.