generates two new tasks

p = partition(top,bottom);