added reduced parallel reduction