Multicore Object Framework (MOF): An Effective Approach Towards Developing Applications for Multicore using C++ and POSIX Threads for Parallel Processing

Prabin R. Sahoo

Tata Consultancy Services Limited, Mumbai, India.


Multicore processors [1] are already into the commodity market which has created a revolution not only in the processor design but also in the application design. Multiple cores within a chip have brought a new dimension to the application design. Business applications can exploit this new architecture by introducing parallelism into the application design. The parallelism features once ruling the HPC market with SMP [2] and MPP [15] can be reused in the multicore as well. Multithreaded programming plays a major role for achieving parallelism in multicore. However, multithreaded programming has its own challenges such as deadlocks, race conditions, programming complexities and so on. In this paper I have demonstrated a new approach towards developing applications using multithreading. This new approach is called multicore objects framework. I have reused the objected oriented programming paradigm [5] for building multicore object framework. Multicore objects are objects which are mapped to the execution core in multicore. Multicore objects are light weight objects. A light weight object is one which not only exists in memory but also acts as a light weight process which runs in a core. Multicore objects make parallel programming application development simple and effective. Using multicore objects thread programming challenges such as deadlock, race conditions, broadcasting complexities etc on shared memory architecture can be eliminated, in addition it helps in persisting thread data to make it easier for achieving map-reduce, and split-join like functionalities used in parallel processing.

     Back to TOC