What is it about?

We present several ways to use vector instructions for graph processing. We show an improved template for pull processing, and also show how to apply vectorisation for push processing. The latter is hard to vectorise because it involves concurrent updates of variables by multiple threads, and by multiple lanes. We show how to manage the concurrency through data layout optimisations.

Featured Image

Why is it important?

Graph analytics can be time-consuming and generally make poor use of the processor. Most of the time processors are waiting for data to arrive from memory. Vectorisation helps to alleviate this by increasing the rate at which memory access instructions can be issued.

Perspectives

There are several papers that propose data layouts and loop structures for vectorised graph processing. We compare the main ones and are the first (and so far the only ones) to apply vectorisation to push processing on a CPU.

Hans Vandierendonck
Queen's University Belfast

Read the Original

This page is a summary of: Graptor, June 2020, ACM (Association for Computing Machinery),
DOI: 10.1145/3392717.3392753.
You can read the full text:

Read

Contributors

The following have contributed to this page