Tackling complexity in high performance computing applications
File(s)art%3A10.1007%2Fs10766-016-0422-9.pdf (1.44 MB)
Published version
Author(s)
Darlington, J
Field, A
Hakim, L
Type
Journal Article
Abstract
We present a software framework that supports the specification of userdefinable
configuration options in HPC applications independently of the application
code itself. Such options include model parameter values, the selection of numerical
algorithm, target platform etc. and additional constraints that prevent invalid combinations
of options from being made. Such constraints, which are capable of describing
complex cross-domain dependencies, are often crucial to the correct functioning of
the application and are typically either completely absent from the code or a hard
to recover from it. The framework uses a combination of functional workflows and
constraint solvers. Application workflows are built from a combination of functional
components: higher-order co-ordination forms and first-order data processing components
which can be either concrete or abstract, i.e. without a specified implementation
at the outset. A repository provides alternative implementations for these abstract components.
A constraint solver, written in Prolog, guides a user in making valid choices
of parameters, implementations, machines etc. for any given context. Partial designs
can be stored and shared providing a systematic means of handling application use
and maintenance. We describe our methodology and illustrate its application in two
classes of application: a data intensive commercial video transcoding example and a
numerically intensive incompressible Navier–Stokes solver.
configuration options in HPC applications independently of the application
code itself. Such options include model parameter values, the selection of numerical
algorithm, target platform etc. and additional constraints that prevent invalid combinations
of options from being made. Such constraints, which are capable of describing
complex cross-domain dependencies, are often crucial to the correct functioning of
the application and are typically either completely absent from the code or a hard
to recover from it. The framework uses a combination of functional workflows and
constraint solvers. Application workflows are built from a combination of functional
components: higher-order co-ordination forms and first-order data processing components
which can be either concrete or abstract, i.e. without a specified implementation
at the outset. A repository provides alternative implementations for these abstract components.
A constraint solver, written in Prolog, guides a user in making valid choices
of parameters, implementations, machines etc. for any given context. Partial designs
can be stored and shared providing a systematic means of handling application use
and maintenance. We describe our methodology and illustrate its application in two
classes of application: a data intensive commercial video transcoding example and a
numerically intensive incompressible Navier–Stokes solver.
Date Issued
2016-04-16
Date Acceptance
2016-03-30
Citation
International Journal of Parallel Programming, 2016, 45 (2), pp.402-420
ISSN
1573-7640
Publisher
Springer Verlag (Germany)
Start Page
402
End Page
420
Journal / Book Title
International Journal of Parallel Programming
Volume
45
Issue
2
Copyright Statement
© The Author(s) 2016. Open Access.
This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
License URL
Subjects
Science & Technology
Technology
Computer Science, Theory & Methods
Computer Science
High performance computing
Application development frameworks
Functional workflows
Constraint solving
0805 Distributed Computing
0803 Computer Software
Distributed Computing
Publication Status
Published