Department of Physics
University of California at Berkeley
501 Birge Hall
Tel. 510 642-2635
May 24, 1997
We present a parallel implementation of our new method to compute the nuclear magnetic resonance (NMR) chemical shift in condensed matter. Our theory uses a quantum-mechanical framework to compute the magnetic field induced by a uniform external magnetic field. While it has been previously possible to compute the chemical shift of finite systems such as molecules only, our method allows us to treat infinitely extended systems such as crystals, liquids and amorphous solids. By solving a system of linear equations rather than computing the full spectrum of a matrix, we are able to handle hundred atoms and more. From the beginning, the algorithm and implementation were designed to be parallel. We devise a blocked conjugate-gradient solver for better cache utilization. The three-dimensional Fast Fourier Transform (FFT) involved in Matrix-vector products is the most difficult to parallelize. We describe the data layout, and show that our implementation using the MPI message passing library and Fortran 90 gives good efficiency and portability. Performance numbers for the Cray T3E, IBM SP2, and SGI PowerChallenge are presented and discussed.