YarcData urika Technical White Paper



Similar documents
Cray: Enabling Real-Time Discovery in Big Data

Technical White Paper. October Real-Time Discovery in Big Data Using the Urika-GD. Appliance G OVERN M ENT.

Complexity and Scalability in Semantic Graph Analysis Semantic Days 2013

Introduction to urika. Multithreading. urika Appliance. SPARQL Database. Use Cases

urika! Unlocking the Power of Big Data at PSC

FPGA-based Multithreading for In-Memory Hash Joins

Six Days in the Network Security Trenches at SC14. A Cray Graph Analytics Case Study

bigdata Managing Scale in Ontological Systems

Supercomputing and Big Data: Where are the Real Boundaries and Opportunities for Synergy?

Achieving Real-Time Business Solutions Using Graph Database Technology and High Performance Networks

The Fusion of Supercomputing and Big Data. Peter Ungaro President & CEO

Ching-Yung Lin, Ph.D. Adjunct Professor, Dept. of Electrical Engineering and Computer Science IBM Chief Scientist, Graph Computing. October 29th, 2015

A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM

! E6893 Big Data Analytics Lecture 9:! Linked Big Data Graph Computing (I)

Dell* In-Memory Appliance for Cloudera* Enterprise

Big Graph Processing: Some Background

Elasticsearch on Cisco Unified Computing System: Optimizing your UCS infrastructure for Elasticsearch s analytics software stack

CHAPTER 1 INTRODUCTION

Big Fast Data Hadoop acceleration with Flash. June 2013

Managing Big Data with Hadoop & Vertica. A look at integration between the Cloudera distribution for Hadoop and the Vertica Analytic Database

Graph Analytics in Big Data. John Feo Pacific Northwest National Laboratory

Write a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical

InfiniteGraph: The Distributed Graph Database

Direct NFS - Design considerations for next-gen NAS appliances optimized for database workloads Akshay Shah Gurmeet Goindi Oracle

Oracle Big Data SQL Technical Update

Hadoop Cluster Applications

Next Generation GPU Architecture Code-named Fermi

Accelerating High-Speed Networking with Intel I/O Acceleration Technology

YarcData's urika Shows Big Data Is More Than Hadoop and Data Warehouses

STINGER: High Performance Data Structure for Streaming Graphs

Driving IBM BigInsights Performance Over GPFS Using InfiniBand+RDMA

Make the Most of Big Data to Drive Innovation Through Reseach

Colgate-Palmolive selects SAP HANA to improve the speed of business analytics with IBM and SAP

Massive Streaming Data Analytics: A Case Study with Clustering Coefficients. David Ediger, Karl Jiang, Jason Riedy and David A.

Architectures for Big Data Analytics A database perspective

Using In-Memory Computing to Simplify Big Data Analytics

A Brief Introduction to Apache Tez

Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries

Parallel Computing. Benson Muite. benson.

SAP HANA PLATFORM Top Ten Questions for Choosing In-Memory Databases. Start Here

Challenges for Data Driven Systems

Performance Monitoring of Parallel Scientific Applications

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January Website:

Microsoft SQL Server 2008 R2 Enterprise Edition and Microsoft SharePoint Server 2010

How To Build A Cloud Computer

Rackspace Cloud Databases and Container-based Virtualization

hmetrix Revolutionizing Healthcare Analytics with Vertica & Tableau

Best Practices for Hadoop Data Analysis with Tableau

ANY SURVEILLANCE, ANYWHERE, ANYTIME

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Enabling High performance Big Data platform with RDMA

Graph Database Performance: An Oracle Perspective

Benchmarking Cassandra on Violin

LDIF - Linked Data Integration Framework

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

Converged, Real-time Analytics Enabling Faster Decision Making and New Business Opportunities

Getting Real Real Time Data Integration Patterns and Architectures

Understanding the Value of In-Memory in the IT Landscape

HadoopRDF : A Scalable RDF Data Analysis System

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Removing Performance Bottlenecks in Databases with Red Hat Enterprise Linux and Violin Memory Flash Storage Arrays. Red Hat Performance Engineering

Binary search tree with SIMD bandwidth optimization using SSE

Enterprise Application Performance Management: An End-to-End Perspective

RevoScaleR Speed and Scalability

Actian Vector in Hadoop

SAN Conceptual and Design Basics

Navigating the Big Data infrastructure layer Helena Schwenk

Data Centric Systems (DCS)

