Regent : a high-productivity programming language for implicit parallelism with logical regions