Welcome to the homepage of MC# language!
MC# Project
Home page 
MC# language 
Documentation 
Publications 
 Code examples 
FAQ 

 
Downloads
MC# Programming 
System
 

 
Related links
Parallel C# 
Polyphonic C# 
SKIF Project 

 
Contacts
 Contacts 


Mono powered

Microsoft .Net powered


 
   What's new in MC#.Cluster Programming System v.1.4.4

Release notes. What’s new in version 1.4.4

 

 

You can download the latest version of MC#.Cluster Programming System <<< here >>>

 

 

Efficient multicore processors support (only on OS Windows 2003 Server)

 

Starting from this version we added support for multicore processors – that means that each node locally manages the load of processors and no more relies on technologies like HyperThreading.

 

Here is the example which we will use to demonstrate the difference between previous and current versions of Runtime Systems:

 

using System;

using System.Threading;

 

public class LoadTest

{

 async SomeLoad()

 {

  Console.WriteLine(DateTime.Now.ToString() + " Calculations started...");

  long x = 4000000000;

  int a = 0;

  for (long i = 0; i < x; i++)

  {

   a++; a--;

  }

  Console.WriteLine(DateTime.Now.ToString() + " Calculations finished...");

 }

 

 public static void Main(string[] args)

 {

  LoadTest lt = new LoadTest();

  for (int i = 0; i < 5; i++)

  {

   lt.SomeLoad();

   Thread.Sleep(20000);

  }

 }

}

 

In this example six tasks are created with the 20 seconds delay. Now let’s look how previous and current versions of the Runtime system behave on Intel’s Pentium 4 CPU with 2 cores.

 

Previous version of Runtime system (with disabled processor affinity management):




New version of Runtime system (with enabled processor affinity management):

 

As you can see, new version doesn’t make unnecessary context switches between processors and brings more efficiency in your applications.

 

Changes in the output of statistics (Windows version)

From now on we do not output statistics by default in Windows version. If you need to display statistics you should use key “/showstats or “/withstats.

I.e. “fib.exe 35 /np 2 /withstats.

Also now statistics shows the number of movable methods distributed to each of the used nodes.

 

Correct handling of Ctrl+C combination (Windows version)

In previous versions when you were pressing Ctrl+C your program terminated only on frontend machine of the cluster. And computations still continued on other nodes of the cluster, which could lead to big number of “dead” processes. These processes could be terminated only manually or by system restart.

Now using of this combination should “correctly” terminate the program on all nodes of the cluster.

 

Exception identifiers (Windows version)

We have reviewed the exception numbering. Now we include the filename to easily identify the part of the code where the exception was caught.

 

Defect fixed: Statistics output and concurrent threads

In case when during the phase of program termination there were some active asynchronous methods which were printing something to the console, the log of the statistics could be “broken”. For example, let’s consider the following program:

 

using System;

 

public class Test_Output

{

 public static void Main( String[] args )

 {

  Test_Output to = new Test_Output();

  to.Async();

  Console.ReadLine();

 }

 

 public async Async()

 {

  while ( true ) Console.WriteLine( "Hello !" );

 }

}

 

In previous versions the console output could be like this:

 

Hello !

Hello !

Hello !

Hello !

 

Hello !

Hello !

________________________________________________

==MC# Statistics================================

Number of movable calls: 0

Number of channel messages: 0

Number of movable calls (across network): 0

Number of channel messages (across network): 0

Hello !

Hello !

Hello !

Hello !

Hello !

Hello !

Total size of movable calls (across network): 0 bytes

Total size of channel messages (across network): 0 bytes

Total time of movable calls serialization: 00:00:00

Total time of channel messages serialization: 00:00:00

Total size of transported messages: 0 bytes

Total time of transporting messages: 00:00:00

Session initialization time: 00:00:01.2968750 / 1.296875 sec. / 1296.875 msec.

Total time: 00:00:01.9531250 / 1.953125 sec. / 1953.125 msec.

________________________________________________

Hello !

Hello !

 

Now this shouldn’t happen.

 

Defect fixed (Windows version): Changes in functions TCPBase.ReadLine and TCPBase.SendMessage

On “slow” machines there were some situations when sending of big messages never succeeded.

 

Defect fixed (Windows version): Changes in StartInfo

Our users complained that it is impossible to run programs in distributed mode without specifying the “.exe” file extension, although it is working correctly in local mode. I.e. “fib 35 /np 2”. Now this should work in distributed mode too.

 

 

 

You can download the latest version of MC#.Cluster Programming System <<< here >>>

 

 


Âåñü Ïåðåñëàâëü