Perple_X Paralyzer 

- Poor Man's Parallel Computing


NOTE: Paralyzer has been inconsistent with the current perplex option file format since the 6.8.1 Perple_X revision. Despite this inconsistency the script can still be used to split and calculate segments of a phase diagram section. The Perple_X program UNSPLT, rather than Paralyzer, must then be used to assemble the final section. For information on this procedure refer to the messages 1743, 1731, and 1524 at groups.yahoo.com/neo/groups/Perple_X.


 

Perple_X's memory and CPU consumption during phase diagram calculations increase exponentially with the size of the computational domain (i.e., the range of physical variables to be considered). This exponential increase occurs because over a larger range of physical conditions, Perple_X must consider more phases and a wider range of phase compositions. For example, if the pressure-temperature coordinate frame of a phase diagram section is split into quarters, the total user-time and CPU cost of section calculation is reduced dramatically. More importantly, because the calculation of each quarter requires less memory, the resolution of the calculations can be increased, with the result that the quality of the final result is improved. Because the calculations of the quarters are independent of each other, the calculations can be run in parallel if a user has access to more than one CPU, resulting in a further reduction in user-time, which, unlike true parallel computing, scales perfectly with the number of available CPUs. While it is possible to implement the process of splitting and recombining calculations by hand, this process is tedious and time-consuming. For this reason, Mark Caddick wrote an easy-to-use MatLab script named Paralyzer that automates the splitting and recombination of Perple_X calculations. 

 

To download the Paralyzer script, and for instructions on its use, go to Mark Caddick's web page at:

 

www.metamorphism.geos.vt.edu/Paralyzer.html

 

The commercial MatLab program is the only requirement for running Paralyzer, you do not need a multiprocessor computer to benefit from the script. 

 

If you do not want to support Matlab, then Evangelos Moulas has written a splitting script for Octavia, the results of which can be recombined using the Perple_X program UNSPLT. UNSPLT can also be used in conjunction with Paralyzer if Paralyzer's recombine function is deactivated. Because UNSPLT has a different algorithm than Paralyzer, it is particularly useful when Paralyzer has problems recombining results.