Massive Data Analysis Using Fast I/O

Size: px
Start display at page:

Download "Massive Data Analysis Using Fast I/O"

Transcription

1 Abstract Massive Data Analysis Using Fast I/O Da Zheng Department of Computer Science The Johns Hopkins University Baltimore, Maryland, The advance of new I/O technologies has tremendously improved random I/O performance. It raises the question how much the improvement can benefit large-scale data analysis and more specifically, whether it can help achieve performance comparable to RAM-based counterparts in large-scale data analysis. We developed SAFS, a user-space filesystem optimized for large SSD arrays, and FlashGraph, a semi-external memory graph analysis framework, to address this question and we specifically target two important data analysis tasks: graph analysis and linear algebra. Our preliminary results show that FlashGraph in the external-memory mode achieves performance comparable to its in-memory mode and both modes of FlashGraph significantly outperform PowerGraph, a popular in-memory graph engine. Introduction In today s big data era, we face the challenges in both the explosion of data volume and the increasing complexity of data analysis. Experiments, simulations and observations generate data on the order of terabytes or even petabytes in many scientific and business areas. In many cases, the data in such a volume is irregular. For example, a graph that represents a real-world problem has nearly random connections between vertices; some captured datasets have missing data due to imperfect observation. Analyzing irregular data in a large scale causes significant challenges for conventional tools such as SQL databases. The challenges lead to the redesign of data analysis tools. MapReduce [13] is one of the most well-known tools developed for data analysis in the petabyte scale. However, even MapReduce cannot handle many data analysis tasks efficiently. Graph analysis is one of the well-known examples that neither SQL databases nor MapReduce can perform efficiently. Nowadays, graph analysis is generally performed in RAM and a large graph has to be processed in a cluster of machines. Many real-world graphs are enormous. For example, the Facebook social network graph has billions of vertices, hundreds of billions of edges; the neural network of a human brain has a fundamental size of vertices and edges; graphs that evolve over time can grow even larger. Vertices in real-world graphs connect with each other nearly randomly, and the vertex degree usually follows the power law distribution. Graph algorithms typically generate many small random accesses and suffer from the lack of data locality and load imbalancing. Therefore, it is difficult to scale graph analysis to many machines. On the other hand, with the advance of new I/O technologies, we observe tremendous improvement in random I/O performance. One example is flash-based memory. The fastest Fusion-IO and a large SSD array [1] can reach over one million random IOPS and multiple 1

2 gigabytes per second. This is at the same order or only one order of magnitude less than RAM. Today s network technology has also advanced to the throughput similar to disk I/O. The tremendous performance improvement in random I/O provides a good opportunity to enhance large-scale data analysis that requires many small random accesses. Given the tremendous hardware improvement, typical questions are: (i) can we replace RAM with fast flash in large-scale data analysis? (ii) To what extent can the performance of flashbased data analysis approach that of RAM-based data analysis? If data analysis on flash can achieve performance similar to that in RAM, it will positively affect computer architecture and revolutionize large-scale data analysis. Hardware advances impose many new challenges in system design (both the operating system and the data analysis framework). Operating systems were traditionally built with an assumption of slow I/O. There exist significant overhead in almost all layers of the block stack when it operates on fast storage media. For example, a traditional Linux filesystem on top of a large SSD array can only yield a small fraction of the capacity of the SSD array. I/O latency still remains relatively high, usually multiple orders of magnitude larger than RAM. High-speed I/O consumes significant CPU power and main memory bandwidth. To maximize the overall performance, it is crucial to minimize CPU overhead and memory bandwidth use from I/O. Although the latest I/O devices deliver unprecedented performance, they are still slower than RAM, let alone CPU cache. There are many opportunities to optimize the system to achieve performance better than the raw hardware can deliver. Given all of these challenges, we try to answer the questions with SAFS [1], a user-space filesystem optimized for large SSD arrays, and FlashGraph [2], a semi-external memory graph analysis framework. SAFS abstracts away the complexity of data access on SSDs and provides an efficient caching layer. To achieve performance comparable to in-memory counterparts, FlashGraph takes advantage of SAFS and issues I/O requests carefully to bring data from SSDs to CPUs efficiently. We follow the six rules below to design and implement SAFS and FlashGraph: Avoid remote memory access: modern multi-processor systems have non-uniform memory architectures (NUMA) in which regions of memory associate with processors. Accessing remote memory (of another processor) has higher latency, lower bandwidth, and causes overhead and contention on the remote processor. Avoid locking: the main overhead in Linux filesystems come from locks in the page cache, filesystems and device drivers. The locking overhead is amplified in non-uniform memory architectures (NUMA). Reduce random access: although SSDs have good random I/O performance, their sequential I/O performance is still significantly better. Furthermore, sequentializing I/O access helps reduce the number of I/O accesses and reduce CPU overhead for I/O access. 2

3 Reduce data access: SSDs are still several times slower than RAM and they require data access in blocks. Any unused data read from SSDs wastes the bandwidth of SSDs and pollutes memory cache. It is essential to well organize the data on SSDs to minimize the amount of unused data read from SSDs. Maximize cache hit rates: SSDs are still much slower than RAM. Any cache hits improve the application-perceived I/O performance and boost the overall performance. Overlap I/O and computation: SSDs have latency multiple orders of magnitude longer than RAM. To maximize the I/O performance of SSDs, we need to issue many parallel I/O requests and overlap I/O and computation so that either CPU or SSDs or are saturated. We specifically targets two types of important data analysis on fast I/O: graph analysis and linear algebra, which the national research council identified as two of major massive data analysis tasks [3] in There are various graph forms for analysis. FlashGraph support graph analysis on a single, static graph as well as a temporal graph that evolves over time but is collected and prepared in advance. It will also support streaming graph analysis where changes in a graph are constantly generated and fed to the analysis framework. Furthermore, given the fact that graphs and sparse matrices use the same data representation, we will implement a sparse matrix library on top of FlashGraph to process massive sparse matrices. The architecture of FlashGraph (Figure 1) has three layers: (i) SAFS, (ii) the graph engine, (iii) graph applications. SAFS hides the complexity of accessing a large SSD array and exposes an asynchronous I/O interface to help overlap I/O and computation. The graph engine exposes a general vertex-centric programming interface to help users express graph algorithms in vertex programs. It schedules users vertex programs and issues I/O requests carefully on behalf of vertex programs to maximize the overall performance of the graph applications. Furthermore, it provides a library of common graph algorithms and matrix operations as well as exposing interface for temporal graph analysis. graph-algs library sparse matrix library temporal graph analysis user graph algorithms vertex programs vertex-centric interface graph engine vertex scheduler key-value store asynchronous user-task I/O interface SAFS page cache vertex tasks SSD SSD SSD SSD Figure 1. The architecture of FlashGraph 3

4 SAFS SAFS [1] is a user-space filesystem optimized for large SSD arrays. It is designed as a building block for external-memory data analysis. The goals of the filesystem are: (i) maximize throughput of fast SSDs; (ii) reduce memory overhead in the page cache; (iii) provide a general programming interface to support a large range of data analysis. Maximize the performance of an SSD array A large SSD array is sufficiently fast to consume much CPU computation and thus requires multiple CPU cores or multiple processors to provide sufficient computation power to saturate its bandwidth while performing useful computation. However, traditional operating systems such as Linux were not designed for fast disk I/O in multi-core or multi-processor machines. There are many locks in each component of the I/O stack such as disk drivers, filesystems and page cache. Therefore, a traditional Linux filesystem on top of a large SSD array can only yield a small fraction of its capacity. SAFS is designed to eliminate overhead in the I/O stack, and deliver maximal performance of a large SSD array in a NUMA machine. Per-SSD I/O threads To eliminate lock overhead in the I/O stack in the Linux kernel, SAFS uses an I/O thread for each SSD to access data. We expose individual SSDs that connect to a machine to the operating systems, so that we can run a dedicated I/O thread on each SSD. The I/O thread is the only thread that accesses an SSD in the system, which eliminates all lock contention in the disk drivers as well as in the Linux native filesystem. The I/O threads communicate with application threads through message passing to receive I/O requests and send back results. Set-associative cache Although SSDs have advanced to deliver very high I/O throughput, a page cache remains an important optimization to improve overall system performance. SAFS is equipped with a very light-weight parallel page cache [4] to amplify the I/O performance when cache hits exist in the workload. The new page cache shares the same design as the CPU cache. The main idea is to split a page cache into many small page sets and each page set is managed independently, to reduce lock overhead and CPU overhead. Data locality in NUMA Given the non-uniform memory performance in a NUMA machine, we attempt to localize the data access in the page cache to improve memory performance. We partition the page cache and keep a partition in each NUMA node. Thanks to the asynchronous user-task I/O interface, we can send an I/O request with a user task through message passing to the partition where the data resides. Asynchronous user-task I/O interface When using high-throughput high-latency I/O devices, the traditional synchronous I/O interface can no longer saturate these I/O devices with small random I/O access. Applications need to issue many I/O requests in order to maximize the performance of SSDs. We design the asynchronous user-task I/O interface, in which each I/O request issued to SAFS is associated with user-defined computation. Upon the completion of a request, the user computation will be 4

