  We propose a manifold optimization approach to solve linear semidefinite
programs (SDP) with low-rank solutions. This approach incorporates the inexact
augmented Lagrangian method (ALM) and the Burer-Monteiro factorization, and
features the self-adaptive strategies for updating the factorization size and
the penalty parameter. We establish global convergence of the inexact ALM,
despite the non-convexity brought by the Burer-Monteiro factorization. We
provide a practical algorithm building on the inexact ALM, and along with the
algorithm we release an open-source SDP solver ManiSDP. Comprehensive numerical
experiments demonstrate that ManiSDP achieves state-of-the-art in terms of
efficiency, accuracy, and scalability, and is faster than several advanced SDP
solvers (MOSEK, SDPLR, SDPNAL+, STRIDE) by up to orders of magnitudes on a
variety of linear SDPs. The largest SDP solved by ManiSDP (in about 8.5 hours
with maximal KKT residue 3.5e-13) is the second-order moment relaxation of a
binary quadratic program with 120 variables, which has matrix dimension 7261
and contains 17,869,161 affine constraints.
