Runtime optimization of a memory efficient CG solver for FFT-based homogenization: Implementation details and scaling results for linear elasticity
The memory efficient CG algorithm of Kabel et al. (Comput Mech 54(6):1497-1514, 2014) reduces the memory requirements of a strain based implementation of the CG algorithm following Zeman et al. (J Comput Phys 229(21):8065-8071, 2010) for solving the equations of linear elasticity by 40%. But since the Fourier wave vectors have to be recalculated at several steps of the memory efficient algorithm, the runtime increases for a straightforward implementation.. We explain how to reduce the runtime overhead to a negligible size, and show that the memory efficient algorithm scales better than the standard algorithm with up to 256 MPI processes.