5 performed inside the filesystem. This asynchronous interface allows applications to issue many parallel I/O requests to overlap I/O and computation. Besides overlapping computation and I/O, the asynchronous user-task I/O interface has many other benefits. It enables user computation to access data in the page cache directly. Therefore, it reduces memory copy, avoids memory allocation and reduces memory footprint. Given this I/O interface, we can even bring user computation to the location where data resides, to exploit data locality in a non-uniform memory access (NUMA) machine. FlashGraph FlashGraph [2] is a semi-external memory graph engine that runs on top of SAFS. It provides a general programming interface to help users develop new algorithms for large-scale graph analysis. Like many in-memory graph engines such as Pregel [5] and PowerGraph [6], graph algorithms in FlashGraph are expressed from the perspective of a vertex. That is, each vertex maintains algorithmic state and FlashGraph executes graph algorithms on vertex state in parallel. Unlike these in-memory graph engines, FlashGraph only stores the algorithmic vertex state in memory, and graph data on SSDs, so it has a small memory footprint, which enables us to process massive graphs in a commodity machine with relatively small memory. External-memory data representation FlashGraph maintains only vertex state in main memory to minimize memory consumption while storing graph data such as the degrees and the adjacency lists of vertices on SSDs. Since SSDs are still several times slower than RAM, the external-memory data representation in FlashGraph has to meet the following three goals: (i) be compact to reduce data access from SSDs; (ii) reduce the unnecessary data read from SSDs; (iii) reduce the number of I/O accesses for each vertex read. There are two data structures on SSDs: the adjacency lists of vertices and the index to the adjacency lists. For a directed graph, the in-edge list and the out-edge list of a vertex are stored separately to optimize for the applications that only require one type of edges. All adjacency lists of vertices are stored on SSDs in the order of their vertex ID. Therefore, the index of a graph only contains the location of the adjacency list of each vertex. For a directed graph, each entry in the index contains both locations of the in-edge list and the out-edge list of each vertex. I/O optimizations Given the good random I/O performance of SSDs, FlashGraph selectively accesses the vertices required by graph algorithms. In contrast, other external-memory graph engines such as GraphChi [7] and X-Stream [8] sequentially access all vertices in each iteration to avoid random I/O access. The selective vertex access is superior to sequentially accessing the entire graph in each iteration. Many graph algorithms only require some of the vertices in a graph so the selective vertex access significantly reduces the amount of data read from SSD. However, it potentially generates many random I/O accesses to SSDs. To maximize the performance of FlashGraph, it is essential to reduce the number of random I/O accesses to SSDs. Each vertex access potentially generates two I/O accesses: one to the index file to find the location and the size of a vertex and the other to the adjacency lists to read the 5

6 adjacency list of a vertex. The optimizations on both types of I/O accesses are the same. A typical graph algorithm accesses many vertices in parallel within an iteration. Therefore, FlashGraph can collect the vertices requested by a graph algorithm and merge I/O accesses into large I/O requests. As a result, an I/O request varies from as small as one page to as large as many megabytes to benefit various graph algorithms. To increase cache hit rate, FlashGraph introduces a runtime 2D partitioning scheme. 2D partitioning breaks up large vertices and a vertex program may only represent part of a large vertex. In each iteration, FlashGraph executes all active vertices in the first partition and then proceed to the second partition and so on. Users have complete freedom to issue vertex requests in each partition of a vertex. A potential use is that a partition of a vertex requests vertices located closely on SSDs to increase the cache hit rate. Triangle counting and scan statistics [9] are two examples that benefit from this scheme. Vertex-centric programming interface In FlashGraph, users implement graph algorithms from the perspective of a vertex. Each vertex maintains some vertex state and acts on its own. It interacts with other vertices with message passing and accesses vertex data through the framework. In this programming environment, users only need to write serial code and FlashGraph executes users code in parallel. Given the relatively long latency of accessing SSDs, FlashGraph uses an event-driven programming interface to hide the latency of SSDs and overlap graph computation and I/O access. A vertex may receive three types of events: (i) when it receives the adjacency list of a vertex; (ii) when it receives the vertex header of a vertex (which contains the basic information of a vertex such as the vertex degree); (iii) when it receives a message. The second event is a special case of the first one except that retrieving a vertex header only requires reading the index of a graph. Therefore, it significantly improves the performance of graph algorithms that require only the basic information of a vertex. Applications FlashGraph is a comprehensive programming framework for users to develop various graph algorithms and perform graph analysis. In addition, it allows us to develop efficient sparse matrix operations. We also provide a collection of common graph algorithms and sparse matrix operations highly optimized for FlashGraph. The graph algorithm library To demonstrate the expressiveness of FlashGraph and ease graph analysis with FlashGraph, we take a similar approach to igraph [10] and implement some common graph algorithms. The library currently includes PageRank, SSSP, triangle counting, scan statistics [9], weakly connected components, strongly connected components [11], diameter estimation, k-core, spectral clustering. Since FlashGraph targets massive graphs, all graph algorithms implemented in FlashGraph have to have low computation complexity. Temporal graph analysis Real-world graphs may evolve over time. In this setting, we need to perform graph analysis on a 6

7 sequence of graphs. Currently, FlashGraph supports temporal graph analysis when a temporal graph is constructed in advance. A temporal graph in FlashGraph is stored as adjacency lists with each edge associated with a timestamp. The edges of a vertex are sorted with their timestamps to accelerate searching the edge list of a specific timestamp. Currently, we have implemented scan statistics in temporal graphs of millions of vertices and billions of edges. Sparse matrix library Linear algebra is an important tool for many real-world applications. The data in these applications tends to be sparse due to missing data or incomplete observations, so the data is often represented as sparse matrices. A sparse matrix has the same data representation as a graph. Therefore, we represent a sparse matrix as a graph in FlashGraph. We implement sparse matrix vector multiplication in FlashGraph, a basic operation for many linear algebra algorithms, and furthermore, we implement the implicitly restarted Lanzos method [12] to compute top K eigenvalues and eigenvectors on a matrix of billions of non-zero entries. Experimental evaluation We evaluate the performance of SAFS and FlashGraph on a non-uniform memory architecture machine with four Intel Xeon E processors, clocked at 2.2 GHz, and 512 GB memory of DDR The machine has three LSI SAS i host bus adapters (HBA) connected to a SuperMicro storage chassis. The experiments on SAFS use 16 OCZ Vertex 4 SSDs and the experiments on FlashGraph use 12 OCZ Vertex 4 SSDs. Performance of SAFS Figure 2 shows that SAFS read significantly outperforms Linux buffered read with and without page cache on the NUMA machine. In this experiment, we run 32 threads and each thread issues random reads of 128 bytes. Without page cache, SAFS achieves 950K IOPS from the 16 SSDs, the maximal performance we can achieve from the hardware. With page cache but without cache hits, SAFS can still achieve the same I/O performance, which means that the page cache introduces almost no overhead. This is important because many graph algorithms cannot generate many cache hits. When the workloads generate cache hits, the user-perceived I/O performance increases with the cache hit rate. On the other hand, Linux buffered read only realizes a small fraction of the raw hardware I/O performance. It gets the same throughput as the raw devices only when the cache hit rate reaches 75%. Performance of FlashGraph FlashGraph in the external-memory mode has performance comparable to the in-memory mode and both modes of FlashGraph are multiple times faster than PowerGraph in most graph applications on two real-world graphs (as shown in Figure 3). The twitter graph [13] has 42 million vertices and 1.5 billion edges. The subdomain graph [14] has 89 million vertices and 2 billion edges. The runtime of graph applications varies significantly, so we normalize all runtime by that of in-memory FlashGraph. FlashGraph in the external-memory mode achieves at least half of the performance of its in-memory mode in most applications. In applications such as diameter estimation and weakly connected component, FlashGraph in the external-memory mode realizes 80% of the performance of its in-memory mode. In some other applications such as breadth-first search and PageRank, FlashGraph in the external-memory mode is 7

