\(\textsc {InKS}_{\textsf {}}\), a Programming Model to Decouple Performance from Algorithm in HPC Codes

2018 
Existing programming models tend to tightly interleave algorithm and optimization in HPC simulation codes. This requires scientists to become experts in both the simulated domain and the optimization process and makes the code difficult to maintain and port to new architectures. This paper proposes the \(\textsc {InKS}_{\textsf {}}\) programming model that decouples these two concerns with distinct languages for each. The simulation algorithm is expressed in the \(\textsc {InKS}_{\textsf {pia}}\) language with no concern for machine-specific optimizations. Optimizations are expressed using both a family of dedicated optimizations DSLs (\(\textsc {InKS}_{\textsf {O}}\)) and plain C++. \(\textsc {InKS}_{\textsf {O}}\) relies on the \(\textsc {InKS}_{\textsf {pia}}\) source to assist developers with common optimizations while C++ is used for less common ones. Our evaluation demonstrates the soundness of the approach by using it on synthetic benchmarks and the Vlasov-Poisson equation. It shows that \(\textsc {InKS}_{\textsf {}}\) offers separation of concerns at no performance cost.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    20
    References
    2
    Citations
    NaN
    KQI
    []