In this paper, we present PSMG – Parallel Structured Model Generator – an efficient parallel implementation of a model generator for the structure conveying modelling language (SML). Unlike the earlier proof-of-concept implementation presented with SML, PSMG does not depend on AMPL.
The main purposes of PSMG are: to provide an easy to use framework for modelling and generating large scale nested structured problems, including multi-stage stochastic problems; to eliminate a current bottleneck in the problem generation stage by parallelising the problem generation; and also to offer a generic solver interface that can be easily linked with different structure exploiting optimization solvers such as decomposition or interior point based solvers. As far as we are aware, PSMG is the first processor for an algebraic modelling language that is capable of generating the problem in parallel. PSMG's solver interface delegates to the solver the task of deciding how to distribute problem parts to processors thus achieving better data locality and load balancing.
We also report performance benchmark test on two different structured problems of various sizes. The results show that PSMG achieves good parallel efficiency on up to 96 processes. The distributed memory design for PSMG also enables the generation of problems that are too large to be processed on a single node due to memory restriction.
Algebraic modelling language, stochastic programming, parallel model generator, structure exploitation
Submitted for publication