TL;DR - <i>Nuitka</i> (which has been garnering some attention on HN today - <a href="https://news.ycombinator.com/item?id=8771925" rel="nofollow">https://news.ycombinator.com/item?id=8771925</a>) is not as fast as CPython and less faster than PyPy for the chosen scenario (enumeration of a fat graph and computing their graph homology).<p>A year and a half down the line after this paper was published (Apr 2013), Nuitka's main strengths seem to be the convenience in packaging the code into an executable which a number of readers have reported success in. If runtime and memory usage are more important, you are better off sticking with the interpreters for now.
This comparison is interesting in that it compares the performance of plain or type-annotated Python code, but to get the full performance benefit of Cython you would replace lists with C arrays, objects with C structs, etc.
I didn't find this paper to be very good. While it talked lightly about a relatively complex mathematical object it computes, it did not talk much about what's involved in its computations, except for some very high level keywords ("comprehensions", "object graphs").<p>What algorithms were used? What data structures? Was the code idiomatic? Was there any effort to reduce things like allocation?<p>Was homological computation the only test case? Even numerical benchmarks typically come in a suite (a good sprinkling of linear algebraic computations, tight straight line floating point programs, differential equation solvers, various numerical simulators, ...), because one LAPACK function will not give you the full picture.<p>This paper did not give me a very good understanding of how performant non-numeric math—which in and of itself is an extremely broad and general term—is on each implementation.