  We provide an algorithm to determine the Heegaard genus of simple 3-manifolds
with non-empty boundary. More generally, we supply an algorithm to determine
(up to ambient isotopy) all the Heegaard splittings of any given genus for the
manifold. As a consequence, the tunnel number of a hyperbolic link is
algorithmically computable. Our techniques rely on Rubinstein's work on almost
normal surfaces, and also a new structure called a partially flat angled ideal
triangulation.