8 bottlenecked by SSDs, so we expect better performance when FlashGraph is equipped with more SSDs. On the other hand, both modes of FlashGraph significantly outperform PowerGraph. In scan statistics, FlashGraph is 50 times faster than PowerGraph. In most cases, FlashGraph outperforms PowerGraph by an order of magnitude User-perceived IOPS (x1000) Cache hit ratio (%) Linux SAFS w/o cache SAFS w/ cache Figure 2. The performance of SAFS read with and without cache compared with Linux buffer read Normalized runtime twitter(fg-3g) subdomain(fg-3g) twitter-pg subdomain-pg Figure 3. The runtime of external-memory FlashGraph in different graph applications compared with PowerGraph. All runtime is normalized by in-memory FlashGraph. Future work The current implementation of SAFS and FlashGraph runs in a single machine and FlashGraph only supports processing static graphs. The next step is to run SAFS and FlashGraph in distributed memory and support streaming graph analysis. Furthermore, we have demonstrated the potential of FlashGraph in performing sparse matrix operations at a large scale, so we will extend this work and implement efficient sparse matrix/tensor library on top of SAFS and FlashGraph. 8

9 Streaming graph analysis In many cases, graphs are dynamic, where vertices and edges are created and deleted and their attributes may also change constantly. To support streaming graph analysis, FlashGraph needs to process continuous updates on dynamic graphs and generates timely computation results. Ideally, the computation results reflect new updates in a very short time window. A typical method for streaming graph analysis is to generate snapshots of a dynamic graph and run graph algorithms on the snapshots, as demonstrated by Kineograph [15]. This solution is effective and naturally supports many graph applications such as scan statistics on streaming graphs [16]. The size of a snapshot is usually limited by the hardware resources such as RAM and is affected by the requirement of an application. The SSD-based solution allows a much larger snapshot and also many more snapshots. The extension of supporting snapshots requires FlashGraph to adapt its programming interface to support varieties of streaming graph algorithms. It also requires dynamic data management. Even though FlashGraph is able to increase the size and the number of buffered snapshots, it may still not be able to keep up with the rate of incoming updates. In the streaming setting, many algorithms sample incoming updates on a dynamic graph and compute approximation to tackle the limited storage capacity and computation power. The streaming version of FlashGraph will also support these streaming graph algorithms to gain the power of processing heavy incoming updates. Distributed memory The SSD-based graph analysis framework alleviates the problem of having limited memory size for graph analysis. However, we still need more machines to provide higher computation power and the larger storage size to solve larger problems or more computationally expensive applications. Like disk I/O, network technology has advanced significantly. Today, 40Gbps network becomes realistic. The extreme network speed offers the opportunity of linearly scaling up graph analysis but also imposes challenges in system design. Many strategies of optimizing disk I/O can also be applied to network I/O. For example, we need to maximize the network throughput while minimizing CPU overhead for network transmission. Furthermore, we should take advantage of memory cache and maximize the memory cache use. Unlike disk I/O, network I/O has an arbitrary size, which makes memory caching work very differently from disk I/O. Despite the fast network I/O, accessing data in a remote machine still has much higher overhead than accessing data in remote memory of a NUMA machine. Therefore, localizing data access with the asynchronous user-task I/O interface of SAFS will bring more performance improvement in the distributed memory than in a NUMA machine. It will be interesting to investigate all of these issues when scaling FlashGraph up to multiple machines. Sparse matrix/tensor library Since a sparse matrix and a graph have the same data representation, we can implement basic sparse matrix operations on FlashGraph and build a sparse matrix/tensor library with them. Sparse matrix dense vector multiplication is a key to implement many linear algebra algorithms such as computing eigenvalues with the Lanczos method [12] and tensor decomposition [17]. In 9

10 FlashGraph, the sparse matrix is stored on the disks and the vector is stored in memory. Therefore, sparse matrix dense vector multiplication generates only sequential I/O access to disks. This allows us to even replace an SSD array with a large magnetic hard drive array to run matrix operations and achieve extreme scalability. This work will result in very efficient sparse matrix dense vector multiplication and dense matrix operations in external memory as well as their important applications such as non-negative matrix factorization [18] and tensor decomposition. Related work There are some efforts to build graph analysis frameworks on top of more general data analysis frameworks. For example, PEGASUS [19] is a popular graph processing engine built on Hadoop [20], an open-source implementation of MapReduce [21]. PEGASUS respects the nature of the MapReduce programming paradigm and expresses graph algorithms as a generalized form of sparse matrix-vector multiplication. This form of computation works relatively well for graph algorithms such as PageRank and label propagation, but performs poorly for graph traversal algorithms. GraphX [22] is an attempt to bring graph analysis to Spark [23], a general distributed in-memory data analysis framework. It unifies graph analysis pipeline and integrates graph constructions, graph modification and graph computation in a single framework. A graph analysis framework on top of a general data analysis framework is usually less efficient than a dedicated graph analysis framework. There are many research efforts to build distributed graph processing frameworks for largescale graph analysis. Pregel [5] is a distributed graph-processing framework that allows users to express graph algorithms in vertex-centric programs using bulk-synchronous processing (BSP). It abstracts away the complexity of programming in a distributed memory environment and runs users code in parallel in a cluster. Giraph [24] is an open-source implementation of the Pregel programming model. Many distributed graph engines adopt the vertex-centric programming model and express different designs to improve performance. GraphLab [25] and PowerGraph [6] prefer shared-memory to message passing and provide asynchronous execution. Trinity [26] optimizes message passing by restricting vertex communication to a vertex and its direct neighbors. Several external-memory graph processing frameworks have been designed to perform largescale graph analysis in a single machine. GraphChi [7] and X-stream [8] are specifically designed for magnetic disks. They eliminate random data access from disks by scanning the entire graph dataset in each iteration. Like graph processing frameworks built on top of MapReduce, they work relatively well for graph algorithms that require computation on all vertices, but share the same limitations i.e., suboptimal graph traversal algorithm performance. TurboGraph [27] is an external-memory graph engine optimized for SSDs. Like FlashGraph, it also reads vertices selectively and fully overlap I/O and computation. However, it uses much larger I/O requests to read vertices selectively from SSDs due to its external-memory data representation. Furthermore, it targets graph analysis on a single SSD or a small SSD array and does not aim at achieving performance comparable to in-memory graph engines. 10

11 Galois [28] differentiates itself from others by providing a low-level abstraction to construct graph engines. The core of the Galois framework is its novel task scheduler. These concepts are orthogonal to FlashGraph s I/O optimizations and could be adopted. Several other works [29], [30] perform graph analysis linear algebraically, using sparse adjacency matrices and vertex state vectors as data representations. In this abstraction PageRank and label propagation are efficiently expressed as sparse matrix dense-vector multiplication, and breadth-first search as sparse-matrix sparse-vector multiplication. These frameworks target mathematicians and those with the ability to formulate and express their problems in the form of linear algebra. FlashGraph allows a graph algorithm to be expressed both in a customized way and with linear algebra. Some works such as Boost Graph Library [31], Parallel Boost Graph Library [32] and igraph provide a large collection of pre-written graph algorithms. Despite users benefiting from these libraries by invoking existing implementations and using the APIs, these libraries lack a runtime environment within which to express natively parallel algorithms that scale to match very largescale graphs. Several graph engines have been designed for temporal graph analysis and streaming graph analysis. Kineograph [15] is a distributed in-memory graph processing framework for streaming graph analysis. It takes graph update streams and constructs graph snapshots on the fly. It runs graph analysis algorithms on the snapshots to simplify the streaming graph algorithms. Chronos [33] is a graph engine optimized for temporal graph analysis. It explores the time-locality in temporal graphs to achieve significant speedup. The streaming version of FlashGraph will adopt similar ideas to optimize for streaming graph analysis. Conclusion Given the latest advancements in disk I/O and network I/O, we get the opportunity to solve large data analysis problems with efficiency approaching that of in-memory data analysis, but at a much larger scale. We constructed two components: SAFS and FlashGraph. SAFS maximizes I/O throughout of a large SSD array in a large parallel machine while providing an asynchronous user-task I/O interface for general data analysis. FlashGraph is a semi-external memory graph engine running on top of SAFS to perform general graph analysis and sparse matrix operations. We demonstrate that the SSD-based graph engine can run at the speed comparable to inmemory counterparts. This achievement enables us to process massive datasets in a single machine efficiently without much concern for the limitation of memory size. It also leads us to build cheaper and more energy-efficient machines without compromising performance. References 1 D. Zheng, R. Burns, A. S. Szalay. Toward millions of file system IOPS on low-cost, commodity hardware. In International Conference for High Performance Computing, 11

12 Networking, Storage and Analysis ( 2013). 2 Da Zheng, Disa Mhembere, Randal Burns, Alexander S. Szalay. FlashGraph: Processing Billion-Node Graphs on an Array of Commodity SSDs arxiv: National Research Council. Frontiers in Massive Data Analysis. The National Academies Press, Washington, DC, Da Zheng, Randal Burns, Alexander S. Szalay. A parallel page cache: IOPS and caching for multicore systems. ( 2012), the 4th USENIX conference on Hot Topics in Storage and File Systems. 5 G. Malewicz, M. H. Austern, A. J.C Bik, J. C. Dehnert, I. Horn, N. Leiser, G. Czajkowski. Pregel: a system for large-scale graph processing. In ACM SIGMOD International Conference on Management of data ( 2010). 6 J. E. Gonzalez, Y. Low, H. Gu, D. Bickson, C. Guestrin. PowerGraph: distributed graphparallel computation on natural graphs. In the 10th USENIX conference on Operating Systems Design and Implementation ( 2012). 7 A. Kyrola, G. Blelloch, and C. Guestrin. Graphchi: Large-scale graph computation on just a PC. In the 10th USENIX Conference on Operating Systems Design and Implementation ( 2012). 8 A. Roy, I. Mihailovic, and W. Zwaenepoel. X-stream: Edge-centric graph processing using streaming partitions. In the Twenty-Fourth ACM Symposium on Operating Systems Principles ( 2013). 9 C. E. Priebe, J. C. M. Conroy, D. J. Marchette, and Y. Park. Scan Statistics on Enron Graphs. Computational and Mathematical Organization Theory, 11 (2005), Gabor Csardi, Tamas Nepusz. The igraph software package for complex network research. InterJournal, Complex Systems (2006), S. Hong, N. C. Rodia, and K. Olukotun. On fast parallel detection of strongly connected components (SCC) in small-world graphs. In the International Conference on High Performance Computing, Networking, Storage and Analysis ( 2013). 12 D. Calvetti, L. Reichel, D. C. Sorensen. An Implicitly Restarted Lanczos Method for Large Symmetric Eigenvalue Problems. ETNA, 2 (1994). 13 H. Kwak, C. Lee, H. Park, and S. Moon. What is twitter, a social network or a news media? ( 2010), the 19th International Conference on World Wide Web. 14 Web graph Raymond Cheng, Ji Hong, Aapo Kyrola, Youshan Miao, Xuetian Weng, Ming Wu, Fan Yang, Lidong Zhou, Feng Zhao, and Enhong Chen. Kineograph: taking the pulse of a fast-changing and connected world. In ACM Eurosys ( 2012). 16 H. Wang, M. Tang, Y. Park, and C. E. Priebe. Locality statistics for anomaly detection in time series of graphs. IEEE Transactions on Signal Processing, 62 (2014). 17 Joon Hee Choi, S. V. N. Vishwanathan. DFacTo: Distributed Factorization of Tensors arxiv: Daniel D. Lee, H. Sebastian Seung. Algorithms for Non-negative Matrix. ( 2000), NIPS. 12

13 19 U. Kang, C. E. Tsourakakis, and C. Faloutsos. PEGASUS: A peta-scale graph mining system implementation and observations. In the 2009 Ninth IEEE International Conference on Data Mining ( 2009). 20 Hadoop. 21 Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified data processing on large clusters. In the 6th Conference on Symposium on Opearting Systems Design & Implementation ( 2004). 22 Reynold Xin, Joseph Gonzalez, Michael Franklin, Ion Stoica. GraphX: A Resilient Distributed Graph System on Spark. ( 2013), GRADES (SIGMOD workshop). 23 Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. In NSDI ( 2012). 24 Giraph. 25 Y. Low, D. Bickson, J. Gonzalez, C. Guestrin, A. Kyrola, and J. M. Hellerstein. Distributed GraphLab: A framework for machine learning and data mining in the cloud. In Proc. VLDB Endow. ( 2012). 26 B. Shao, H. Wang, and Y. Li. Trinity: A distributed graph engine on a memory cloud. In the 2013 ACM SIGMOD International Conference on Management of Data ( 2013). 27 Wook-Shin Han, Sangyeon Lee, Kyungyeol Park, Jeong-Hoon Lee, Min-Soo Kim, Jinha Kim, Hwanjo Yu. TurboGraph: a fast parallel graph engine handling billion-scale graphs in a single PC. the 19th ACM SIGKDD international conference on Knowledge discovery and data mining D. Nguyen, A. Lenharth, and K. Pingali. A lightweight infrastructure for graph analytics. In the Twenty-Fourth ACM Symposium on Operating Systems Principles ( 2013). 29 Jeremy Kepner, John Gilbert. Graph Algorithms in the Language of Linear Algebra. Society for Industrial & Applied Mathematics, A. Lugowski, D. Alber, A. Bulu, J. Gilbert, S. Reinhardt, Y. Teng, and A. Waranis. A Flexible Open-Source Toolbox for Scalable Complex Graph Analysis. In SIAM Conference on Data Mining (SDM) ( 2012). 31 Boost Graph Library. 32 Douglas Gregor, Andrew Lumsdaine. The parallel BGL: A generic library for distributed graph computations. In Parallel Object-Oriented Scientific Computing (POOSC) ( 2005). 33 Wentao Han, Youshan Miao, Kaiwei Li, Ming Wu, Fan Yang, Lidong Zhou, Vijayan Prabhakaran, Wenguang Chen, Enhong Chen. Chronos: A Graph Engine for Temporal Graph Analysis. ( 2014), EuroSys. 13

Introduction to Big Data! with Apache Spark" UC#BERKELEY#

Introduction to Big Data! with Apache Spark UC#BERKELEY# Introduction to Big Data! with Apache Spark" UC#BERKELEY# This Lecture" The Big Data Problem" Hardware for Big Data" Distributing Work" Handling Failures and Slow Machines" Map Reduce and Complex Jobs"

More information

Big Graph Processing: Some Background

Big Graph Processing: Some Background Big Graph Processing: Some Background Bo Wu Colorado School of Mines Part of slides from: Paul Burkhardt (National Security Agency) and Carlos Guestrin (Washington University) Mines CSCI-580, Bo Wu Graphs

More information

LARGE-SCALE GRAPH PROCESSING IN THE BIG DATA WORLD. Dr. Buğra Gedik, Ph.D.

