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...
Autores principales: | , , |
---|---|
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 |