add recuce and scatter_gather program