科技报告详细信息
From Petascale to Exascale: Eight Focus Areas of R&D Challenges for HPC Simulation Environments
Springmeyer, R ; Still, C ; Schulz, M ; Ahrens, J ; Hemmert, S ; Minnich, R ; McCormick, P ; Ward, L ; Knoll, D
Lawrence Livermore National Laboratory
关键词: Data Analysis;    Management;    Programming Languages;    Productivity;    Computer Architecture;   
DOI  :  10.2172/1022160
RP-ID  :  LLNL-TR-474731
RP-ID  :  W-7405-ENG-48
RP-ID  :  1022160
美国|英语
来源: UNT Digital Library
PDF
【 摘 要 】

Programming models bridge the gap between the underlying hardware architecture and the supporting layers of software available to applications. Programming models are different from both programming languages and application programming interfaces (APIs). Specifically, a programming model is an abstraction of the underlying computer system that allows for the expression of both algorithms and data structures. In comparison, languages and APIs provide implementations of these abstractions and allow the algorithms and data structures to be put into practice - a programming model exists independently of the choice of both the programming language and the supporting APIs. Programming models are typically focused on achieving increased developer productivity, performance, and portability to other system designs. The rapidly changing nature of processor architectures and the complexity of designing an exascale platform provide significant challenges for these goals. Several other factors are likely to impact the design of future programming models. In particular, the representation and management of increasing levels of parallelism, concurrency and memory hierarchies, combined with the ability to maintain a progressive level of interoperability with today's applications are of significant concern. Overall the design of a programming model is inherently tied not only to the underlying hardware architecture, but also to the requirements of applications and libraries including data analysis, visualization, and uncertainty quantification. Furthermore, the successful implementation of a programming model is dependent on exposed features of the runtime software layers and features of the operating system. Successful use of a programming model also requires effective presentation to the software developer within the context of traditional and new software development tools. Consideration must also be given to the impact of programming models on both languages and the associated compiler infrastructure. Exascale programming models must reflect several, often competing, design goals. These design goals include desirable features such as abstraction and separation of concerns. However, some aspects are unique to large-scale computing. For example, interoperability and composability with existing implementations will prove critical. In particular, performance is the essential underlying goal for large-scale systems. A key evaluation metric for exascale models will be the extent to which they support these goals rather than merely enable them.

【 预 览 】
附件列表
Files Size Format View
1022160.pdf 1321KB PDF download
  文献评价指标  
  下载次数:7次 浏览次数:21次