Code Monkey home page Code Monkey logo

nfl's Introduction

Introduction

NFL is a two-stage learned index framework, consisting of a normalizing flow that performs a Distribution Transformation on the key distribution and a learned index that achieves excellent performance on the near-uniform key distritbuion with small buffers.

Early access: https://arxiv.org/abs/2205.11807

Requirements

  • Intel MKL 11.3
  • CMake 3.12
  • GNU C++ 17
  • OpenMP

Getting Started

Acitivating intel mkl.

$ source ~/intel/oneapi/setvars.sh --force intel64

Downloading libraries and compiling codes.

$ bash scripts/bootstrap.sh

Generating workloads and configs.

$ bash scripts/generate_workloads.sh
$ bash scripts/generate_configs.sh

Reproducing results.

$ bash scripts/benchmark.sh

Clearing.

$ bash scripts/clear.sh

Training

To train our numerical flowl, please follow the guideline in the train directory.

First, run the script to generate training data for the flow.

$ bash scripts/prepare_keys_for_flows.sh

Then, run the script in the train directory.

$ bash train/train_flow.sh

Results

The results are shown in the following format.

(dataset name) (index name) (batch size) (bulk loading time) (transformation time in bulk loading) (model size) (index size) (overall throughput) (avg-T) (avg-I) (50-T) (50-I) (75-T) (75-I) (99-T) (99-I) (995-T) (995-I) (9999-T) (9999-I) (max-T) (max-I)

where 'T' represents the transformation time, 'I' represents the indexing latency.

Contact

Please be free to contact us via [email protected].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.