Distributed Memory Implementation of Elliptic Partial Differential Equations in a Data Parallel Functional Language