Blazegraph and Blazegraph GPU are specifically targeted at large scale, complex graph analytic environments, especially where relationships are unknown in advance.
Blazegraph is an (extended) RDF graph database that also supports property graphs. It leverages SPARQL 1.1, the Tinkerpop/Blueprints and Sesame APIs and a graph mining API. You can also use the Gremlin graph traversal language and the product supports OWL (web ontology language). Further, the product supports the development of domain specific languages whose syntax is converted into SPARQL queries at run-time. With Blazegraph GPU SPARQL queries are translated into suitable code for the GPUs by the software so there will be little or no change required when upgrading to a GPU-based environment.
Existing Blazegraph implementations, as well as new deployments, may be extended by the use of NVIDIA GPUs. Currently support is provided for hundreds of GPUs, enabling exploration of hundreds of billions of edges. There are plans to expand these to thousands of GPUs supporting trillions of edges. As a general principle we would expect approximately an order of magnitude greater cost-effectiveness compared to an all-in-memory approach as offered by some other vendors in the graph market. The next release of NVIDIA processors (Pascal) is expected to improve performance by another four times. We would also expect that adding GPUs to an existing Blazegraph implementation should improve performance by approximately two orders of magnitude.
At present Blazegraph can only be extended through the use of NVIDIA GPUs. In principle there is no reason why other vendors' GPUs should not be used but suppliers in this market tend to use their own, proprietary, development environments. In the case of NVIDIA this is CUDA. This stands for Compute Unified Device Architecture, and it is a parallel computing platform and application programming interface (API) model that allows software developers to use a CUDA-enabled graphics processing unit for general purpose processing. The CUDA platform is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements. However, despite the fact that you can program in C, C++ or Fortran, parallel programming is hard. As a result, Blazegraph has developed DASL to make this process easier. This is a functional, domain specific language for developing graph and machine learning algorithms. Potential applications include not just graph algorithms but also recommendation systems using collaborative filtering, neural network techniques, clustering algorithms, and a number of others. DASL leverages both Apache Spark and Scala and then the relevant code is automatically converted into CUDA so that developers do not have to worry about understanding parallel programming.