  MiMiC is a framework for performing multiscale simulations, where individual
subsystems are handled at different resolutions and/or levels of theory by
loosely coupled external programs. To make it highly efficient and flexible, we
adopt an interoperable approach based on a multiple-program multiple-data
paradigm, serving as an intermediary responsible for fast data exchange and
interactions between the subsystems. The main goal of MiMiC is to avoid
interfering with the underlying parallelization of the external programs,
including the operability on hybrid architectures (e.g., CPU/GPU), and keep
their setup and execution as close as possible to the original. At the moment,
MiMiC offers an efficient implementation of electrostatic embedding QM/MM that
has demonstrated unprecedented parallel scaling in simulations of large
biomolecules using CPMD and GROMACS as QM and MM engines, respectively.
However, as it is designed for high flexibility with general multiscale models
in mind, it can be straightforwardly extended beyond QM/MM. In this article, we
illustrate the software design and the features of the framework, which make it
a compelling choice for multiscale simulations in the upcoming era of exascale
high-performance computing.