LARGE-SCALE GRAPH PROCESSING IN THE BIG DATA WORLD. Dr. Buğra Gedik, Ph.D. LARGE-SCALE GRAPH PROCESSING IN THE BIG DATA WORLD Dr. Buğra Gedik, Ph.D. MOTIVATION Graph data is everywhere Relationships between people, systems, and the nature Interactions between people, systems,

More information

From GWS to MapReduce: Google s Cloud Technology in the Early Days

From GWS to MapReduce: Google s Cloud Technology in the Early Days Large-Scale Distributed Systems From GWS to MapReduce: Google s Cloud Technology in the Early Days Part II: MapReduce in a Datacenter COMP6511A Spring 2014 HKUST Lin Gu lingu@ieee.org MapReduce/Hadoop

More information

Fast Iterative Graph Computation with Resource Aware Graph Parallel Abstraction

Fast Iterative Graph Computation with Resource Aware Graph Parallel Abstraction Human connectome. Gerhard et al., Frontiers in Neuroinformatics 5(3), 2011 2 NA = 6.022 1023 mol 1 Paul Burkhardt, Chris Waring An NSA Big Graph experiment Fast Iterative Graph Computation with Resource

More information

Software tools for Complex Networks Analysis. Fabrice Huet, University of Nice Sophia- Antipolis SCALE (ex-oasis) Team

Software tools for Complex Networks Analysis. Fabrice Huet, University of Nice Sophia- Antipolis SCALE (ex-oasis) Team Software tools for Complex Networks Analysis Fabrice Huet, University of Nice Sophia- Antipolis SCALE (ex-oasis) Team MOTIVATION Why do we need tools? Source : nature.com Visualization Properties extraction

More information

MMap: Fast Billion-Scale Graph Computation on a PC via Memory Mapping

MMap: Fast Billion-Scale Graph Computation on a PC via Memory Mapping : Fast Billion-Scale Graph Computation on a PC via Memory Mapping Zhiyuan Lin, Minsuk Kahng, Kaeser Md. Sabrin, Duen Horng (Polo) Chau Georgia Tech Atlanta, Georgia {zlin48, kahng, kmsabrin, polo}@gatech.edu

More information

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software WHITEPAPER Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software SanDisk ZetaScale software unlocks the full benefits of flash for In-Memory Compute and NoSQL applications

More information

Benchmarking Hadoop & HBase on Violin

Benchmarking Hadoop & HBase on Violin Technical White Paper Report Technical Report Benchmarking Hadoop & HBase on Violin Harnessing Big Data Analytics at the Speed of Memory Version 1.0 Abstract The purpose of benchmarking is to show advantages

More information

CSE-E5430 Scalable Cloud Computing Lecture 11

CSE-E5430 Scalable Cloud Computing Lecture 11 CSE-E5430 Scalable Cloud Computing Lecture 11 Keijo Heljanko Department of Computer Science School of Science Aalto University keijo.heljanko@aalto.fi 30.11-2015 1/24 Distributed Coordination Systems Consensus

More information

Graph Processing and Social Networks

Graph Processing and Social Networks Graph Processing and Social Networks Presented by Shu Jiayu, Yang Ji Department of Computer Science and Engineering The Hong Kong University of Science and Technology 2015/4/20 1 Outline Background Graph

More information

Big Fast Data Hadoop acceleration with Flash. June 2013

Big Fast Data Hadoop acceleration with Flash. June 2013 Big Fast Data Hadoop acceleration with Flash June 2013 Agenda The Big Data Problem What is Hadoop Hadoop and Flash The Nytro Solution Test Results The Big Data Problem Big Data Output Facebook Traditional

More information

Big Data Analytics Hadoop and Spark

Big Data Analytics Hadoop and Spark Big Data Analytics Hadoop and Spark Shelly Garion, Ph.D. IBM Research Haifa 1 What is Big Data? 2 What is Big Data? Big data usually includes data sets with sizes beyond the ability of commonly used software

More information

RevoScaleR Speed and Scalability

RevoScaleR Speed and Scalability EXECUTIVE WHITE PAPER RevoScaleR Speed and Scalability By Lee Edlefsen Ph.D., Chief Scientist, Revolution Analytics Abstract RevoScaleR, the Big Data predictive analytics library included with Revolution

More information

Optimization and analysis of large scale data sorting algorithm based on Hadoop

