Skip to content

constracktor/GPRat

Repository files navigation

GPRat is an open-source library for Gaussian Process Regression. Leveraging the asynchronous many-task runtime HPX, we aim to combine the performance of asynchronous parallelism in C++ with the ease of use of commonly available Python libraries. Thus, GPRat can be conveniently integrated into Python projects without binding overheads or used directly with pure C++ code.

Dependencies

GPRat utilizes two external libraries:

  • HPX for asynchronous task-based parallelization
  • MKL for CPU-only BLAS computations

Install dependencies

All dependencies can be installed using Spack. A script to install and setup spack for GPRat is provided in spack-repo. Spack environment configurations and setup scripts for CPU and GPU use are provided in spack-repo/environments.

How To Compile

GPRat makes use of CMake presets to simplify the process of configuring the project.

For example, building and testing this project on a Linux machine is as easy as running the following commands:

cmake --preset=dev-linux
cmake --build --preset=dev-linux
ctest --preset=dev-linux

As a developer, you may create a CMakeUserPresets.json file at the root of the project that contains additional presets local to your machine.

GPRat can be build with or without Python bindings. The following options can be set to include / exclude parts of the project:

Option name Description Default value
GPRAT_BUILD_CORE Enable/Disable building of the core library ON
GPRAT_BUILD_BINDINGS Enable/Disable building of the Python bindings ON
GPRAT_ENABLE_FORMAT_TARGETS Enable/disable code formatting helper targets ON if top-level
GPRAT_ENABLE_EXAMPLES Enable/disable example projects ON if top-level

Respective scripts can be found in this directory.

How To Run

GPRat contains several examples. One to run the C++ code, one to run the Python code as well as two reference implementations based on TensorFlow (GPflow) and PyTorch (GPyTorch).

To run the GPRat C++ code

  • Go to examples/gprat_cpp
  • Set parameters in execute.cpp
  • The example is built as part of the main project. If you want to use an installed GPrat version: Run ./run_gprat_cpp.sh to build and run example

To run GPRat with Python

To run GPflow reference

To run GPflow reference

The Team

The GPRat library is developed by the Scientific Computing department at IPVS at the University of Stuttgart. The project is a joined effort of multiple undergraduate, graduate, and PhD students under the supervision of Prof. Dr. Dirk Pflüger. We specifically thank the follow contributors:

How To Cite

TBD.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •