首页> 外文OA文献 >Knowledge-based automatic generation of linear algebra algorithms and code
【2h】

Knowledge-based automatic generation of linear algebra algorithms and code

机译:基于知识的线性代数算法和代码的自动生成

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

This dissertation focuses on the design and the implementation of domain-specific compilers for linear algebra matrix equations. The development of efficient libraries for such equations, which lie at the heart of most software for scientific computing, is a complex process that requires expertise in a variety of areas, including the application domain, algorithms, numerical analysis and high-performance computing. Moreover, the process involves the collaboration of several people for a considerable amount of time. With our compilers, we aim to relieve the developers from both designing algorithms and writing code, and to generate routines that match or even surpass the performance of those written by human experts. We present two compilers, CLAK and CL1CK, that take as input the description of a target equation together with domain-specific knowledge, and generate efficient customized algorithms and routines. CLAK targets high-level matrix equations, possibly encompassing the solution of multiple instances of interdependent problems. This compiler generates algorithms consisting in a sequence of library-supported building blocks. It builds on top of a methodology that combines a model of human expert reasoning with the power of computers; the search for algorithms makes use of the available domain knowledge to prune the search space and to tailor the algorithms to the application. Along the process, clak{} prioritizes the reduction of the computational cost, the elimination of redundant computations, and the selection of the most suitable building blocks. For one target equation, many algorithms, with different properties, are generated. CL1CK, instead, addresses the generation of algorithms for specialized building blocks. To this end, this compiler adopts the FLAME methodology for the derivation of formally correct loop-based algorithms. CL1CK takes a three-stage approach: First, the PME(s) - a recursive definition of the target operation in a divide and conquer fashion - is found; then, the PME is analyzed to identify a family of loop invariants; finally, each loop invariant is transformed into a corresponding loop-based algorithm. CL1CK fully automates the application of this methodology; in this dissertation, we dissect the mechanisms necessary to make it possible. As we show, for our compilers, the exploitation of both linear algebra and application-specific knowledge is crucial to generate efficient customized solvers. In order to facilitate the management of knowledge and to increase productivity, we raise the abstraction level and provide the users with an expressive domain-specific language that allows them to reason at the matrix equation level. The users are thus able to state what needs to be solved, providing as much domain knowledge as possible, and delegating the compilers to find how to efficiently solve it. We illustrate the potential of our compilers by applying them to real world problems. For instance, for a challenging problem arising in computational biology, the exploitation of the available knowledge leads to algorithms that lower the complexity of existing methods by orders of magnitude. Our algorithms, at the heart of the publicly available library OmicABEL, have become the state-of-the-art. We also carry out a thorough study of the application of our compilers to derivative operations, quantifying how much tools used in algorithmic differentiation can benefit from incorporating the techniques discussed in this dissertation. The experiments demonstrate the compilers' potential to produce efficient derivative versions of part of LAPACK and of the entire BLAS, an effort that requires thousands of routines and for which a manual approach is unfeasible. This dissertation provides evidence that a linear algebra compiler, which increases experts' productivity and makes efficiency accessible to non-experts, is within reach.
机译:本文主要研究线性代数矩阵方程的领域特定编译器的设计和实现。这种方程式的有效库的开发是大多数科学计算软件的核心,是一个复杂的过程,需要在各个领域提供专业知识,包括应用领域,算法,数值分析和高性能计算。此外,该过程涉及大量人员的大量协作。通过我们的编译器,我们旨在减轻开发人员设计算法和编写代码的负担,并生成与人类专家编写的程序相匹配甚至超越其性能的例程。我们提供了CLAK和CL1CK这两个编译器,它们将目标方程的描述以及特定领域的知识作为输入,并生成有效的自定义算法和例程。 CLAK的目标是高级矩阵方程,可能包含多个相互依赖的问题的解决方案。该编译器生成由一系列库支持的构建块组成的算法。它建立在将人类专家推理模型与计算机功能相结合的方法论之上。搜索算法将利用可用的领域知识来修剪搜索空间并针对应用程序定制算法。在整个过程中,clak {}优先考虑降低计算成本,消除冗余计算以及选择最合适的构件。对于一个目标方程,会生成许多具有不同属性的算法。相反,CL1CK解决了专用模块的算法生成问题。为此,该编译器采用FLAME方法来推导形式正确的基于循环的算法。 CL1CK采用三个阶段的方法:首先,找到PME(以分而治之的方式对目标操作进行递归定义);然后,对PME进行分析以识别一族循环不变式;最后,将每个循环不变式转换为相应的基于循环的算法。 CL1CK完全自动化了该方法的应用。在本文中,我们剖析了使之成为可能的机制。正如我们所展示的,对于我们的编译器而言,线性代数和特定于应用程序的知识的利用对于生成高效的自定义求解器至关重要。为了简化知识管理并提高生产率,我们提高了抽象级别,并为用户提供了一种表达性的领域特定语言,使他们可以在矩阵方程式级别进行推理。用户因此能够陈述需要解决的问题,提供尽可能多的领域知识,并委派编译器以找到有效解决问题的方法。我们通过将编译器应用于实际问题来说明其潜力。例如,对于在计算生物学中出现的具有挑战性的问题,对可用知识的利用导致了将现有方法的复杂性降低几个数量级的算法。我们的算法(位于公开可用的库OmicABEL的核心)已经成为最新技术。我们还对编译器在微分运算中的应用进行了透彻的研究,量化了算法差异化所使用的工具可以从本文讨论的技术中受益。实验证明了编译器具有产生LAPACK的一部分和整个BLAS的高效派生版本的潜力,这种工作需要成千上万个例程,而手动方法是不可行的。本文提供了线性代数编译器的证据,该编译器可以提高专家的生产率,并使非专家可以提高效率。

著录项

  • 作者

    Fabregat Traver Diego;

  • 作者单位
  • 年度 2013
  • 总页数
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号