Parallel Computing Runtime for .NET Framework

Alexander Chudinov
Vladimir Roganov
Program Systems Institute
of the Russian Academy of Sciences
152140 Pereslavl-Zalesskiy
Russia

e-mail: chudinov@strategypartner.com
var@skif.botik.rus

http://

 

Keywords: Automatic dynamic multisequencing of the progrmas, parallel computations, .NET Framework, .NET Remoting, .NET Threading

Abstract

The .NET Framework offers comprehensive and flexible thread APIs that allow the efficient implementation of multithreaded applications. These APIs can, however, only be utilized within Symmetric Multiprocessors (SMPs), which have a very limited scalability. For larger systems, which are in the PC world mostly represented as clusters of SMPs, other paradigms like message passing or handcrafted hybrid systems have to be used. These approaches are generally more difficult to program and require major code changes compared to sequential codes. This paper presents an extension to the .NET Framework which implements the concept of automatic dynamic multisequencing of the programs.The extension provides both ease-of-use and scalability in developement of parallel programs. This drastically eases the use of clusters and opens cluster architectures to a whole range of new potential users and applications.

The extension offers a new model of a computation process based on the following concepts:

These concepts are naturally integrated into .NET Framework by means of using templatized classes that encapsulate all low-level details such as threading, synchronization, scheduling, load balancing, etc., which makes the extension a powerful tool for implementing high-performance parallel programs.