The Sierra Clustered Database Engine, the technology at the heart of

Subgraph Patterns: Network Motifs and Graphlets. Pedro Ribeiro

So#ware Tools and Techniques for HPC, Clouds, and Server- Class SoCs Ron Brightwell

GraySort on Apache Spark by Databricks

Understanding Enterprise NAS

HadoopTM Analytics DDN

White Paper The Numascale Solution: Extreme BIG DATA Computing

See the Big Picture. Make Better Decisions. The Armanta Technology Advantage. Technology Whitepaper

numascale White Paper The Numascale Solution: Extreme BIG DATA Computing Hardware Accellerated Data Intensive Computing By: Einar Rustad ABSTRACT

LINKED DATA EXPERIENCE AT MACMILLAN Building discovery services for scientific and scholarly content on top of a semantic data model

BSC vision on Big Data and extreme scale computing

Accelerating Hadoop MapReduce Using an In-Memory Data Grid

Adobe Insight, powered by Omniture

Flash Memory Arrays Enabling the Virtualized Data Center. July 2010

Distributed File Systems

Technology Insight Series

Using an In-Memory Data Grid for Near Real-Time Data Analysis

Looking for Risk. Applying Graph Analytics to Risk Management. Leading Practices from YarcData

Bringing Big Data Modelling into the Hands of Domain Experts

Updated November 30, Version 4.1

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

With DDN Big Data Storage

Hadoop: Embracing future hardware

Zadara Storage Cloud A

Scaling 10Gb/s Clustering at Wire-Speed

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

OC By Arsene Fansi T. POLIMI

Testing & Assuring Mobile End User Experience Before Production. Neotys

Big Data Systems CS 5965/6965 FALL 2015

Control 2004, University of Bath, UK, September 2004

Network Attached Storage. Jinfeng Yang Oct/19/2015

Transcription:

YarcData urika Technical White Paper 2012 Cray Inc. All rights reserved. Specifications subject to change without notice. Cray is a registered trademark, YarcData, urika and Threadstorm are trademarks of Cray Inc. All other trademarks mentioned herein are the properties of their respective owners. 20120601B

Table of Contents Introduction... 3 Understanding Real-World Graph Problems... 3 Graph Problems Not Partitionable... 3 Graph Problems Need Purpose-Built Hardware... 4 Overview of urika s Multiprocessor, Shared Memory Architecture... 5 Addressing the Memory Wall through Massive Multithreading... 6 Delivering High Bandwidth with a High Performance Interconnect... 6 Enabling Fine Grained Parallelism with Word Level Synchronization Hardware... 6 Delivering Scalable I/O to Handle Dynamic Graphs... 7 The urika Software Stack... 7 The Graph Analytic Database... 8 Enabling Ad-hoc Queries and Pattern-based Search with RDF and SPARQL... 8 Augmenting Relationships in the Graph through Inferencing... 9 Conclusion... 9 Page 2 of 9

Introduction Complex networks arise in areas as diverse as life sciences, social sciences, healthcare, financial services, telecommunications networks, the Web, supply chain management and more. These complex, realworld systems generate enormous volumes of data and within them exists the potential to gain highly valuable insights by identifying the unknown or hidden relationships they contain. But discovering these relationships and mining them for insights requires the application of graph analytics. Complex networks are naturally modeled as graphs. The nodes of the graph represent entities of interest and the edges represent the relationships between those entities. Analyzing the relationships contained in these graphs graph analytics enables the discovery of valuable insights. Yet the widespread adoption of graph analytics has been limited by these problems computational complexity. Traditional approaches to graph-based Big Data problems involve partitioning data across multiple nodes of a compute cluster. However, this approach fails because many real-world graphs are difficult or impossible to partition effectively. Consequently, queries performing analytics against these graphs can run for hours or days, and many queries never complete. YarcData Inc. developed the urika appliance to provide real-time analytics on large, unpartitionable graphs. This paper describes the technology that enables urika to meet this challenge. Understanding Real-World Graph Problems In the past 15 years science has made tremendous advances in the understanding of real world networks. The seminal 1999 paper Emergence of Scaling in Random Networks 1 proposed a new model for how networks grow, theorizing that networks expand continuously through the addition of new nodes, and that new nodes connect preferentially to already well-connected sites. The resulting network has been described as a scale-free or power-law network, in reference to the distribution of nodes with varying numbers of links. A large body of research has subsequently confirmed that the resulting model accurately reflects many real-world networks. Graph Problems Not Partitionable The key characteristic of a scale-free network is the existence of many highly connected hubs. These hubs hold the network together by shortening the length of paths between pairs of nodes. However, hubs also have a second effect they make a network difficult or impossible to partition effectively because of the large number of nodes to which they connect. Any attempt at partitioning results in a large number of links crossing partition boundaries, defeating the entire objective of partitioning to divide the graph into largely independent sub-graphs for processing purposes. Consequently, these graphs are referred to as unpartitionable Figure 1 illustrates a portion of a scale free network a map of the protein-protein interactions in Saccharomyces cerevisiae (a species of yeast) 2. This network has a large number of hubs and no locality to the links between nodes making it infeasible to partition into multiple sub-graphs of equal size without lots of links crossing partition boundaries. 1 A.L. Barabasi, R. Albert., Emergence of Scaling in Random Networks, Science: Vol. 286, Oct. 99, pp.509-511 2 A.L. Barabasi and Z.N. Oltvai, Network Biology: Understanding the Cell s Functional Organization, Genetics: vol. 5, Feb. 2004, pp.101-112 Page 3 of 9

