This book addresses the significant challenge in designing applications to effectively use high-performance computing architectures and offers methods to more effectively restructure applications to take advantage of these powerful nodes. The authors discuss the benefit of vectorization, providing examples run on current systems.