Paralyzer is a simple tool to aid with phase equilibria calculation in Perple_X. Specifically, Paralyzer is designed to take a calculation that would normally be run in vertex and split it into a number of segments that are then calculated independently of each other (either sequentially or in parallel on a multiple processor computer). A major advantage of this approach is that the compositional range of each phase within a calculation segment is typically far less than across the entire diagram, so the calculation becomes dramatically simpler (more information on Perple_X's 'pseudocompound approximation' and current optimization strategies can be found in Connolly, 2009, G-cubed). This allows either (i) substantially faster calculation for any given problem, or (ii) better possible compositional resolution without causing vertex to fail.

Paralyzer is distributed as a series of Matlab scripts that are linked to make operation as user-friendly as possible. Fuller instructions are bundled with the download, but effectively all that is required is for the scripts to be placed in the same folder as vertex and the 'problem files' (e.g. the dataset, solution model and perplex_options files). Simply then navigate to this folder in Matlab and run 'Paralyzer' – a pop-up window will give a few simple options (see image to right). Paralyzer will then automatically split the problem into multiple segments, control the sequential/simulataneous calculation of phase equilibria in each segment, and finally combine the results of each segment into a series of 'master files'. These can then be interpreted as if they were standard Perple_X outputs (i.e to generate a single phase diagram or contour maps of mineral/rock properties). Perple_X's 'werami' and 'pssect' programs shouldn't even realize that the calculation was run in multiple parallel segments.

We're working on a paper that more fully describes some of the benefits of this parallelization approach, and will include both benchmarks of specific phase equilibria problems and details of particularly efficient parameter sets. In the meantime, a moderately-well documented version of the code can be obtained here (downloads a zip file with the Paralyzer scripts and instructions).

Version and debugging history


Paralyzer input window. All inputs and options are controlled from this screen.