MMSODA offers the functionality of a number of previously separate softwares (all developed by Jasper A. Vrugt), namely SCEM-UA, SODA, MOSCEM-UA, multi-objective SODA, the MPITB-parallel version of SCEM-UA implemented in Octave, and the MPITB-parallel version of SODA implemented in Octave. Additionally, MMSODA offers a parallel version of multi-objective SCEM-UA, and a parallel version of multi-objective SODA. MMSODA does not use Octave when running in parallel, because Octave does not evaluate code as quickly as does MATLAB.
In short, the acronyms mentioned above mean that: MMSODA can do parameter tuning with or without intermediate state updating by an ensemble Kalman Filter; that MMSODA supports both single-objective and multi-objective optimization; and that the optimization can be run either sequentially on a local machine, or in parallel on a cluster computer. The serial/parallel capability is particularly attractive, since it allows the users to set up their optimizations locally on their own machines, thus ensuring a familiar development environment without the need to make the code compatible with Octave syntax. When the user finishes setting up the optimization, running it on a cluster computer is simply a matter of copying the relevant directory to the cluster storage using standard tools (e.g. WinSCP) and compiling the software by executing a script that comes with the software. Furthermore, MMSODA is fully documented with HTML documentation which can be accessed in the same way as MATLAB’s built-in commands, namely through the doc command.