GithubHelp home page GithubHelp logo

ulib's Introduction

------------------------
 About the ULIB Library
------------------------
The ulib library strives to provide efficient implementations of data
structures and algorithms for C and C++. It particularly focuses on
those frequently used items, such as hash tables, binary trees,
sorting algorithms, search algorithms, bitmaps, cryptographic hash
functions, and etc. It also offers some featured items such as the
Bloom filters, random number generators, command-line interpreter, and
a MapReduce framework that fully harnesses the power of multicores.

The current implementation of the ulib exhibits several performance
benefits over state-of-the-art. For example, the ulib's aligned hash
map outstrips a number of other popular ones in search, insertion as
well as memory consumption. Another example was based on my original
observation that the chained hash map with region locks supersedes
many lock-free ones in performance. This is further explained on the
wiki:http://code.google.com/p/ulib/wiki/LocksCanMakeSense.

The ulib project is based on several research projects of mine as well
as some other popular open source projects such as the Linux Kernel.

The project website provides more information about this project:
http://code.google.com/p/ulib.

---------------------------
 How to Build This Library
---------------------------
Use 'make' to build the entire library. After that you will have the
headers reside under the include/ and static libraries under the
lib/. Alternatively, you can perform 'make release' to strip the
debugging information.

--------------------------------
 An Overview of the Source Tree
--------------------------------
.
|-- include                  -- output headers for the library
|-- lib                      -- output static libraries
|-- perf                     -- performance benchmarks
|   |-- avl                  -- AVL tree performance
|   |   |-- libavl
|   |   |-- solaris
|   |   `-- ulib
|   |-- hashmap              -- hash map performance
|   |   `-- result
|   `-- mapreduce            -- MapReduce framework performance
|-- src
|   |-- base                 -- core items
|   |-- ext1                 -- extended items
|   |   |-- bloom_filter
|   |   |-- c++              -- C++ containers and wrapper classes
|   |   |-- comb             -- combinatorics enumerator
|   |   |-- console          -- command-line interpreter
|   |   `-- rng              -- various RNG's
|   `-- ext2                 -- advanced items
|       |-- mapreduce        -- MapReduce framework
|       |-- osdep            -- OS dependent items
|       |-- reentrant        -- thread-safe items
|       `-- thread           -- thread and scheduling primitives
`-- test                     -- tests for everything

----------------------
  The Version Number
----------------------
A sample version number may look like "a.b.c", which consists of three
parts. 'a' is the major version for the library, identifying the
design or interface. b is the minor version that represents the
change of features. And, c is used to denote the bug fixes.

ulib's People

Watchers

 avatar  avatar

Forkers

tempbottle

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.