TY - JOUR
T1 - Vectorization, threading, and cache-blocking considerations for hydrocodes on emerging architectures
AU - Fung, J.
AU - Aulwes, R. T.
AU - Bement, M. T.
AU - Campbell, J. M.
AU - Ferenbaugh, C. R.
AU - Jean, B. A.
AU - Kelley, T. M.
AU - Kenamond, M. A.
AU - Lally, B. R.
AU - Lovegrove, E. G.
AU - Nelson, E. M.
AU - Powell, D. M.
N1 - Publisher Copyright:
& Sons, Ltd.
PY - 2015/12/20
Y1 - 2015/12/20
N2 - The computational efficiency of existing hydrocodes is expected to suffer as computer architectures advance beyond the traditional parallel central processing unit (CPU) model . Concerning new computer architectures, sources of relative performance degradation might include reduced memory bandwidth per core, increased resource contention due to concurrency, increased single instruction, multiple data (SIMD) length, and increasingly complex memory hierarchies. Concerning existing codes, any performance degradation will be influenced by a lack of attention to performance in their design and implementation. This work reports on considerations for improving computational performance in preparation for current and expected changes to computer architecture. The algorithms studied will include increasingly complex prototypes for radiation hydrodynamics codes, such as gradient routines and diffusion matrix assembly (e.g., in ). The meshes considered for the algorithms are structured or unstructured meshes. The considerations applied for performance improvements are meant to be general in terms of architecture (not specifically graphical processing unit (GPUs) or multi-core machines, for example) and include techniques for vectorization, threading, tiling, and cache blocking. Out of a survey of optimization techniques on applications such as diffusion and hydrodynamics, we make general recommendations with a view toward making these techniques conceptually accessible to the applications code developer. Published 2015. This article is a U.S. Government work and is in the public domain in the USA. We present considerations for improving computational performance of hydrodynamics codes in preparation for current and expected changes to computer architecture. The algorithms studied include prototypes such as gradient routines, and the considerations applied for performance improvements include techniques for vectorization, threading, tiling, and cache blocking. Out of a survey of optimization techniques on applications such as diffusion and hydro, we make general recommendations with a view toward making these techniques conceptually accessible to the applications code developer.
AB - The computational efficiency of existing hydrocodes is expected to suffer as computer architectures advance beyond the traditional parallel central processing unit (CPU) model . Concerning new computer architectures, sources of relative performance degradation might include reduced memory bandwidth per core, increased resource contention due to concurrency, increased single instruction, multiple data (SIMD) length, and increasingly complex memory hierarchies. Concerning existing codes, any performance degradation will be influenced by a lack of attention to performance in their design and implementation. This work reports on considerations for improving computational performance in preparation for current and expected changes to computer architecture. The algorithms studied will include increasingly complex prototypes for radiation hydrodynamics codes, such as gradient routines and diffusion matrix assembly (e.g., in ). The meshes considered for the algorithms are structured or unstructured meshes. The considerations applied for performance improvements are meant to be general in terms of architecture (not specifically graphical processing unit (GPUs) or multi-core machines, for example) and include techniques for vectorization, threading, tiling, and cache blocking. Out of a survey of optimization techniques on applications such as diffusion and hydrodynamics, we make general recommendations with a view toward making these techniques conceptually accessible to the applications code developer. Published 2015. This article is a U.S. Government work and is in the public domain in the USA. We present considerations for improving computational performance of hydrodynamics codes in preparation for current and expected changes to computer architecture. The algorithms studied include prototypes such as gradient routines, and the considerations applied for performance improvements include techniques for vectorization, threading, tiling, and cache blocking. Out of a survey of optimization techniques on applications such as diffusion and hydro, we make general recommendations with a view toward making these techniques conceptually accessible to the applications code developer.
KW - Arbitrary Lagrangian Eulerian (ALE) methods
KW - Computer science and advanced architectures
KW - Lagrangian hydrodynamics
KW - Radiation hydrodynamics
UR - http://www.scopus.com/inward/record.url?scp=84946014698&partnerID=8YFLogxK
U2 - 10.1002/fld.4063
DO - 10.1002/fld.4063
M3 - Article
AN - SCOPUS:84946014698
SN - 0271-2091
VL - 79
SP - 596
EP - 613
JO - International Journal for Numerical Methods in Fluids
JF - International Journal for Numerical Methods in Fluids
IS - 11
ER -