Figure 1: A map of protein-protein interactions illustrates how a handful of highly connected nodes ( hubs ) hold the network together. This network is unpartitionable. Graph Problems Need Purpose-Built Hardware Ten years ago, an organization approached Cray about solving a large, unpartitionable and constantly growing graph problem. They viewed the ability to perform real-time graph analytics as crucial and had investigated several technologies, but none of the available solutions addressed their needs. Analysis of their needs led to a canonical list of hardware requirements for all graph analytics: Multiprocessor. Performance and scale require an effectively leveraged multiprocessor solution. Large shared memory. Partitioning can be avoided with large shared memory (as most graphs are unpartitionable), Memory wall resolution. The growing mismatch between processor and memory speeds has a particularly strong impact on graph problems and requires an architectural solution. Page 4 of 9

Scalable I/O. The I/O subsystem must be capable of scaling to accommodate rapidly changing graphs. (And the representation of the loaded graph in memory must allow the easy addition of new nodes and edges.) These requirements drove the design of the urika hardware. Overview of urika s Multiprocessor, Shared Memory Architecture YarcData s urika graph analytic appliance is a heterogeneous system consisting of urika appliance services nodes and graph accelerator nodes linked by a high performance interconnect fabric for data exchange (see Figure 2). Graph accelerator nodes ( accelerator nodes ) utilize a purpose-built Threadstorm processor capable of delivering several orders of magnitude better performance on graph analytic applications than a conventional microprocessor. Accelerator nodes share memory and run a single instance of a UNIXbased, compute-optimized OS named multithreaded kernel (MTK). urika appliance services nodes ( service nodes ), based on x86 processors, support appliance and database management, database services and visualization. Each service node runs a distinct instance of a fully featured Linux operating system. The high speed interconnect fabric is designed for very high speed access to memory anywhere in the system from any processor, as well as scaling to very large processor counts and memory capacity. Figure 2: urika system architecture The urika architecture supports flexible scaling to 8,192 graph accelerator processors and 512TB of shared memory, the largest shared memory system available. urika systems can be incrementally expanded to this maximum size as data analytic needs and dataset sizes grow. Page 5 of 9

