Cargando…

Tackling Complexity in High Performance Computing Applications

We present a software framework that supports the specification of user-definable 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...

Descripción completa

Detalles Bibliográficos
Autores principales: Darlington, J., Field, A. J., Hakim, L.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2016
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7089654/
https://www.ncbi.nlm.nih.gov/pubmed/32226222
http://dx.doi.org/10.1007/s10766-016-0422-9
_version_ 1783509778368036864
author Darlington, J.
Field, A. J.
Hakim, L.
author_facet Darlington, J.
Field, A. J.
Hakim, L.
author_sort Darlington, J.
collection PubMed
description We present a software framework that supports the specification of user-definable 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.
format Online
Article
Text
id pubmed-7089654
institution National Center for Biotechnology Information
language English
publishDate 2016
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-70896542020-03-26 Tackling Complexity in High Performance Computing Applications Darlington, J. Field, A. J. Hakim, L. Int J Parallel Program Article We present a software framework that supports the specification of user-definable 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. Springer US 2016-04-16 2017 /pmc/articles/PMC7089654/ /pubmed/32226222 http://dx.doi.org/10.1007/s10766-016-0422-9 Text en © The Author(s) 2016 Open AccessThis 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.
spellingShingle Article
Darlington, J.
Field, A. J.
Hakim, L.
Tackling Complexity in High Performance Computing Applications
title Tackling Complexity in High Performance Computing Applications
title_full Tackling Complexity in High Performance Computing Applications
title_fullStr Tackling Complexity in High Performance Computing Applications
title_full_unstemmed Tackling Complexity in High Performance Computing Applications
title_short Tackling Complexity in High Performance Computing Applications
title_sort tackling complexity in high performance computing applications
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7089654/
https://www.ncbi.nlm.nih.gov/pubmed/32226222
http://dx.doi.org/10.1007/s10766-016-0422-9
work_keys_str_mv AT darlingtonj tacklingcomplexityinhighperformancecomputingapplications
AT fieldaj tacklingcomplexityinhighperformancecomputingapplications
AT hakiml tacklingcomplexityinhighperformancecomputingapplications