  The Trotter-Suzuki approximation leads to an efficient algorithm for solving
the time-dependent Schr\"odinger equation. Using existing highly optimized CPU
and GPU kernels, we developed a distributed version of the algorithm that runs
efficiently on a cluster. Our implementation also improves single node
performance, and is able to use multiple GPUs within a node. The scaling is
close to linear using the CPU kernels, whereas the efficiency of GPU kernels
improve with larger matrices. We also introduce a hybrid kernel that
simultaneously uses multicore CPUs and GPUs in a distributed system. This
kernel is shown to be efficient when the matrix size would not fit in the GPU
memory. Larger quantum systems scale especially well with a high number nodes.
The code is available under an open source license.
