S. Samsi, V. Gadepally, M. Hurley, Michael Jones, E. Kao, S. Mohindra, P. Monticciolo, A. Reuther, S. Smith, William S. Song, D. Staheli, J. Kepner
{"title":"Static graph challenge: Subgraph isomorphism","authors":"S. Samsi, V. Gadepally, M. Hurley, Michael Jones, E. Kao, S. Mohindra, P. Monticciolo, A. Reuther, S. Smith, William S. Song, D. Staheli, J. Kepner","doi":"10.1109/HPEC.2017.8091039","DOIUrl":null,"url":null,"abstract":"The rise of graph analytic systems has created a need for ways to measure and compare the capabilities of these systems. Graph analytics present unique scalability difficulties. The machine learning, high performance computing, and visual analytics communities have wrestled with these difficulties for decades and developed methodologies for creating challenges to move these communities forward. The proposed Subgraph Isomorphism Graph Challenge draws upon prior challenges from machine learning, high performance computing, and visual analytics to create a graph challenge that is reflective of many real-world graph analytics processing systems. The Subgraph Isomorphism Graph Challenge is a holistic specification with multiple integrated kernels that can be run together or independently. Each kernel is well defined mathematically and can be implemented in any programming environment. Subgraph isomorphism is amenable to both vertex-centric implementations and array-based implementations (e.g., using the Graph-BLAS.org standard). The computations are simple enough that performance predictions can be made based on simple computing hardware models. The surrounding kernels provide the context for each kernel that allows rigorous definition of both the input and the output for each kernel. Furthermore, since the proposed graph challenge is scalable in both problem size and hardware, it can be used to measure and quantitatively compare a wide range of present day and future systems. Serial implementations in C++, Python, Python with Pandas, Matlab, Octave, and Julia have been implemented and their single threaded performance have been measured. Specifications, data, and software are publicly available at GraphChallenge.org.","PeriodicalId":364903,"journal":{"name":"2017 IEEE High Performance Extreme Computing Conference (HPEC)","volume":"600 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-08-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"73","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE High Performance Extreme Computing Conference (HPEC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HPEC.2017.8091039","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 73
Abstract
The rise of graph analytic systems has created a need for ways to measure and compare the capabilities of these systems. Graph analytics present unique scalability difficulties. The machine learning, high performance computing, and visual analytics communities have wrestled with these difficulties for decades and developed methodologies for creating challenges to move these communities forward. The proposed Subgraph Isomorphism Graph Challenge draws upon prior challenges from machine learning, high performance computing, and visual analytics to create a graph challenge that is reflective of many real-world graph analytics processing systems. The Subgraph Isomorphism Graph Challenge is a holistic specification with multiple integrated kernels that can be run together or independently. Each kernel is well defined mathematically and can be implemented in any programming environment. Subgraph isomorphism is amenable to both vertex-centric implementations and array-based implementations (e.g., using the Graph-BLAS.org standard). The computations are simple enough that performance predictions can be made based on simple computing hardware models. The surrounding kernels provide the context for each kernel that allows rigorous definition of both the input and the output for each kernel. Furthermore, since the proposed graph challenge is scalable in both problem size and hardware, it can be used to measure and quantitatively compare a wide range of present day and future systems. Serial implementations in C++, Python, Python with Pandas, Matlab, Octave, and Julia have been implemented and their single threaded performance have been measured. Specifications, data, and software are publicly available at GraphChallenge.org.
图分析系统的兴起产生了对测量和比较这些系统能力的方法的需求。图形分析呈现出独特的可伸缩性困难。机器学习、高性能计算和可视化分析社区几十年来一直在与这些困难作斗争,并开发了创造挑战的方法,以推动这些社区向前发展。提出的子图同构图挑战借鉴了机器学习、高性能计算和视觉分析方面的先前挑战,创建了一个反映许多现实世界图分析处理系统的图挑战。子图同构图挑战是一个具有多个集成内核的整体规范,这些内核可以一起运行,也可以独立运行。每个内核都有很好的数学定义,可以在任何编程环境中实现。子图同构既适用于以顶点为中心的实现,也适用于基于数组的实现(例如,使用Graph-BLAS.org标准)。计算非常简单,可以基于简单的计算硬件模型进行性能预测。周围的内核为每个内核提供上下文,允许严格定义每个内核的输入和输出。此外,由于所提出的图形挑战在问题大小和硬件方面都是可扩展的,因此它可以用于测量和定量比较当前和未来的各种系统。已经实现了c++、Python、Python with Pandas、Matlab、Octave和Julia中的串行实现,并测量了它们的单线程性能。规格、数据和软件可在GraphChallenge.org上公开获取。