Many real-world processes and phenomena are modeled using systems of ordinary
differential equations with parameters. Given such a system, we say that a
parameter is globally identifiable if it can be uniquely recovered from input
and output data. The main contribution of this paper is to provide theory, an
algorithm, and software for deciding global identifiability. First, we
rigorously derive an algebraic criterion for global identifiability (this is an
analytic property), which yields a deterministic algorithm. Second, we improve
the efficiency by randomizing the algorithm while guaranteeing the probability
of correctness. With our new algorithm, we can tackle problems that could not
be tackled before. A software based on the algorithm (called SIAN) is available
at https://github.com/pogudingleb/SIAN