State-of-the-art Datalog engines include expressive features such as ADTs (structured heap values), stratified aggregation and negation, various primitive operations, and the opportunity for further extension using FFIs. Current parallelization approaches for state-of-art Datalogs target shared-memory locking data-structures using conventional multi-threading, or use the map-reduce model for distributed computing. Furthermore, current state-of-art approaches cannot scale to formal systems which pervasively manipulate structured data due to their lack of indexing for structured data stored in the heap. In this paper, we describe a new approach to data-parallel structured deduction that involves a key semantic extension of Datalog to permit first-class facts and higher-order relations via defunctionalization, an implementation approach that enables parallelism uniformly both across sets of disjoint facts and over individual facts with nested structure. We detail a core language, $DL_s$, whose key invariant (subfact closure) ensures that each subfact is materialized as a top-class fact. We extend $DL_s$ to Slog, a fully-featured language whose forms facilitate leveraging subfact closure to rapidly implement expressive, high-performance formal systems. We demonstrate Slog by building a family of control-flow analyses from abstract machines, systematically, along with several implementations of classical type systems (such as STLC and LF). We performed experiments on EC2, Azure, and ALCF's Theta at up to 1000 threads, showing orders-of-magnitude scalability improvements versus competing state-of-art systems.
翻译:最新数据引擎包括表达性特征, 如 ADT( 结构型堆积值)、 分层汇总和否定、 各种原始操作, 以及利用 FFFIs 进一步扩展的机会 。 目前, 最新数据仪使用常规多读系统, 或使用地图- 降序模型进行分布计算, 使用常规多读系统, 使用 地图- 降序模型, 包括 结构化模型 。 此外, 目前, 最新方法无法推广到 正式系统, 这些系统缺乏结构化数据的索引 。 在本文件中, 我们描述了一种新的数据- 平行结构推论方法, 包括数据仪的关键语义扩展, 以便允许一等事实和高排序数据结构 。 一种实施方法, 使得在一系列不相干的事实之间以及使用嵌套式结构的单个数据的平行化。 我们详细介绍了一种核心语言 $DL_ s$,, 其关键变量( 子系统关闭) 能够确保每个子系统作为顶级数据化的实验事实 。 我们扩展了, 直径直线型 的系统, 显示 直径直径系统 的系统 。 我们扩展 Salalalal- 的系统 向, 的系统 展示了 的系统, 向 向 直径流,, 直径向 直径流 直径向 向 向 向 直径向, 直径向 。