课题基金 / 基金详情

Toward an Industrial Strength Automatic Differentiation Product

Toward an Industrial Strength Automatic Differentiation Product
迈向工业级自动差异化产品
批准号:
EP/J013358/1
负责人:
Bruce Christianson
金额:
$12.93万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2012
资助国家:
英国
项目状态:
已结题
起止时间:
2012 至 --

项目摘要

项目成果

Bruce Christianson的其他基金

相似基金

相关文献

中文摘要
翻译
复杂现实世界现象的数值模拟是几乎所有科学和工程活动的主要挑战,特别是当它不仅需要模拟过程(如汽车或风力涡轮机表面的气流),而且需要优化过程(例如,调整表面形状以最大限度地减少阻力)时。为了有效地解决大型问题,模型必须能够获得精确(无编码、舍入和截断误差)且计算成本低的数值导数(输出相对于输入的灵敏度)。目前,大多数用户要么提供手工编码的衍生程序,这是繁琐的程序和更新,并容易出现编码错误;或有限差分,这是昂贵的计算和数值不准确。自动微分(AD)是一套用于机械转换数值建模代码的技术,以便以与手工编码导数相同的速度和相同的精度计算模型值以及值本身的数值灵敏度。这是通过使用微积分中的链式法则来完成的,但直接应用于浮点数值,而不是符号表达式。AD的所谓反向或伴随模式可以为评估模型的计算机程序产生一组完整的灵敏度,其计算成本是程序本身单个评估的五倍-即使有数百万个输入变量和灵敏度。然而,实现这一点需要能够使程序向后运行,恢复过程中的所有中间数值,这需要开发和使用复杂的软件工具。AD技术在建模和优化中仍然没有得到广泛应用,这在很大程度上是由于缺乏合适的用户友好的通用商业AD工具。当前的AD工具要么通过运算符重载工作,要么通过源代码预处理工作。运算符重载是可靠的,但速度很慢,并且不支持对专业数值库函数(如线性代数例程)的调用。源代码预处理工具要求用户对AD有很高的认识,生成的代码不容易被人类理解,并且存在内存管理问题。CompAD团队开发的研究编译器支持EPSRC,是NAG Fortran 95编译器的增强版,仍然是世界上唯一内置AD支持的工业级编译器。在现有的高性能编译器中嵌入AD的重载方法可以两全其美:重载方法的方便性和源代码预处理的速度。然而,目前的编译器是一个研究工具,需要专家的帮助来配置和集成应用程序代码。因此,CompAD编译器的研究版本目前的形式不适合大多数潜在的受益者。这一后续提案将从CompAD编译器中提取AD功能,将其与NAGWare Fortran库集成,并使产生的原型广泛可用。除了为许多用户提供直接利益外,该原型还将适合系统的市场测试和开发。该原型将用于获取用户对商业上可行的软件反倾销产品的需求,并支持随后的开发,该产品将在中等规模的问题上“开箱即用”。
英文摘要
Numerical simulation of complex real-world phenomena is a major challenge for almost all activities in science and engineering, particularly when it is desired not merely to model a process (such as airflow across the surface of a car or a wind turbine) but to optimise the process (for example, to adjust the shape of the surface so as to minimize the drag). To do this efficiently for large problems, it is essential for the model to have access to numerical derivatives (sensitivities of the outputs with respect to inputs) that are accurate (free from coding, rounding and trunction errors) and computationally cheap. At present most users either provide hand-coded derivative routines, which are tedious to program and update, and prone to coding errors; or finite differences, which are expensive to compute and numerically inaccurate. Automatic Differentiation (AD) is a set of techniques for transforming numerical modelling code mechanically so that it calculates the numerical sensitivities of the model values as well as the values themselves, at the same order of speed as hand-coded derivatives, and to the same precision. This is done by using the chain rule from calculus, but applied directly to floating point numerical values, rather than to symbolic expressions. The so-called reverse, or adjoint, mode of AD can produce a complete set of sensitivities for a computer program evaluating a model, at a computational cost of order five times that of a single evaluation of the program itself - even if there are millions of input variables and sensitivities. However, achieving this requires the ability to make the program run backwards, recovering all the intermediate numerical values in the process, and it is this which requires the development and use of sophisticated software tools. AD techniques are still not widely used in modelling and optimisation, due in large part to a lack of suitable user-friendly general-purpose commercial-strength AD tools. Current AD tools work either by operator overloading or by source pre-processing. Operator overloading is reliable, but slow, and do not provide support for calls to specialist numerical library functions, such as linear algebra routines. Source pre-processing tools require a high user awareness of AD, produce code that is not easy for humans to understand, and have memory management issues.The research compiler developed by the CompAD team with EPSRC support is an enhancement of the NAG Fortran95 compiler, and is still the world's only industrial strength compiler to have built-in support for AD. Embedding an overloading approach to AD within an existing high performance compiler gives the best of both worlds: the convenience of the overloading approach and the speed of source pre-processing. However the current compiler is a research tool, and requires expert assistance to configure and integrate with application code. Consequently the research version of the CompAD compiler is unsuitable in its present form for the majority of potential beneficiaries. This follow-on proposal will extract the AD functionality from the CompAD compiler, integrate it with the NAGWare Fortran Library, and make the resulting prototype widely available. As well as providing an immediate benefit to many users, this prototype will be suitable for systematic market testing and development. The prototype will be used to capture user requirements for, and to underpin subsequent development of, a commercially viable software AD product that will work "out-of-the-box" on problems of moderate size.
期刊论文(10)
专著(0)
科研奖励(0)
会议论文
Estimation of Data Assimilation Error: A Shallow-Water Model Study
资料同化误差的估计:浅水模型研究
DOI: 10.1175/mwr-d-13-00205.1
发表时间: 2014
期刊: Monthly Weather Review
影响因子: 3.2
作者: [Korn P]
通讯作者: Korn P
Sustainable Hydraulics in the Era of Global Change - Proceedings of the 4th IAHR Europe Congress (Liege, Belgium, 27-29 July 2016)
全球变革时代的可持续水力学 - 第四届 IAHR 欧洲大会论文集(比利时列日,2016 年 7 月 27-29 日)
DOI: 10.1201/b21902-94
发表时间: 2016
期刊:
影响因子: --
作者: [Merkel U]
通讯作者: Merkel U
Modular design of data-parallel graph algorithms
数据并行图算法的模块化设计
DOI: 10.1109/hpcsim.2013.6641446
发表时间: 2013
期刊:
影响因子: --
作者: [Dash S]
通讯作者: Dash S
DOI: 10.1016/j.tcs.2013.09.030
发表时间: 2013-11-18
期刊: THEORETICAL COMPUTER SCIENCE
影响因子: 1.1
作者: [Dash, Santanu Kumar, Scholz, Sven-Bodo, Christianson, Bruce]
通讯作者: Christianson, Bruce
Differentiation-Enabled Compiler Technology (COMPAD-III)
  • 批准号:
    EP/F069383/1
  • 项目类别:
    Research Grant
  • 资助金额:
    $30.17万
  • 财政年份:
    2008
  • 负责人:
    Bruce Christianson
  • 依托单位:
Differentiation-Enabled Fortran 95 Compiler Technology (CompAD-II)
  • 批准号:
    EP/D062071/1
  • 项目类别:
    Research Grant
  • 资助金额:
    $40.48万
  • 财政年份:
    2006
  • 负责人:
    Bruce Christianson
  • 依托单位:
海外基金