  We report the current state of the graph isomorphism problem from the
practical point of view. After describing the general principles of the
refinement-individualization paradigm and proving its validity, we explain how
it is implemented in several of the key programs. In particular, we bring the
description of the best known program nauty up to date and describe an
innovative approach called Traces that outperforms the competitors for many
difficult graph classes. Detailed comparisons against saucy, Bliss and conauto
are presented.
