Hybrid OpenMP/MPI programs for solving the time-dependent Gross–Pitaevskii equation in a fully anisotropic trap - Satarić, Bogdan; Slavnić, Vladimir; Belić, Aleksandar; Balaž, Antun; Muruganandam, Paulsamy; Adhikari, Sadhan K. [UNESP] (Elsevier, 2016)
We present hybrid OpenMP/MPI (Open Multi-Processing/Message Passing Interface) parallelized versions of earlier published C programs (Vudragovic et al. 2012) for calculating both stationary and non-stationary solutions of the time-dependent Gross-Pitaevskii (GP) equation in three spatial dimensions. The GP equation describes the properties of dilute Bose-Einstein condensates at ultra-cold temperatures. Hybrid versions of programs use the same algorithms as the C ones, involving real- and imaginary-time propagation based on a split-step Crank-Nicolson method, but consider only a fully-anisotropic three-dimensional GP equation, where algorithmic complexity for large grid sizes necessitates parallelization in order to reduce execution time and/or memory requirements per node. Since distributed memory approach is required to address the latter, we combine MPI programming paradigm with existing OpenMP codes, thus creating fully flexible parallelism within a combined distributed/shared memory model, suitable for different modern computer architectures. The two presented C/OpenMP/MPI programs for real- and imaginary-time propagation are optimized and accompanied by a customizable makefile. We present typical scalability results for the provided OpenMP/MPI codes and demonstrate almost linear speedup until inter-process communication time starts to dominate over calculation time per iteration. Such a scalability study is necessary for large grid sizes in order to determine optimal number of MPI nodes and OpenMP threads per node.
Keywords: Bose–Einstein condensate; C program; Gross–Pitaevskii equation; MPI; OpenMP; Partial differential equation; Real- and imaginary-time propagation; Split-step Crank–Nicolson scheme