Skip to content
RDFS reasoning on (massively) parallel hardware.
C++ C Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
data
grdfs.xcodeproj
include
src
.gitignore
Makefile
README.mdown
profile.sh

README.mdown

grdfs – parallel RDFS reasoning for CPU and GPU

grdfs is an RDFS reasoner that uses OpenCL for fine-grained parallelism. It can thus exploit massively parallel hardware such as modern GPUs but also runs well on CPUs. Currently it supports the following features:

  • OpenCL implementation of most used RDFS entailment rules.
  • In-memory storage of entailed triples.
  • Writing all or only entailed triples to stdout.
  • Including RDFS axiomatic triples
  • On-device removal of global and local duplicates (local duplicate removal currently only works on GPU devices).

Usage

  • grdfs uses the turtle parser from RDF3-X, it thus is used as follows:
  • grdfs -i <turtle_file>
  • By default, grdfs will use the GPU and print some info to stdout.

Options

  • -i or --input-file <file.ttl> -- source turtle file (required)
  • --device gpu|cpu -- OpenCL device to use (gpu, cpu)
  • -l or --no-local-dedup -- disable local deduplication
  • -g or --no-global-dedup -- disable global deduplication
  • -a or --axioms -- include RDFS axiomatic triples
  • -t or --time -- print profiling information
  • -p or --print-triples -- write triples to stdout (in NTriples format)

Requirements

  • For building grdfs a C++11 compiler is needed. We recommend one of the following:
    • Clang 3.1
    • GCC 4.7
  • On Linux, the AMD APP SDK must be installed
  • Boost program_options
    • Mac OS X: brew install boost --with-c++11
    • Ubuntu: sudo apt-get install libboost-dev libboost-program-options-dev

Bulding

  • Mac OS X: use provided Xcode project or type make.
  • Linux: type make.

Open Issues

  • Complete rule implementation
  • Using multiple OpenCL devices
  • Partitioning large graphs to fit in device memory
Something went wrong with that request. Please try again.