Industrial & Engineering Chemistry Research, Vol.54, No.47, 11903-11914, 2015
Multiscale, Multidomain Modeling and Parallel Computation: Application to Crystal Shape Evolution in Crystallization
We focus on the development of a parallelized multiscale, multidomain modeling scheme that directly reduces computation time requirements without compromising the accuracy of established chemical models. Specifically, creating a parallel computation program from a sequential one consists of three steps: (1) decomposition of the original problem into tasks or domains, (2) assignment of tasks to processors, and (3) orchestration (using a programming mechanism) to communicate and synchronize the information flow among all processors involved. In this work, we applied a parallelized multiscale modeling strategy according to the above three steps to a multiscale model of a batch crystallization process. First, we decomposed the nucleation and crystal growth processes in a batch crystallization system into the collection of tasks where each task represents the crystal growth of a nucleated crystal. Second, the tasks (i.e., simulating the crystal growth of nucleated crystals) are assigned according to a modulus function where the number of crystal modules is equal to the number of processors available. Third, the message-passing interface (MPI) settings that use the information passing between the processors is used to link the macroscopic model (e.g., mass and energy balance equations describing continuous-phase variables) to the microscopic models (e.g., kinetic Monte Carlo model describing crystal nucleation, growth, and shape evolution). The parallelized multiscale simulation utilizes a manager worker MPI computational scheme: There is a processor (i.e., manager) that is responsible for decomposing an original sequential problem (e.g., multiscale model to simulate batch crystallization system) into a number of tasks (e.g., crystal growth of a group of crystals) and allocating those tasks to processors (i.e., workers). Workers are responsible for solving assigned tasks, and when a worker completes the simulation of an assigned task, it notifies the manager. Then, the manager allocates a new task to the processor. Before initiating their following task executions, all processors wait until they have received all the data computed by the other processors at the previous task execution step, allowing for a synchronization of the tasks over the processors used. Therefore, we are able to achieve a significant decrease in time required to complete the batch simulation as the number of cores is increased. A series of results demonstrating the computational efficiency of the approach using the batch crystallization process multiscale model are presented. Specifically, a linear speedup behavior is observed up to the use of 32 cores, and the maximum speedup of about 39-fold is achieved when we use 64 cores.