论文标题

从Ocaml-Multicore的角度来看Graph500

Graph500 from OCaml-Multicore Perspective

论文作者

Singhal, Shubhendra Pal

论文摘要

OCAML是一种工业强度的多范式编程语言,广泛用于行业和学术界。 OCAML的开发是为了解决涉及大规模数据密集型操作的数值和科学问题,而经典的应用集合是Graph Algorithms,这是大多数分析工作负载的核心部分。在本文中,我们旨在与性能分析一起实施图形基准。 Graph500是一种严肃的基准,旨在开发需要极端计算能力的数据密集型应用程序。我们尝试使用Graph500构成的所需规范和规则来实现图形构造,BFS,最短路径问题。本文旨在为使用的几种数据结构提供明确的选择,开发了算法并在每个程序的每个步骤背后都构成原因。本文的前几节通过针对OCAML的初学者的小指南讨论了对问题的正式方法。后一节用未来探索的可能性以及我们在接近解决方案时犯下或遇到的几个错误的可能性描述了算法。所有性能指标均在Intel(R)Xeon(R)Gold 5120 CPU @ 2.20GHz 24 Core Machine上进行了测试。每个部分都讨论遇到的初始性能失败,这将有助于从性能的角度分析和优先考虑我们的首选实施。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源