Skip to content

Adding a new graph processing platform

Tim Hegeman edited this page Jun 18, 2015 · 7 revisions

This page contains instructions for developers adding support for a new graph processing platform to Graphalytics.

Overview

The code for each platform is organized as a Maven project. Each project should include a script to set up the environment for running the benchmark, and may include configuration files. The platform integration code should be written in Java, but may use external scripts or programs to execute algorithms on the platform.

Project management requirements

The Maven project for a specific project should use graphalytics-platforms-${platform.name} (e.g. graphalytics-platforms-giraph for the Giraph platform) as its artifact id.

A prepare-benchmark.sh script must exist in the same directory as the Maven project's POM file. The script must export the platform environment variable with ${platform.name} as its value. The script may also export the platform_classpath and java_opts environment variables to add to the classpath and JVM options of the benchmark process, respectively.

If configuration files are needed for the platform, they should be places in a directory called config-template.

Platform implementation requirements

The platform code for Graphalytics must provide a class implementing the nl.tudelft.graphalytics.Platform interface. See the Javadoc provided with the Platform interface for more details.

To couple the platform code with the Graphalytics core, a properties file must be created (located in src/main/resources in the common Java project layout) called ${platform.name}.properties containing the fully qualified name of the Platform subclass.

Clone this wiki locally