Group synchronous and asynchronous tasks and execute them either in serial or parallel