Jibu is a new way to do programming for multi-core and multi-processor computers.

Gone are the days of low-level threading and synchronization using traditional threading construct like locks, monitors, semaphores, mutexes, condition variables, synchronized methods and gone are the days where every new programming language required relearning existing skills.

Jibu is library for concurrent and parallel programming offering a few very powerful and sophisticated constructs. The simplicity of Jibu enables already skilled programmers with no previous experience in writing concurrent or parallel programs to learn the basics of Jibu in a matter of hours.

Almost any concurrent or parallel program can be modeled using the Jibu constructs shown is this table:

Jibu Construct Description

Task

Tasks replace threads as the central concept in Jibu.

Tasks are easy and fast to create and offer simple mechanisms for cancellation and safe inter-task communication.

Tasks are lightweight objects compared to threads and millions of tasks can easily be created and run.

Jibu automatically maps tasks to threads behind the scenes ensuring optimal utilization of the new generation of multi-core processors.

Parallel

Parallel makes it trivial to run, synchronize and gather results from tasks.

Parallel makes it extremely simple to execute for loops, for-each loops and reductions in parallel.

The programmer needn’t worry about the number of processors, load balancing etc. - all is done automatically.

Channel

Channels abstract low level synchronization mechanisms and provide an extremely simple way for multiple tasks to exchange data. No need to be concerned with traditional constructs like locks, mutexes, semaphores, critical regions or conditions variables.

Choice

Coordinate communication between multiple tasks easily. Choice enables both fair and prioritized communication between multiple tasks eliminating the risk of starvation. It also ensures that CPU cycles are not wasted while waiting for specific events to occur.

Combine these constructs with the advanced Jibu Runtime Infrastructure (JRI) and we are left with a platform for concurrent and parallel programming that is as easy to use as it is powerful. The following small snippet of code shows how easy it is to define a DemoTask and run one million instances of the DemoTask concurrently utilizing all cores in the machine. This example will scale seamlessly to machines containing one million processors ensuring almost linear speed-up. All thread management and load balancing is done automatically.

Create a million tasks and run them concurrently using all available cores

Developers designing and programming new applications from scratch will realize big advantages when designing their code around Jibu. Because of the high-level nature of Jibu, programs will automatically be better structured and easier to code and debug than equivalent thread-based programs.

Jibu is also well suited to enhance legacy applications to take advantage of multi-core processors. This would typically be done by replacing computationally heavy for loops in the sequential program with the parallel for loop supplied by Jibu. It could also be done by turning some of the existing classes in the sequential program into Jibu tasks which are automatically able to run in parallel.

A small example of how trivial it is to replace a for loop in sequential program with a Jibu parallel for loop is shown here:

Sequential version
Jibu parallel version

The code so far has been C# but the code would be almost identical in Java or C++.

Another Jibu advantage is the cross-language nature of the library. .NET, Java, C++ and Delphi versions are already available and other languages are also being considered. This means that the structure of concurrent and parallel programs is very easy to port between the major programming languages as all language-specific editions of Jibu expose the same API.

It also means that developers proficient in Jibu for one language will immediately be able to write concurrent and parallel programs in other languages – no learning curve at all.

The graph shows how the time spent on a typical development project targeting a multi-core machine could change when replacing the thread model with the use of Jibu. Even though the example is fictitious it is obvious that the combination of ease of use and the high-level concurrency constructs that Jibu delivers will save countless hours spent on program designing, development and debugging.

All programmers know how frustrating it can be when we need answers to questions and need them fast. To support Jibu a discussion forum exists where programmers can pose their questions and get answers from other Jibu users or from members of the core development team.

Programmers using the commercial version of Jibu have access to support with guaranteed response times.

More Information on Jibu

The Jibu download includes a detailed documentation of all Jibu features and some sample programs.
The documentation section provides different articles about Jibu and finally a more detailed explanation of Jibu is given here.

Privacy Statement | Terms Of Use
Webdesign: Dudal Webdesign