code: public <M> Graph<K, VV, EV> runScatterGatherIteration(
  			ScatterFunction<K, VV, M, EV> scatterFunction,
  			org.apache.flink.graph.spargel.GatherFunction<K, VV, M> gatherFunction,
  			int maximumNumberOfIterations, ScatterGatherConfiguration parameters) {
  
  		ScatterGatherIteration<K, VV, M, EV> iteration = ScatterGatherIteration.withEdges(
  				edges, scatterFunction, gatherFunction, maximumNumberOfIterations);
  
  		iteration.configure(parameters);
  
  		DataSet<Vertex<K, VV>> newVertices = this.getVertices().runOperation(iteration);
  
  		return new Graph<>(newVertices, this.edges, this.context);
  	}
docs: Runs a ScatterGather iteration on the graph with configuration options.
  
  @param scatterFunction the scatter function
  @param gatherFunction the gather function
  @param maximumNumberOfIterations maximum number of iterations to perform
  @param parameters the iteration configuration parameters
  
  @return the updated Graph after the scatter-gather iteration has converged or
  after maximumNumberOfIterations.