Optimization and analysis of large scale data sorting algorithm based on Hadoop Optimization and analysis of large scale sorting algorithm based on Hadoop Zhuo Wang, Longlong Tian, Dianjie Guo, Xiaoming Jiang Institute of Information Engineering, Chinese Academy of Sciences {wangzhuo,

More information

Analysis and Optimization of Massive Data Processing on High Performance Computing Architecture

Analysis and Optimization of Massive Data Processing on High Performance Computing Architecture Analysis and Optimization of Massive Data Processing on High Performance Computing Architecture He Huang, Shanshan Li, Xiaodong Yi, Feng Zhang, Xiangke Liao and Pan Dong School of Computer Science National

More information

Presto/Blockus: Towards Scalable R Data Analysis

Presto/Blockus: Towards Scalable R Data Analysis /Blockus: Towards Scalable R Data Analysis Andrew A. Chien University of Chicago and Argonne ational Laboratory IRIA-UIUC-AL Joint Institute Potential Collaboration ovember 19, 2012 ovember 19, 2012 Andrew

More information

GridGraph: Large-Scale Graph Processing on a Single Machine Using 2-Level Hierarchical Partitioning

GridGraph: Large-Scale Graph Processing on a Single Machine Using 2-Level Hierarchical Partitioning GridGraph: Large-Scale Graph Processing on a Single Machine Using -Level Hierarchical Partitioning Xiaowei Zhu, Wentao Han, and Wenguang Chen, Tsinghua University https://www.usenix.org/conference/atc5/technical-session/presentation/zhu

More information

CSE-E5430 Scalable Cloud Computing Lecture 2

CSE-E5430 Scalable Cloud Computing Lecture 2 CSE-E5430 Scalable Cloud Computing Lecture 2 Keijo Heljanko Department of Computer Science School of Science Aalto University keijo.heljanko@aalto.fi 14.9-2015 1/36 Google MapReduce A scalable batch processing

More information

BSPCloud: A Hybrid Programming Library for Cloud Computing *

BSPCloud: A Hybrid Programming Library for Cloud Computing * BSPCloud: A Hybrid Programming Library for Cloud Computing * Xiaodong Liu, Weiqin Tong and Yan Hou Department of Computer Engineering and Science Shanghai University, Shanghai, China liuxiaodongxht@qq.com,

More information

A Case for Flash Memory SSD in Hadoop Applications

A Case for Flash Memory SSD in Hadoop Applications A Case for Flash Memory SSD in Hadoop Applications Seok-Hoon Kang, Dong-Hyun Koo, Woon-Hak Kang and Sang-Won Lee Dept of Computer Engineering, Sungkyunkwan University, Korea x860221@gmail.com, smwindy@naver.com,

More information

VariantSpark: Applying Spark-based machine learning methods to genomic information

VariantSpark: Applying Spark-based machine learning methods to genomic information VariantSpark: Applying Spark-based machine learning methods to genomic information Aidan R. O BRIEN a a,1 and Denis C. BAUER a CSIRO, Health and Biosecurity Flagship Abstract. Genomic information is increasingly

More information

ioscale: The Holy Grail for Hyperscale

ioscale: The Holy Grail for Hyperscale ioscale: The Holy Grail for Hyperscale The New World of Hyperscale Hyperscale describes new cloud computing deployments where hundreds or thousands of distributed servers support millions of remote, often

More information

Evaluating partitioning of big graphs

Evaluating partitioning of big graphs Evaluating partitioning of big graphs Fredrik Hallberg, Joakim Candefors, Micke Soderqvist fhallb@kth.se, candef@kth.se, mickeso@kth.se Royal Institute of Technology, Stockholm, Sweden Abstract. Distributed

More information

Rakam: Distributed Analytics API

Rakam: Distributed Analytics API Rakam: Distributed Analytics API Burak Emre Kabakcı May 30, 2014 Abstract Today, most of the big data applications needs to compute data in real-time since the Internet develops quite fast and the users

More information

Architectures for Big Data Analytics A database perspective

Architectures for Big Data Analytics A database perspective Architectures for Big Data Analytics A database perspective Fernando Velez Director of Product Management Enterprise Information Management, SAP June 2013 Outline Big Data Analytics Requirements Spectrum

More information

Apache Spark and Distributed Programming

Apache Spark and Distributed Programming Apache Spark and Distributed Programming Concurrent Programming Keijo Heljanko Department of Computer Science University School of Science November 25th, 2015 Slides by Keijo Heljanko Apache Spark Apache

More information

Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database

Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database Built up on Cisco s big data common platform architecture (CPA), a

More information

A Study on Workload Imbalance Issues in Data Intensive Distributed Computing

A Study on Workload Imbalance Issues in Data Intensive Distributed Computing A Study on Workload Imbalance Issues in Data Intensive Distributed Computing Sven Groot 1, Kazuo Goda 1, and Masaru Kitsuregawa 1 University of Tokyo, 4-6-1 Komaba, Meguro-ku, Tokyo 153-8505, Japan Abstract.

More information

Big Data and Scripting Systems beyond Hadoop

Big Data and Scripting Systems beyond Hadoop Big Data and Scripting Systems beyond Hadoop 1, 2, ZooKeeper distributed coordination service many problems are shared among distributed systems ZooKeeper provides an implementation that solves these avoid

More information

Dell In-Memory Appliance for Cloudera Enterprise

Dell In-Memory Appliance for Cloudera Enterprise Dell In-Memory Appliance for Cloudera Enterprise Hadoop Overview, Customer Evolution and Dell In-Memory Product Details Author: Armando Acosta Hadoop Product Manager/Subject Matter Expert Armando_Acosta@Dell.com/

More information

Evaluating HDFS I/O Performance on Virtualized Systems

Evaluating HDFS I/O Performance on Virtualized Systems Evaluating HDFS I/O Performance on Virtualized Systems Xin Tang xtang@cs.wisc.edu University of Wisconsin-Madison Department of Computer Sciences Abstract Hadoop as a Service (HaaS) has received increasing

More information

Fault Tolerance in Hadoop for Work Migration

Fault Tolerance in Hadoop for Work Migration 1 Fault Tolerance in Hadoop for Work Migration Shivaraman Janakiraman Indiana University Bloomington ABSTRACT Hadoop is a framework that runs applications on large clusters which are built on numerous

More information

GraySort on Apache Spark by Databricks

GraySort on Apache Spark by Databricks GraySort on Apache Spark by Databricks Reynold Xin, Parviz Deyhim, Ali Ghodsi, Xiangrui Meng, Matei Zaharia Databricks Inc. Apache Spark Sorting in Spark Overview Sorting Within a Partition Range Partitioner

More information

Oracle NoSQL Database and SanDisk Offer Cost-Effective Extreme Performance for Big Data

Oracle NoSQL Database and SanDisk Offer Cost-Effective Extreme Performance for Big Data WHITE PAPER Oracle NoSQL Database and SanDisk Offer Cost-Effective Extreme Performance for Big Data 951 SanDisk Drive, Milpitas, CA 95035 www.sandisk.com Table of Contents Abstract... 3 What Is Big Data?...

More information

Large-Scale Data Processing

Large-Scale Data Processing Large-Scale Data Processing Eiko Yoneki eiko.yoneki@cl.cam.ac.uk http://www.cl.cam.ac.uk/~ey204 Systems Research Group University of Cambridge Computer Laboratory 2010s: Big Data Why Big Data now? Increase

More information

Scalability! But at what COST?

Scalability! But at what COST? Scalability! But at what COST? Frank McSherry Michael Isard Derek G. Murray Unaffiliated Microsoft Research Unaffiliated Abstract We offer a new metric for big data platforms, COST, or the Configuration

More information

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION A DIABLO WHITE PAPER AUGUST 2014 Ricky Trigalo Director of Business Development Virtualization, Diablo Technologies

More information

Spark. Fast, Interactive, Language- Integrated Cluster Computing

Spark. Fast, Interactive, Language- Integrated Cluster Computing Spark Fast, Interactive, Language- Integrated Cluster Computing Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael Franklin, Scott Shenker, Ion Stoica UC

More information

Tachyon: Reliable File Sharing at Memory- Speed Across Cluster Frameworks

Tachyon: Reliable File Sharing at Memory- Speed Across Cluster Frameworks Tachyon: Reliable File Sharing at Memory- Speed Across Cluster Frameworks Haoyuan Li UC Berkeley Outline Motivation System Design Evaluation Results Release Status Future Directions Outline Motivation

More information

Processing Large Amounts of Images on Hadoop with OpenCV

Processing Large Amounts of Images on Hadoop with OpenCV Processing Large Amounts of Images on Hadoop with OpenCV Timofei Epanchintsev 1,2 and Andrey Sozykin 1,2 1 IMM UB RAS, Yekaterinburg, Russia, 2 Ural Federal University, Yekaterinburg, Russia {eti,avs}@imm.uran.ru

More information

Future Prospects of Scalable Cloud Computing

Future Prospects of Scalable Cloud Computing Future Prospects of Scalable Cloud Computing Keijo Heljanko Department of Information and Computer Science School of Science Aalto University keijo.heljanko@aalto.fi 7.3-2012 1/17 Future Cloud Topics Beyond

More information

Outline. High Performance Computing (HPC) Big Data meets HPC. Case Studies: Some facts about Big Data Technologies HPC and Big Data converging

Outline. High Performance Computing (HPC) Big Data meets HPC. Case Studies: Some facts about Big Data Technologies HPC and Big Data converging Outline High Performance Computing (HPC) Towards exascale computing: a brief history Challenges in the exascale era Big Data meets HPC Some facts about Big Data Technologies HPC and Big Data converging

More information

Binary search tree with SIMD bandwidth optimization using SSE

Binary search tree with SIMD bandwidth optimization using SSE Binary search tree with SIMD bandwidth optimization using SSE Bowen Zhang, Xinwei Li 1.ABSTRACT In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous

More information

GPU File System Encryption Kartik Kulkarni and Eugene Linkov

GPU File System Encryption Kartik Kulkarni and Eugene Linkov GPU File System Encryption Kartik Kulkarni and Eugene Linkov 5/10/2012 SUMMARY. We implemented a file system that encrypts and decrypts files. The implementation uses the AES algorithm computed through

More information

Benchmarking Cassandra on Violin

Benchmarking Cassandra on Violin Technical White Paper Report Technical Report Benchmarking Cassandra on Violin Accelerating Cassandra Performance and Reducing Read Latency With Violin Memory Flash-based Storage Arrays Version 1.0 Abstract

More information

Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing

Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing /35 Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing Zuhair Khayyat 1 Karim Awara 1 Amani Alonazi 1 Hani Jamjoom 2 Dan Williams 2 Panos Kalnis 1 1 King Abdullah University of

More information

Scalable Cloud Computing Solutions for Next Generation Sequencing Data

Scalable Cloud Computing Solutions for Next Generation Sequencing Data Scalable Cloud Computing Solutions for Next Generation Sequencing Data Matti Niemenmaa 1, Aleksi Kallio 2, André Schumacher 1, Petri Klemelä 2, Eija Korpelainen 2, and Keijo Heljanko 1 1 Department of

More information

Evaluation and Analysis of Distributed Graph-Parallel Processing Frameworks

Evaluation and Analysis of Distributed Graph-Parallel Processing Frameworks Evaluation and Analysis of Distributed Graph-Parallel Processing Frameworks Yue Zhao, 1 Kenji Yoshigoe, 1 Mengjun Xie, 1 Suijian Zhou, 1 Remzi Seker 2 and Jiang Bian 3 1 Department of Computer Science,

More information

Benchmark Hadoop and Mars: MapReduce on cluster versus on GPU

Benchmark Hadoop and Mars: MapReduce on cluster versus on GPU Benchmark Hadoop and Mars: MapReduce on cluster versus on GPU Heshan Li, Shaopeng Wang The Johns Hopkins University 3400 N. Charles Street Baltimore, Maryland 21218 {heshanli, shaopeng}@cs.jhu.edu 1 Overview

More information

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl Big Data Processing, 2014/15 Lecture 5: GFS & HDFS!! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl 1 Course content Introduction Data streams 1 & 2 The MapReduce paradigm Looking behind

More information

CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop)

CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop) CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2016 MapReduce MapReduce is a programming model

More information

Using In-Memory Computing to Simplify Big Data Analytics

Using In-Memory Computing to Simplify Big Data Analytics SCALEOUT SOFTWARE Using In-Memory Computing to Simplify Big Data Analytics by Dr. William Bain, ScaleOut Software, Inc. 2012 ScaleOut Software, Inc. 12/27/2012 T he big data revolution is upon us, fed

More information

LLAMA: Efficient Graph Analytics Using Large Multiversioned Arrays

LLAMA: Efficient Graph Analytics Using Large Multiversioned Arrays LLAMA: Efficient Graph Analytics Using Large Multiversioned Arrays Peter Macko # 1, Virendra J. Marathe 2, Daniel W. Margo #3, Margo I. Seltzer # 4 # School of Engineering and Applied Sciences, Harvard

More information

Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics

Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics Juwei Shi, Yunjie Qiu, Umar Farooq Minhas, Limei Jiao, Chen Wang, Berthold Reinwald, and Fatma Özcan IBM Research China IBM Almaden

More information

Stream Processing on GPUs Using Distributed Multimedia Middleware

Stream Processing on GPUs Using Distributed Multimedia Middleware Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research

More information

Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries

Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries Performance Evaluations of Graph Database using CUDA and OpenMP Compatible Libraries Shin Morishima 1 and Hiroki Matsutani 1,2,3 1Keio University, 3 14 1 Hiyoshi, Kohoku ku, Yokohama, Japan 2National Institute

More information

Parallel Computing. Benson Muite. benson.muite@ut.ee http://math.ut.ee/ benson. https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage

Parallel Computing. Benson Muite. benson.muite@ut.ee http://math.ut.ee/ benson. https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage Parallel Computing Benson Muite benson.muite@ut.ee http://math.ut.ee/ benson https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage 3 November 2014 Hadoop, Review Hadoop Hadoop History Hadoop Framework

More information

Data Center Solutions

Data Center Solutions Data Center Solutions Systems, software and hardware solutions you can trust With over 25 years of storage innovation, SanDisk is a global flash technology leader. At SanDisk, we re expanding the possibilities

More information

Accelerating Server Storage Performance on Lenovo ThinkServer

Accelerating Server Storage Performance on Lenovo ThinkServer Accelerating Server Storage Performance on Lenovo ThinkServer Lenovo Enterprise Product Group April 214 Copyright Lenovo 214 LENOVO PROVIDES THIS PUBLICATION AS IS WITHOUT WARRANTY OF ANY KIND, EITHER

More information

In-Memory Databases Algorithms and Data Structures on Modern Hardware. Martin Faust David Schwalb Jens Krüger Jürgen Müller

In-Memory Databases Algorithms and Data Structures on Modern Hardware. Martin Faust David Schwalb Jens Krüger Jürgen Müller In-Memory Databases Algorithms and Data Structures on Modern Hardware Martin Faust David Schwalb Jens Krüger Jürgen Müller The Free Lunch Is Over 2 Number of transistors per CPU increases Clock frequency

More information

Storage and Retrieval of Large RDF Graph Using Hadoop and MapReduce

Storage and Retrieval of Large RDF Graph Using Hadoop and MapReduce Storage and Retrieval of Large RDF Graph Using Hadoop and MapReduce Mohammad Farhan Husain, Pankil Doshi, Latifur Khan, and Bhavani Thuraisingham University of Texas at Dallas, Dallas TX 75080, USA Abstract.

More information

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging In some markets and scenarios where competitive advantage is all about speed, speed is measured in micro- and even nano-seconds.

More information

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1 Performance Study Performance Characteristics of and RDM VMware ESX Server 3.0.1 VMware ESX Server offers three choices for managing disk access in a virtual machine VMware Virtual Machine File System

More information

Maximizing SQL Server Virtualization Performance

Maximizing SQL Server Virtualization Performance Maximizing SQL Server Virtualization Performance Michael Otey Senior Technical Director Windows IT Pro SQL Server Pro 1 What this presentation covers Host configuration guidelines CPU, RAM, networking

More information

Big Data and Scripting Systems build on top of Hadoop

Big Data and Scripting Systems build on top of Hadoop Big Data and Scripting Systems build on top of Hadoop 1, 2, Pig/Latin high-level map reduce programming platform Pig is the name of the system Pig Latin is the provided programming language Pig Latin is

More information

Machine Learning over Big Data

Machine Learning over Big Data Machine Learning over Big Presented by Fuhao Zou fuhao@hust.edu.cn Jue 16, 2014 Huazhong University of Science and Technology Contents 1 2 3 4 Role of Machine learning Challenge of Big Analysis Distributed

More information

Incremental Map Reduce & Keyword-Aware for Mining Evolving Big Data

Incremental Map Reduce & Keyword-Aware for Mining Evolving Big Data Incremental Map Reduce & Keyword-Aware for Mining Evolving Big Data Rahul More 1, Sheshdhari Shete 2, SnehalJagtap 3,Prajakta Shete 4 1 Student,Department of Computer Engineering,Genba Sopanrao Moze College

More information

A Performance Evaluation of Open Source Graph Databases. Robert McColl David Ediger Jason Poovey Dan Campbell David A. Bader

A Performance Evaluation of Open Source Graph Databases. Robert McColl David Ediger Jason Poovey Dan Campbell David A. Bader A Performance Evaluation of Open Source Graph Databases Robert McColl David Ediger Jason Poovey Dan Campbell David A. Bader Overview Motivation Options Evaluation Results Lessons Learned Moving Forward

More information

Maximizing Hadoop Performance and Storage Capacity with AltraHD TM

Maximizing Hadoop Performance and Storage Capacity with AltraHD TM Maximizing Hadoop Performance and Storage Capacity with AltraHD TM Executive Summary The explosion of internet data, driven in large part by the growth of more and more powerful mobile devices, has created

More information

Masters Project Proposal

Masters Project Proposal Masters Project Proposal Virtual Machine Storage Performance Using SR-IOV by Michael J. Kopps Committee Members and Signatures Approved By Date Advisor: Dr. Jia Rao Committee Member: Dr. Xiabo Zhou Committee

More information

City University of Hong Kong Information on a Course offered by Department of Computer Science with effect from Semester A in 2014 / 2015

City University of Hong Kong Information on a Course offered by Department of Computer Science with effect from Semester A in 2014 / 2015 City University of Hong Kong Information on a Course offered by Department of Computer Science with effect from Semester A in 2014 / 2015 Part I Course Title: Data-Intensive Computing Course Code: CS4480

More information

Spark and Shark. High- Speed In- Memory Analytics over Hadoop and Hive Data

Spark and Shark. High- Speed In- Memory Analytics over Hadoop and Hive Data Spark and Shark High- Speed In- Memory Analytics over Hadoop and Hive Data Matei Zaharia, in collaboration with Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Cliff Engle, Michael Franklin, Haoyuan Li,

More information

Research Statement Joseph E. Gonzalez jegonzal@eecs.berkeley.edu

Research Statement Joseph E. Gonzalez jegonzal@eecs.berkeley.edu As we scale to increasingly parallel and distributed architectures and explore new algorithms and machine learning techniques, the fundamental computational models and abstractions that once separated

More information

The search engine you can see. Connects people to information and services

The search engine you can see. Connects people to information and services The search engine you can see Connects people to information and services The search engine you cannot see Total data: ~1EB Processing data : ~100PB/day Total web pages: ~1000 Billion Web pages updated:

More information

Accelerating Hadoop MapReduce Using an In-Memory Data Grid

Accelerating Hadoop MapReduce Using an In-Memory Data Grid Accelerating Hadoop MapReduce Using an In-Memory Data Grid By David L. Brinker and William L. Bain, ScaleOut Software, Inc. 2013 ScaleOut Software, Inc. 12/27/2012 H adoop has been widely embraced for

