{"id":1615,"date":"2021-03-11T13:15:28","date_gmt":"2021-03-11T13:15:28","guid":{"rendered":"https:\/\/blogs.qub.ac.uk\/graphprocessing\/?page_id=243"},"modified":"2025-03-03T08:06:18","modified_gmt":"2025-03-03T08:06:18","slug":"laganlighter","status":"publish","type":"page","link":"https:\/\/blogs.qub.ac.uk\/dipsa\/laganlighter\/","title":{"rendered":"LaganLighter: Structure-Aware High-Performance Graph Algorithms"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Project Statement<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-justify\">We study the characteristics of graph datasets and their implications on the memory utilization and memory locality of graph analytics. We identify the connection between different vertex classes in real-world graph datasets and we explore how these connections affect the performance of different graph analytics and traversals. These patterns are used to propose novel structure-aware graph analytic algorithms with optimized performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Project Steps<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-justify\">(1) Analysing the functionality of locality-optimizing graph reordering algorithms for different real-world graph datasets by introducing new metrics and tools (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/locality-analysis-of-graph-reordering-algorithms\/\">IISWC<\/a><a href=\"https:\/\/blogs.qub.ac.uk\/graphprocessing\/locality-analysis-of-graph-reordering-algorithms\/\" target=\"_blank\" rel=\"noreferrer noopener\">&#8217;21<\/a> and <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/how-do-graph-relabeling-algorithms-improve-memory-locality-ispass21\/\">ISPASS&#8217;21<\/a>).<br><br> (2) Introducing locality-optimizing graph algorithms: <strong><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/exploiting-in-hub-temporal-locality-in-spmv-based-graph-processing\/\">Hub Temporal Locality (HTL)<\/a> <\/strong>algorithm as a structure-aware and cache-friendly graph traversal (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/exploiting-in-hub-temporal-locality-in-spmv-based-graph-processing\/\" target=\"_blank\" rel=\"noreferrer noopener\">ICPP&#8217;21<\/a>) and<strong><a href=\"https:\/\/blogs.qub.ac.uk\/GraphProcessing\/LOTUS-locality-optimizing-triangle-counting\/\"> <\/a><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/LOTUS-locality-optimizing-triangle-counting\/\">LOTUS<\/a><\/strong> algorithm that optimizes locality in Triangle Counting (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/LOTUS-locality-optimizing-triangle-counting\/\" target=\"_blank\" rel=\"noreferrer noopener\">PPoPP&#8217;22<\/a>).<br><br> (3) Introducing memory and work-optimizing algorithms: <strong><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/thrifty-label-propagation-fast-connected-components-for-skewed-degree-graphs\/\">Thrifty Label Propagation<\/a><\/strong> that optimizes the Connected Components algorithm for power-law graph datasets (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/thrifty-label-propagation-fast-connected-components-for-skewed-degree-graphs\/\">IEEE CLUSTER&#8217;21<\/a>), <strong><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/MASTIFF-Structure-Aware-Minimum-Spanning-Tree-Forest\/\">MASTIFF<\/a><\/strong> algorithm that optimizes work-efficiency in finding Minimum Spanning Tree\/Forest (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/MASTIFF-Structure-Aware-Minimum-Spanning-Tree-Forest\/\">ICS&#8217;22<\/a>), and <strong><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/SAPCo-Sort-Optimizing-Degree-Ordering-for-Power-Law-Graphs\">SAPCo<\/a><\/strong><a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/SAPCo-Sort-Optimizing-Degree-Ordering-for-Power-Law-Graphs\"><strong> Sort<\/strong><\/a> that optimizes degree-ordering of power-law graphs (published in <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/SAPCo-Sort-Optimizing-Degree-Ordering-for-Power-Law-Graphs\">ISPASS&#8217;22<\/a>).<\/p>\n\n\n\n<p class=\"has-text-align-justify\">(4) To demonstrate the dependency of performance on graph locality and computer architecture, we design performance model of graph algorithms. We apply this method to <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/PoTra\"> <strong>PoTra<\/strong><\/a>, our structure-aware graph transposition algorithm, illustrating how architectural characteristics can be leveraged to optimize performance.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Project Legacy<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-justify\">The LaganLighter project shows that the different constituents of a network (graph) may expose different behaviours to analytic algorithms as a result of contrasting features and requirements. By exploiting these diverse behaviours and structural differences, we can accelerate the performance. <br><br>The <a href=\"https:\/\/blogs.qub.ac.uk\/DIPSA\/On-Designing-Structure-Aware-High-Performance-Graph-Algorithms-PhD-Thesis\/\"><strong>Uniform Memory Demands Strategy<\/strong><\/a> concentrates on separating these constituents with contrasting needs and behaviours based on the degree of vertices. Similarly, other features of the skewed degree networks, or in other words, other perspectives on separating constituents of the network (such as connectivity that is used by Thrifty and MASTIFF algorithms) can be exploited to accelerate graph algorithms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>Publications &amp; Source Code<\/strong><\/h2>\n\n\n<ul class=\"wp-block-latest-posts__list has-dates wp-block-latest-posts\"><li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2025\/01\/potra-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/on-optimizing-locality-of-graph-transposition-on-modern-architectures\/\">On Optimizing Locality of Graph Transposition on Modern Architectures<\/a><time datetime=\"2025-01-15T19:32:09+00:00\" class=\"wp-block-latest-posts__post-date\">15 January 2025<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/08\/cones2-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/random-vertex-relabelling-in-laganlighter\/\">Random Vertex Relabelling in LaganLighter<\/a><time datetime=\"2024-08-21T12:37:52+01:00\" class=\"wp-block-latest-posts__post-date\">21 August 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/08\/trees-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/minimum-spanning-forest-of-ms-biographs\/\">Minimum Spanning Forest of MS-BioGraphs<\/a><time datetime=\"2024-08-09T14:11:36+01:00\" class=\"wp-block-latest-posts__post-date\">9 August 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/08\/affinity-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/topology-based-thread-affinity-setting-thread-pinning-in-openmp\/\">Topology-Based Thread Affinity Setting (Thread Pinning) in OpenMP<\/a><time datetime=\"2024-08-03T18:07:31+01:00\" class=\"wp-block-latest-posts__post-date\">3 August 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2024\/02\/loriini-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/paragrapher-integrated-to-laganlighter\/\">ParaGrapher Integrated to LaganLighter<\/a><time datetime=\"2024-02-16T08:29:26+00:00\" class=\"wp-block-latest-posts__post-date\">16 February 2024<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/Squirrel-Dima-Solomin-Unsplash-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/on-designing-structure-aware-high-performance-graph-algorithms-phd-thesis\/\">On Designing Structure-Aware High-Performance Graph Algorithms (PhD Thesis)<\/a><time datetime=\"2022-12-08T10:00:00+00:00\" class=\"wp-block-latest-posts__post-date\">8 December 2022<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/cactus-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/laganlighter-source-code\/\">LaganLighter Source Code<\/a><time datetime=\"2022-11-14T13:17:17+00:00\" class=\"wp-block-latest-posts__post-date\">14 November 2022<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/Mastiff-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/mastiff-structure-aware-minimum-spanning-tree-forest\/\">MASTIFF: Structure-Aware Minimum Spanning Tree\/Forest &#8211; ICS&#8217;22<\/a><time datetime=\"2022-06-28T20:17:30+01:00\" class=\"wp-block-latest-posts__post-date\">28 June 2022<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/White-Stork-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/sapco-sort-optimizing-degree-ordering-for-power-law-graphs\/\">SAPCo Sort: Optimizing Degree-Ordering for Power-Law Graphs &#8211; ISPASS&#8217;22 (Poster)<\/a><time datetime=\"2022-05-23T11:56:43+01:00\" class=\"wp-block-latest-posts__post-date\">23 May 2022<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/lotus-1000x288-1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/lotus-locality-optimizing-triangle-counting\/\">LOTUS: Locality Optimizing Triangle Counting &#8211; PPOPP&#8217;22<\/a><time datetime=\"2022-04-05T15:50:00+01:00\" class=\"wp-block-latest-posts__post-date\">5 April 2022<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/header-19-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/locality-analysis-of-graph-reordering-algorithms\/\">Locality Analysis of Graph Reordering Algorithms &#8211; IISWC&#8217;21<\/a><time datetime=\"2021-11-08T08:19:00+00:00\" class=\"wp-block-latest-posts__post-date\">8 November 2021<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/michael-mahood-N_WK99xI9hU-unsplash-2-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/thrifty-label-propagation-fast-connected-components-for-skewed-degree-graphs\/\">Thrifty Label Propagation: Fast Connected Components for Skewed-Degree Graphs &#8211; IEEE CLUSTER&#8217;21<\/a><time datetime=\"2021-09-09T16:34:43+01:00\" class=\"wp-block-latest-posts__post-date\">9 September 2021<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/header-12-1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/exploiting-in-hub-temporal-locality-in-spmv-based-graph-processing\/\">Exploiting in-Hub Temporal Locality in SpMV-based Graph Processing &#8211; ICPP&#8217;21<\/a><time datetime=\"2021-08-09T21:07:40+01:00\" class=\"wp-block-latest-posts__post-date\">9 August 2021<\/time><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-content\/uploads\/sites\/14\/2022\/12\/header-11-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"max-width:75px;max-height:75px;\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/how-do-graph-relabeling-algorithms-improve-memory-locality-ispass21\/\">How Do Graph Relabeling Algorithms Improve Memory Locality? ISPASS&#8217;21 (Poster)<\/a><time datetime=\"2021-03-28T08:00:00+01:00\" class=\"wp-block-latest-posts__post-date\">28 March 2021<\/time><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>Project Members<\/strong><\/h2>\n\n\n\n<p>&#8211; <a href=\"https:\/\/orcid.org\/0000-0002-7465-8003\" target=\"_blank\" rel=\"noreferrer noopener\">Mohsen Koohi Esfahani<\/a><br>&#8211; <a href=\"https:\/\/blogs.qub.ac.uk\/dipsa\/personal-page-hans-vandierendonck\/\">Hans Vandierendonck<\/a><br>&#8211; <a href=\"https:\/\/www.cs.qub.ac.uk\/~p.kilpatrick\/\" target=\"_blank\" rel=\"noreferrer noopener\">Peter Kilpatrick<\/a><br><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Grants and Funding<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-justify\">&#8211; PhD scholarship from The Department for the Economy, Northern Ireland and The Queen&#8217;s University Belfast (2019\/10-2022\/9)<br>&#8211; Kelvin-2 supercomputer (EPSRC grant EP\/T022175\/1)<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Naming<\/strong><\/h2>\n\n\n\n<p>The River <em>Lagan<\/em> is the main river in the Northern Ireland and <em>Lighters<\/em> have been light-weight barges used to transport industry materials. We named our project <strong>LaganLighter<\/strong> after the same goal: being nimble and sharp to carry out massive works.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-justify has-medium-font-size\"><strong>Acknowledgement<\/strong><\/h2>\n\n\n\n<p class=\"has-text-align-justify\">&#8211; We thank Vaughan Purnell (QUB), Jose Sanchez Bornot (Ulster University), Luis Fernandez Menchero (QUB), and James McGroarty (QUB) for supervising the Kelvin HPC centre, and Tony McHale and John Conway for supervising the HPDC cluster.<br>&#8211; We thank Jordan McComb for SkyLakeX cache simulation system from his Master project.<br>&#8211; <a href=\"https:\/\/plotly.com\/\">Plotly<\/a><br>&#8211; <a href=\"https:\/\/unsplash.com\/\">Unsplash<\/a>, <a href=\"https:\/\/unsplash.com\/@meetdean\">Dean Machala<\/a>, <a href=\"https:\/\/unsplash.com\/@kmitchhodge\">K. Mitch Hodge<\/a>, and <a href=\"https:\/\/unsplash.com\/@sam_612690\">Michael Mahood<\/a><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Last update: Jan. 25th, 2025<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project Statement We study the characteristics of graph datasets and their implications on the memory utilization and memory locality of graph analytics. We identify the connection between different vertex classes in real-world graph datasets and we explore how these connections affect the performance of different graph analytics and traversals. These patterns are used to propose [&hellip;]<\/p>\n","protected":false},"author":1315,"featured_media":1620,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1615","page","type-page","status-publish","has-post-thumbnail","czr-hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/pages\/1615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/users\/1315"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/comments?post=1615"}],"version-history":[{"count":27,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/pages\/1615\/revisions"}],"predecessor-version":[{"id":3433,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/pages\/1615\/revisions\/3433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/media\/1620"}],"wp:attachment":[{"href":"https:\/\/blogs.qub.ac.uk\/dipsa\/wp-json\/wp\/v2\/media?parent=1615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}