Addressing the Memory Wall through Massive Multithreading Memory wall 3 is the growing imbalance between CPU speeds and memory speeds. Starting in the early 1980s CPU speed improved at an annual rate of 55 percent, while memory speed only improved at a rate of 10 percent. This imbalance has been traditionally addressed by either managing latency or amortizing latency. However, neither approach is suitable for graph analytics. Managing latency is achieved by creating a memory hierarchy (levels of hardware caches) and by software optimization to pre-fetch data. However, this approach is not suitable for graph analytics, where the workload is heavily dependent on pointer chasing (the following of edges between nodes in the graph) because the random access to memory results in frequent cache misses and processors stalling while waiting for data to arrive. Amortizing latency is achieved by fetching large blocks of data from memory. Vector processors and GPUs employ this technique to great advantage when all the data in the block retrieved is used in computation. This approach is also not suitable for graph analytics where relatively little data is associated with each graph node, other than pointers to other nodes. In response to the ineffectiveness of managing or amortizing latency on graph problems, Cray developed a new approach the use of massive multithreading to tolerate latency. The Threadstorm processor is massively multithreaded with 128 independent hardware streams. Each stream has its own register set and executes one instruction thread. The fully pipelined Threadstorm processor switches context to a different hardware stream on each clock cycle. Up to eight memory references can be in flight for each thread and each hardware stream is eligible to execute every 21 clock cycles if its memory dependencies are met. No caches are necessary or present anywhere in the system since the fundamental premise is that at least some of the 128 threads will have the data required to execute at any given time. Effectively, the memory latency problem has been turned into a requirement for high bandwidth. Delivering High Bandwidth with a High Performance Interconnect The urika system uses a purpose-built high speed network. This interconnect links nodes in the 3-D torus topology (Figure 2) to deliver the system s high communication bandwidth. This topology provides excellent cross-sectional bandwidth and scaling, without layers of switches. Key performance data for the interconnection network: Sustained bidirectional injection bandwidth of more than 4GB/s per processor and an aggregate bandwidth of almost 40 GB/s through each vertex in the 3-D torus Efficient support for Threadstorm remote memory access (RMA), as well as direct memory access (DMA) for rapid and efficient data transfer between the service nodes and accelerator nodes Combination of high bandwidth, low latency network and massively multithreaded processors makes urika ideally suited to handle the most challenging graph workloads Enabling Fine Grained Parallelism with Word Level Synchronization Hardware The benefits of massive parallelism are quickly lost if synchronization between threads involves serial processing, in accordance with Amdahl s Law 4. The Threadstorm processors and memory implement 3 The term memory wall was introduced in: Wulf, W.A. and McKee, S.A., Hitting the Memory Wall: Implications of the Obvious, Technical Note published by the Dept. of Computer Science, University of Virginia, Dec. 1994. 4 Amdahl s Law predicts the speedup of a parallel implementation of an algorithm over its serial form, based upon the time spent in sequential and parallel execution. Consider a program requiring 20 hours on a single processor. Page 6 of 9

fine-grained synchronization in order to support asynchronous, data-driven parallelism and spread the synchronization load physically within the memory and interconnection network to avoid hot spots. Full/empty bits are provided on every 64-bit memory word in the entire global address space for finegrained synchronization. This mechanism can be used across unrelated processes on a spin-wait basis. Within a process (which can have up to tens of thousands of active threads), multiple threads can also do efficient blocking synchronization using mechanisms based on the full/empty bits. urika software uses this mechanism directly without OS intervention in the hot path. Delivering Scalable I/O to Handle Dynamic Graphs Any number of appliance services nodes can be plugged into the interconnect, allowing urika s I/O capabilities to be scaled independently from the graph processing engine. A Lustre parallel file system is used to provide scalable, high performance storage. Lustre is an open source file system designed to scale to multiple exabytes of storage, and to provide near linear scaling in I/O performance with the addition of Lustre nodes. The urika Software Stack The urika software stack was crafted with several goals in mind: Create a standards-based graph appliance to support enterprise graph analytics workloads Facilitate migration of existing graph workloads onto the urika appliance Allow users to create, augment and update graph databases in recognition of the dynamic graphs created during the exploration of inter-relationships and correlations between datasets Enable ad-hoc queries and pattern based searches of the dynamic graph database. The urika software (Figure 3) is partitioned across the two types of processors in the service nodes and accelerator nodes, with each processing the workload for which it is best suited. Figure 3: urika software architecture Figure 3 If one hour of serial execution is required after parallelism is introduced, then the maximum speedup achievable is less than 20x regardless of the degree of parallelism. Page 7 of 9

