Modern deductive database engines (e.g., LogicBlox and Souffl\'e) enable their users to write declarative queries which compute recursive deductions over extensional data, leaving their high-performance operationalization (query planning, semi-na\"ive evaluation, and parallelization) to the engine. Such engines form the backbone of modern high-throughput applications in static analysis, security auditing, social-media mining, and business analytics. State-of-the-art engines are built upon nested loop joins over explicit representations (e.g., BTrees and tries) and ubiquitously employ range indexing to accelerate iterated joins. In this work, we present GDlog: a GPU-based deductive analytics engine (implemented as a CUDA library) which achieves significant performance improvements (5--10x or more) versus prior systems. GDlog is powered by a novel range-indexed SIMD datastructure: the hash-indexed sorted array (HISA). We perform extensive evaluation on GDlog, comparing it against both CPU and GPU-based hash tables and Datalog engines, and using it to support a range of large-scale deductive queries including reachability, same generation, and context-sensitive program analysis. Our experiments show that GDlog achieves performance competitive with modern SIMD hash tables and beats prior work by an order of magnitude in runtime while offering more favorable memory footprint.
翻译:现代演绎数据库引擎(如LogicBlox和Soufflé)允许用户编写声明式查询,对扩展数据计算递归推理,而高性能的实现(查询规划、半朴素评估和并行化)则由引擎负责。此类引擎构成了静态分析、安全审计、社交媒体挖掘和商业分析等现代高吞吐量应用的支柱。最新引擎基于显式数据结构(如B树和字典树)上的嵌套循环连接,并广泛采用范围索引加速迭代连接。本文提出GDlog:一种基于GPU的演绎分析引擎(作为CUDA库实现),相比先前系统实现了显著的性能提升(5-10倍或更多)。GDlog的核心是一种新颖的基于范围索引的SIMD数据结构:哈希索引排序数组(HISA)。我们对GDlog进行了广泛评估,将其与基于CPU和GPU的哈希表及Datalog引擎进行了比较,并支持从可达性、同代关系到上下文敏感程序分析等一系列大规模演绎查询。实验表明,GDlog的性能可与现代SIMD哈希表相媲美,在运行时间上比先前工作高出一个数量级,同时具有更优的内存占用。