Szemeredi says that a large graph can be partitioned into a finite number of pieces such that the edges between pieces are like those in a random graph. This has many applications. For example, if a graph as o(n^3) triangles, all of the triangles can be removed by removing at most o(n^2) edges. I will explain the statement and the connection to graph limits.