The service nodes run discrete copies of Linux and are responsible for all interactions with the external world database and appliance management, database services, including a SPARQL endpoint for external query submission, and graph visualization. The service nodes also perform network and file system I/O. The accelerator nodes perform the functions of maintaining the in-memory graph database, including loading and updating the graph, performing inferencing and responding to queries. The Graph Analytic Database The graph analytic database is based on the popular, open-source Jena 5 software from Apache with YarcData s own graph database optimizations. Jena provides an extensive set of capabilities for defining and querying graphs using the industry standard RDF 6 and SPARQL 7, and is widely used for storing graphs and performing analytics against them. Jena has a query parser which transforms SPARQL queries into an intermediate representation known as SPARQL Algebra, and a backend database and query engine. The query parser is one of the database services provided on the service nodes, and it is minimally modified from the Apache version. YarcData rewrote the database and query engine to take advantage of the massive multithreading on the Threadstorm processors, creating the graph analytics database. The resulting implementation is almost identical functionally to Apache s Jena framework, but with unmatched performance and scalability. Current Jena users can migrate their existing graph data and workloads onto urika with minimal or no changes to their existing queries and application software. urika supports sending query results back to the user or writing them to the parallel file system. The latter capability can be very useful when the set of results is very large. Enabling Ad-hoc Queries and Pattern-based Search with RDF and SPARQL Traditional relational databases and warehouses require the definition of a schema. This schema specifies the design of the tables in which data is held and is crucial to performance as it enables related data to be stored together, allowing for effective latency management. However, the imposition of schema means the loss of flexibility to run ad-hoc queries. If the queries to be run are not carefully considered in the schema design, multiple database joins (or even worse, nested joins) will be required, destroying a traditional database s performance. In contrast, graphs are schema-free in that the relationships between nodes are individually represented. RDF represents a relationship (an edge in a graph) using a tuple 8 (<subject>,<predicate>,<object>) where URIs are used to uniquely identify each member of the tuple. No advance consideration is required of the queries to be run, making graph databases well suited to adhoc queries. Additionally, data from different sources may be combined by simply combining the sets of RDF triples, without schema issues 9. 5 http://incubator.apache.org/jena/ 6 RDF stands for Resource Description Framework and is a format for representing directed, labeled graph data. It is a W3C standard with a full specification available at http://w3.org/rdf. 7 SPARQL is a recursive acronym for SPARQL Protocol and RDF Query Language. It is a W3C standard with a full specification, tutorials and examples available at http://w3.org/2009/sparql/wiki/main_page. 8 Some argue that the representation of an RDF triple is still a schema. The key is that all graph data is represented using the same schema so no a-priori knowledge of queries to be run is required. 9 This assumes the semantics of the data from different sources is identical. If not, inference rules can sometimes map one set of semantics onto another. Page 8 of 9

SPARQL provides a very powerful pattern-based search capability as it enables queries that would be infeasible on a relational database because of the complexity of the joins required. This pattern-search capability is of tremendous value when searching for unknown or hidden relationships in a graph database. Augmenting Relationships in the Graph through Inferencing The urika graph analytics database supports the use of inferencing rules to augment the relationships contained in a graph database. Common uses include: Reconciling differences between different data sources. The representation of relationships in RDF triples makes it easy to combine data from different sources. However, it is often necessary to write rules to establish equivalence between name usages. For example, the Austrian city of Vienna may also be known as Wien, depending upon the user s native language. Similarly, knowing whether two identically named genes are the same or not requires knowledge of whether the genes come from the same species. Rules provide a convenient way to provide this knowledge (referred to as ontology ). Inferring the existence of new relationships based upon deduction. This powerful and general capability can be used in a variety of ways. For example, if person A met person B, then symmetry implies that person B met person A. That connection can be codified as a rule (the question marks indicate a variable to be instantiated): (?A met?b) (?B met?a) A rule can be used to deduce new relationships. The rule (?A is-a?b) and (?B is-a?c) (?A is-a?c) indicates that the member of a subclass is also a member of the parent class. For example, if codeine is-a member of the class of drugs known as OpiateAgonist, and OpiateAgonist is-a member of the class of drugs known as Opioid, then codeine is also a member of the Opioid family. The urika graph analytics database supports chaining: a rule can add a relationship to the database, which triggers one or more other rules to add other relationships, and so forth. RDF and inferencing make the fusing of multiple data sources to create, augment and update graph databases straightforward. Conclusion Graph analytics are crucial to a large and growing set of problems. However, graph analytics are computationally demanding and ill-suited to traditional computer architectures. In response, YarcData introduced urika, a purpose built graph analytics appliance that enables, for the first time, high performance, real time analytics on large, unpartitionable graphs. urika supports ad-hoc, pattern-based queries, sophisticated inferencing and deduction to find unknown and hidden relationships in Big Data that is not feasible or practical with other graph solutions. Additionally, urika software is standards based. The core graph database functionality is derived from Jena, a widely used open source Apache project that enables easy migration of existing applications and datasets as the dataset size and query complexity rise beyond the prototype stage. New graph analytic applications will benefit from the comprehensive and growing standards plus capabilities offered by the urika software. Subscription pricing for on-premise deployment of the urika appliance eases adoption into existing IT environments. Page 9 of 9