Graph500 from OCaml-Multicore Perspective

by   Shubhendra Pal Singhal, et al.

OCaml is an industrial-strength, multi-paradigm programming language, widely used in industry and academia. OCaml was developed for solving numerical and scientific problems involving large scale data-intensive operations and one such classic application set is Graph Algorithms, which are a core part of most analytics workloads. In this paper, we aim to implement the graph benchmarks along with the performance analysis. Graph500 is one such serious benchmark which aims at developing data intensive applications requiring extreme computational power. We try to implement Graph Construction, BFS, Shortest-Path problems using the desired specifications and rules posed by graph500. This paper aims at providing a clear direction of choices of several data structures used, algorithms developed and pose a reason behind every step of program. The first few sections of the paper discusses a formal approach to the problem with a small guide for starters in OCaml. The latter sections describe the algorithms in detail with the possibilities of future exploration and several mistakes which we committed or encountered whilst approaching the solution. All performance metrics were tested on Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz 24 core machine. Every section talks about the initial performance failures encountered, which will help analyse and prioritise our preferred implementation from a performance perspective.


page 1

page 2

page 3

page 4


Parallelizing Word2Vec in Multi-Core and Many-Core Architectures

Word2vec is a widely used algorithm for extracting low-dimensional vecto...

Shortest Path Algorithms between Theory and Practice

Utilizing graph algorithms is a common activity in computer science. Alg...

Deep Graph Library Optimizations for Intel(R) x86 Architecture

The Deep Graph Library (DGL) was designed as a tool to enable structure ...

Efficient labeling algorithms for adjacent quadratic shortest paths

In this article, we study the Adjacent Quadratic Shortest Path Problem (...

A Systematic Approach to Programming

We show how to systematically implement a mental representation of an al...

A New Perspective of Graph Data and A Generic and Efficient Method for Large Scale Graph Data Traversal

The BFS algorithm is a basic graph data processing algorithm and many ot...