This client-server model allows for full flexibility in its deployment; the client and server can be installed on the same machine, or on different machines connected by a local area network or the Internet. The two-part decomposition of the server in terms of middleware and engines additionally allows for advanced high-volume setups in which the middleware server distributes the engine instances over a number of machines, such as those in a cluster or cloud. This architecture thus ensures high speed in large-scale simulations and does not rely on the CPU-specific availability accessible by the user.