More information

Overlapping Data Transfer With Application Execution on Clusters

Overlapping Data Transfer With Application Execution on Clusters Overlapping Data Transfer With Application Execution on Clusters Karen L. Reid and Michael Stumm reid@cs.toronto.edu stumm@eecg.toronto.edu Department of Computer Science Department of Electrical and Computer

More information

Scalable Data Analysis in R. Lee E. Edlefsen Chief Scientist UserR! 2011

Scalable Data Analysis in R. Lee E. Edlefsen Chief Scientist UserR! 2011 Scalable Data Analysis in R Lee E. Edlefsen Chief Scientist UserR! 2011 1 Introduction Our ability to collect and store data has rapidly been outpacing our ability to analyze it We need scalable data analysis

More information

Efficient Analysis of Big Data Using Map Reduce Framework

Efficient Analysis of Big Data Using Map Reduce Framework Efficient Analysis of Big Data Using Map Reduce Framework Dr. Siddaraju 1, Sowmya C L 2, Rashmi K 3, Rahul M 4 1 Professor & Head of Department of Computer Science & Engineering, 2,3,4 Assistant Professor,

More information

Distributed R for Big Data

Distributed R for Big Data Distributed R for Big Data Indrajit Roy, HP Labs November 2013 Team: Shivara m Erik Kyungyon g Alvin Rob Vanish A Big Data story Once upon a time, a customer in distress had. 2+ billion rows of financial

More information

Parallel Processing of cluster by Map Reduce

Parallel Processing of cluster by Map Reduce Parallel Processing of cluster by Map Reduce Abstract Madhavi Vaidya, Department of Computer Science Vivekanand College, Chembur, Mumbai vamadhavi04@yahoo.co.in MapReduce is a parallel programming model

More information

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms Distributed File System 1 How do we get data to the workers? NAS Compute Nodes SAN 2 Distributed File System Don t move data to workers move workers to the data! Store data on the local disks of nodes

More information

An NSA Big Graph experiment. Paul Burkhardt, Chris Waring. May 20, 2013

An NSA Big Graph experiment. Paul Burkhardt, Chris Waring. May 20, 2013 U.S. National Security Agency Research Directorate - R6 Technical Report NSA-RD-2013-056002v1 May 20, 2013 Graphs are everywhere! A graph is a collection of binary relationships, i.e. networks of pairwise

More information

Big Data Challenges in Bioinformatics

Big Data Challenges in Bioinformatics Big Data Challenges in Bioinformatics BARCELONA SUPERCOMPUTING CENTER COMPUTER SCIENCE DEPARTMENT Autonomic Systems and ebusiness Pla?orms Jordi Torres Jordi.Torres@bsc.es Talk outline! We talk about Petabyte?

More information

EMC XTREMIO EXECUTIVE OVERVIEW

EMC XTREMIO EXECUTIVE OVERVIEW EMC XTREMIO EXECUTIVE OVERVIEW COMPANY BACKGROUND XtremIO develops enterprise data storage systems based completely on random access media such as flash solid-state drives (SSDs). By leveraging the underlying

More information

Big Data Technology Map-Reduce Motivation: Indexing in Search Engines

Big Data Technology Map-Reduce Motivation: Indexing in Search Engines Big Data Technology Map-Reduce Motivation: Indexing in Search Engines Edward Bortnikov & Ronny Lempel Yahoo Labs, Haifa Indexing in Search Engines Information Retrieval s two main stages: Indexing process

More information

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat

Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat Why Computers Are Getting Slower (and what we can do about it) Rik van Riel Sr. Software Engineer, Red Hat Why Computers Are Getting Slower The traditional approach better performance Why computers are

More information

EMC XtremSF: Delivering Next Generation Performance for Oracle Database

EMC XtremSF: Delivering Next Generation Performance for Oracle Database White Paper EMC XtremSF: Delivering Next Generation Performance for Oracle Database Abstract This white paper addresses the challenges currently facing business executives to store and process the growing

More information

Cloud Storage. Parallels. Performance Benchmark Results. White Paper. www.parallels.com

Cloud Storage. Parallels. Performance Benchmark Results. White Paper. www.parallels.com Parallels Cloud Storage White Paper Performance Benchmark Results www.parallels.com Table of Contents Executive Summary... 3 Architecture Overview... 3 Key Features... 4 No Special Hardware Requirements...

More information

Overview on Graph Datastores and Graph Computing Systems. -- Litao Deng (Cloud Computing Group) 06-08-2012

Overview on Graph Datastores and Graph Computing Systems. -- Litao Deng (Cloud Computing Group) 06-08-2012 Overview on Graph Datastores and Graph Computing Systems -- Litao Deng (Cloud Computing Group) 06-08-2012 Graph - Everywhere 1: Friendship Graph 2: Food Graph 3: Internet Graph Most of the relationships

More information

How Companies are! Using Spark

How Companies are! Using Spark How Companies are! Using Spark And where the Edge in Big Data will be Matei Zaharia History Decreasing storage costs have led to an explosion of big data Commodity cluster software, like Hadoop, has made

More information

A Novel Way of Deduplication Approach for Cloud Backup Services Using Block Index Caching Technique

A Novel Way of Deduplication Approach for Cloud Backup Services Using Block Index Caching Technique A Novel Way of Deduplication Approach for Cloud Backup Services Using Block Index Caching Technique Jyoti Malhotra 1,Priya Ghyare 2 Associate Professor, Dept. of Information Technology, MIT College of

More information

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

Colgate-Palmolive selects SAP HANA to improve the speed of business analytics with IBM and SAP selects SAP HANA to improve the speed of business analytics with IBM and SAP Founded in 1806, is a global consumer products company which sells nearly $17 billion annually in personal care, home care,

More information

Building All-Flash Software Defined Storages for Datacenters. Ji Hyuck Yun (dr.jhyun@sk.com) Storage Tech. Lab SK Telecom

Building All-Flash Software Defined Storages for Datacenters. Ji Hyuck Yun (dr.jhyun@sk.com) Storage Tech. Lab SK Telecom Building All-Flash Software Defined Storages for Datacenters Ji Hyuck Yun (dr.jhyun@sk.com) Storage Tech. Lab SK Telecom Introduction R&D Motivation Synergy between SK Telecom and SK Hynix Service & Solution

More information

The Performance Characteristics of MapReduce Applications on Scalable Clusters

The Performance Characteristics of MapReduce Applications on Scalable Clusters The Performance Characteristics of MapReduce Applications on Scalable Clusters Kenneth Wottrich Denison University Granville, OH 43023 wottri_k1@denison.edu ABSTRACT Many cluster owners and operators have

More information

Enabling High performance Big Data platform with RDMA

Enabling High performance Big Data platform with RDMA Enabling High performance Big Data platform with RDMA Tong Liu HPC Advisory Council Oct 7 th, 2014 Shortcomings of Hadoop Administration tooling Performance Reliability SQL support Backup and recovery

More information

EMC XtremSF: Delivering Next Generation Storage Performance for SQL Server

EMC XtremSF: Delivering Next Generation Storage Performance for SQL Server White Paper EMC XtremSF: Delivering Next Generation Storage Performance for SQL Server Abstract This white paper addresses the challenges currently facing business executives to store and process the growing

More information

SIAM PP 2014! MapReduce in Scientific Computing! February 19, 2014

SIAM PP 2014! MapReduce in Scientific Computing! February 19, 2014 SIAM PP 2014! MapReduce in Scientific Computing! February 19, 2014 Paul G. Constantine! Applied Math & Stats! Colorado School of Mines David F. Gleich! Computer Science! Purdue University Hans De Sterck!

More information

Virtualization of the MS Exchange Server Environment

Virtualization of the MS Exchange Server Environment MS Exchange Server Acceleration Maximizing Users in a Virtualized Environment with Flash-Powered Consolidation Allon Cohen, PhD OCZ Technology Group Introduction Microsoft (MS) Exchange Server is one of

More information