  Replica Exchange (RE) simulations have emerged as an important algorithmic
tool for the molecular sciences. RE simulations involve the concurrent
execution of independent simulations which infrequently interact and exchange
information. The next set of simulation parameters are based upon the outcome
of the exchanges.
  Typically RE functionality is integrated into the molecular simulation
software package. A primary motivation of the tight integration of RE
functionality with simulation codes has been performance. This is limiting at
multiple levels. First, advances in the RE methodology are tied to the
molecular simulation code. Consequently these advances remain confined to the
molecular simulation code for which they were developed. Second, it is
difficult to extend or experiment with novel RE algorithms, since expertise in
the molecular simulation code is typically required.
  In this paper, we propose the RepEx framework which address these
aforementioned shortcomings of existing approaches, while striking the balance
between flexibility (any RE scheme) and scalability (tens of thousands of
replicas) over a diverse range of platforms. RepEx is designed to use a
pilot-job based runtime system and support diverse RE Patterns and Execution
Modes. RE Patterns are concerned with synchronization mechanisms in RE
simulation, and Execution Modes with spatial and temporal mapping of workload
to the CPU cores. We discuss how the design and implementation yield the
following primary contributions of the RepEx framework: (i) its ability to
support different RE schemes independent of molecular simulation codes, (ii)
provide the ability to execute different exchange schemes and replica counts
independent of the specific availability of resources, (iii) provide a runtime
system that has first-class support for task-level parallelism, and (iv)
required scalability along multiple dimensions.
