- a library of non-blocking synchronization protocols
Noble is a software package freely available for research and educational purposes. Main areas of applications are within the Parallel and Real-Time Systems community where concurrency is needed.
Noble consists of several implementations of commonly used data structures. These kind of structures like stacks, queues, lists etceteras need some kind of synchronization when used in concurrent environments. These environments can be multitasking systems, parallel computers as well as distributed real-time systems. The most common synchronization method involves some kind of locks, which enforces blocking.
Noble provides several non-blocking implementations of common data structures as well as lock based ones. The users can change synchronization method transparently to the one that suits best for the current application, even in run-time. With Noble the users can take benefits of non-blocking protocols without thorough knowledge in the wait and lock-free community.
Noble is easy to use and supports most programming languages as it is written in C. Several platforms and computer architectures are supported and more are planned in the future.
Why should one consider using non-blocking synchronization? Research has proven the non-blocking protocols avoid a lot of problems that using locks can cause:
Another benefit is that one could utilize the underlying parallelism in the system in a more efficient way. Many non-blocking protocols are executing many times faster than the lock based alternative.
NEWS. There is now a commercial product available called NOBLE Professional Edition. This is a new product made from scratch with a significantly larger scope than the research project. See www.noble-library.com for more information.
This project is sponsored by ARTES
Related local projects: