double performance(std::vector<int> dim) { Coord<2> gridDim(dim[0], dim[1]); int maxSteps = dim[2]; int messageSize = 27; double seconds; { ScopedTimer t(&seconds); Initializer<DataflowTestModel> *initializer = new DataflowTestInitializer(gridDim, maxSteps, messageSize); ReorderingUnstructuredGrid<UnstructuredGrid<DataflowTestModel> > grid(initializer->gridBox()); initializer->grid(&grid); int endX = initializer->gridDimensions().x(); Region<1> region; region << initializer->gridBox(); AdjacencyPtr adjacency = initializer->getAdjacency(region); DummyHood hood(endX, adjacency); DataflowTestModel *cells = grid.data(); int maxSteps = initializer->maxSteps(); for (int t = 0; t < maxSteps; ++t) { for (int i = 0; i < endX; ++i) { hood.setIndex(i); cells[i].update(hood, i); } hood.swapMessages(); } } double latticeUpdates = 1.0 * gridDim.prod() * maxSteps; double glups = latticeUpdates / seconds * 1e-6; return glups; }