<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>MPAPI Forum Rss Feed</title><link>http://www.codeplex.com/MPAPI/Thread/List.aspx</link><description>MPAPI Forum Rss Description</description><item><title>New Post: FYI: Builds/Compiles Fine Under .NET 4.0</title><link>http://mpapi.codeplex.com/discussions/445585</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
Just to let y'all know: built/compiled it under VisualStudio 2010 using .NET 4.0 (SP1). Everything works fine. &lt;br /&gt;
&lt;br /&gt;
Am extending it to execute PowerShell (PowerShell script sets-up disk-files, cleans scratch/output areas, eventually calls C#/F#/IronPython executable which does heavy-lifting, PowerShell then does clean-up/filing-of-results).&lt;br /&gt;
&lt;br /&gt;
Chuck&lt;br /&gt;
&lt;/div&gt;</description><author>ChuckMoore</author><pubDate>Fri, 31 May 2013 16:43:30 GMT</pubDate><guid isPermaLink="false">New Post: FYI: Builds/Compiles Fine Under .NET 4.0 20130531044330P</guid></item><item><title>New Post: Registration Server Redundancy</title><link>http://mpapi.codeplex.com/discussions/351708</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I apologize in advance, I am new to distributed computing and want to impart sufficient detail about the design of our system to make sure that&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Background &amp;amp; Design:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are an organization with a large number of system, build around a core OLTP system (which I will refer to as our Case Manage System),&amp;nbsp;that works with entities we will refer to as Cases.&lt;/p&gt;
&lt;p&gt;The case management system supports case life cycle management across a number of products for multiple clients, and is relatively extensible. &amp;nbsp;Its biggest short coming is that it has a number of legacy legacy clients, but no central service tier (clients
 include intranet portal for internal employees, internet portal for external users, and tablet devices for both internal and external users). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Our business needs with in each product managed in the case management system vary greatly, and we have a number of ancillary sub-systems to extend the core case management capabilities for additional needs (document generation (letters &amp;amp; fax), report
 generation, real time export to client systems, telephony integration).&lt;/p&gt;
&lt;p&gt;As we approach a systemic refactor of the clients participating in this case management platform, I would like to start building the central service tier we currently lack. &amp;nbsp;The general approach we would like to take is to build a cluster of service
 hosts (collectively known as the Case Action Controller) &amp;nbsp;that would receive a message from any of the case management clients at predefined events in the case life cycle, and forward that message to services that have subscribed with the Case Action
 Controller to receive specific messages (each of these known as Case Action Listeners). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Case Management clients will always address the Case Action Controller from a single load balanced address, the node in the cluster that receives the message will forward the meesage to any registered Case Action Listeners who've expressed an interest in
 cases of that type (the criteria for this determination aren't&amp;nbsp;pertinent&amp;nbsp;right now).&lt;/p&gt;
&lt;p&gt;As our business works, I can afford a single point of failure at the Case Action Listener level (I can requeue most of this manually at a later time), but not with in the Case Manage System or the Case Action Controller.&lt;/p&gt;
&lt;p&gt;I would like to use MPAPI to build this CaseActionController level (partially to handle load, partially to avoid the controller becoming a single point of failure). &amp;nbsp;I would like to start up N nodes on N hosts, all listening on the same port.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Questions&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Is MPAPI a good fit for me. &amp;nbsp;Part of what I am concerned with is that I actually need a cluster infrastructure that help nodes maintain a consistent state for some of my use cases (i.e. the nodes need to share the collection of registered case action
 listeners so that they can forward case events to all appropriate listeners), otherwise it would be a simple web farm.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am concerned that, from what i've read, there appears to be only one Registration Server in any cluster. &amp;nbsp;Is it true that a cluster has only one registration server? &amp;nbsp;Is it possible to make this registration server redundant, or is there another
 mechanism to provide fault tolerance?&lt;/p&gt;
&lt;p&gt;I'm sure I'll have other questions as I dig in, but this is enough while I'm getting started.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;/div&gt;</description><author>ffrenzel</author><pubDate>Mon, 09 Apr 2012 19:38:19 GMT</pubDate><guid isPermaLink="false">New Post: Registration Server Redundancy 20120409073819P</guid></item><item><title>New Post: C# Mono using MPAPI</title><link>http://mpapi.codeplex.com/discussions/287832</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I cannot compile my C# program in mono using the MPAPI. The error I get is:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;Program.cs(5,7): error CS0246: The type or namespace name `MPAPI' could not be found.
    Are you missing a using directive or an assembly reference?
    Compilation failed: 1 error(s), 0 warnings&lt;/pre&gt;
Running Mono 2.0...how do I correctly include MPAPI in my compile or program so that it builds successfully?
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>xepharalon</author><pubDate>Sun, 29 Jan 2012 23:21:13 GMT</pubDate><guid isPermaLink="false">New Post: C# Mono using MPAPI 20120129112113P</guid></item><item><title>New Post: .net 4</title><link>http://mpapi.codeplex.com/discussions/278454</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hello, is this project works properly when was it build in .net 4?&lt;/p&gt;
&lt;/div&gt;</description><author>kelus</author><pubDate>Sat, 05 Nov 2011 21:26:47 GMT</pubDate><guid isPermaLink="false">New Post: .net 4 20111105092647P</guid></item><item><title>New Post: Calling methods on the MasterWorker</title><link>http://mpapi.codeplex.com/discussions/275331</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Please correct me if I missed something. Also, I am using this on Mono.&lt;/p&gt;
&lt;p&gt;The examples given don't reflect how a master worker would likely be used within a context of a larger program. The problem is, there is no way to set parameters or call methods on the MasterWorker. This makes the framework fairly useless. Consider using
 this framework as a web service... how could this be done with the current design?&lt;/p&gt;
&lt;p&gt;OpenDistributed&amp;lt;TRootWorker(...) returns the specified worker, but when I called methods on it from within Program I would get the error &amp;quot;Node.PutMessage : Cannot dispatch message&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Secondly, as far as I can tell, there is no need to launch the MasterWorker in a separate thread. This is overkill, as generally one would want to run the MasterWorker in the main thread. If not, one could always run it in a different thread manually.&lt;/p&gt;
&lt;p&gt;I was never able to diagnose the exact cause of the error, but I was able to make a new public method within the Node class which fixes the problem. This method returns the worker and adds the node to the worker. One can then call the methods from the main
 thread (such as Main() or DoThisOperation() or RunWithParamaters(paramaters)) etc...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;		&lt;span style="color:blue"&gt;public&lt;/span&gt; TMainWorker SetMainWorker&amp;lt;TMainWorker&amp;gt;(&lt;span style="color:blue"&gt;string&lt;/span&gt; registrationServerNameOrAddress, &lt;span style="color:blue"&gt;int&lt;/span&gt; registrationServerPort, &lt;span style="color:blue"&gt;int&lt;/span&gt; listenerPort)
			&lt;span style="color:blue"&gt;where&lt;/span&gt; TMainWorker : Worker
		{
			OpenAndConnectToRegistrationServer(registrationServerNameOrAddress, registrationServerPort, listenerPort);
			
			    &lt;span style="color:blue"&gt;ushort&lt;/span&gt; workerId = 0;
                &lt;span style="color:blue"&gt;while&lt;/span&gt; (_localWorkers.ContainsKey(workerId))
                {
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (workerId == &lt;span style="color:blue"&gt;ushort&lt;/span&gt;.MaxValue)
                    {
                        Log.Error(&lt;span style="color:#a31515"&gt;&amp;quot;Unable to spawn more workers. There are already {0} workers running&amp;quot;&lt;/span&gt;, _localWorkers.Count);
                        &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;null&lt;/span&gt;;
                    }
                    workerId&amp;#43;&amp;#43;;
                }
			
				TMainWorker worker = Activator.CreateInstance&amp;lt;TMainWorker&amp;gt;();
	   
			    worker.SetNode(&lt;span style="color:blue"&gt;this&lt;/span&gt;);
                worker.Id = workerId;
                
                _localWorkers.Add(workerId, worker);

                &lt;span style="color:blue"&gt;if&lt;/span&gt; (_localWorkers.Count &amp;gt;= WorkerCountWarningLimit)
                    Log.Warning(&lt;span style="color:#a31515"&gt;&amp;quot;There are now {0} workers on this node.&amp;quot;&lt;/span&gt;, _localWorkers.Count);

			
			&lt;span style="color:blue"&gt;return&lt;/span&gt; worker;
			
		}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Just add that method to Node class and call a MasterWorker as follows:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;worker = node.SetMainWorker&amp;lt;MainWorker&amp;gt;(regServerAddress, regServerPort, port);&lt;/pre&gt;
&lt;pre&gt;worker.RunStuff();&lt;/pre&gt;
&lt;pre&gt;&lt;br&gt;&lt;/pre&gt;
&lt;pre&gt;Please advise if I misunderstood something. Or have anything to add.&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;&lt;span style="font-family:Consolas,'Courier New',Courier,monospace; white-space:pre"&gt;&lt;br&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description><author>blbrodie</author><pubDate>Mon, 10 Oct 2011 15:38:22 GMT</pubDate><guid isPermaLink="false">New Post: Calling methods on the MasterWorker 20111010033822P</guid></item><item><title>New Post: log4net</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=42714</link><description>&lt;div style="line-height: normal;"&gt;Hello there:&lt;br&gt;
&lt;br&gt;
I'm planning to use this framework on my app, but I need log4net because that was I used all over my app. I will modify the sources to let me choose what log type I want to use. Then I will send you the changes. Can I make that, or there will be problems with the license of the MPAPI.&lt;br&gt;
&lt;br&gt;
Thanks.&lt;br&gt;
&lt;/div&gt;</description><author>azsaavila</author><pubDate>Fri, 19 Dec 2008 20:10:55 GMT</pubDate><guid isPermaLink="false">New Post: log4net 20081219081055P</guid></item><item><title>New Post: DistributedPrimeCalculatorApp</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32438</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Frank,&lt;/p&gt;
&lt;p&gt;That's why it's an opensource project, others can respond and help it along as well :)&lt;/p&gt;
&lt;p&gt;C.&lt;/p&gt;
&lt;/div&gt;</description><author>Caduceuscoil</author><pubDate>Wed, 30 Jul 2008 18:36:47 GMT</pubDate><guid isPermaLink="false">New Post: DistributedPrimeCalculatorApp 20080730063647P</guid></item><item><title>New Post: DistributedPrimeCalculatorApp</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32438</link><description>&lt;div style="line-height: normal;"&gt;MPAPI v. 1.1.2, which fixes the above mentioned problem, has now been released.&lt;br&gt;
&lt;br&gt;
I am sorry for the inconveniences this has brought.&lt;br&gt;
&lt;br&gt;
/Frank&lt;br&gt;
&lt;/div&gt;</description><author>fthomsen</author><pubDate>Wed, 30 Jul 2008 08:11:43 GMT</pubDate><guid isPermaLink="false">New Post: DistributedPrimeCalculatorApp 20080730081143A</guid></item><item><title>New Post: DistributedPrimeCalculatorApp</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32438</link><description>&lt;div style="line-height: normal;"&gt;Apparently I was too busy with the last release and had been testing up against an older version of the .dll without noticing it. This is rather embarassing and I do hope that you can overcome this problem. I will fix it as soon as possible myself, as well as revise my testing procedures.&lt;br&gt;
&lt;br&gt;
/Frank&lt;br&gt;
&lt;/div&gt;</description><author>fthomsen</author><pubDate>Wed, 30 Jul 2008 07:23:07 GMT</pubDate><guid isPermaLink="false">New Post: DistributedPrimeCalculatorApp 20080730072307A</guid></item><item><title>New Post: DistributedPrimeCalculatorApp</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32438</link><description>&lt;div style="line-height: normal;"&gt;MrCoder,&lt;br&gt;
&lt;br&gt;
I encountered the same problem, and I traced it down to the WorkerAddress class is not marked as serializable.&lt;br&gt;
&lt;br&gt;
Put a [Serializable] attribute on the WorkerAddress class and recompile the sample, and that should fix you up.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-size:13px"&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:13px;color:#008080"&gt;Serializable&lt;/span&gt;&lt;span style="font-size:13px"&gt;]&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:13px;color:#0000ff"&gt;public&lt;/span&gt;&lt;span style="font-size:13px"&gt; &lt;/span&gt;&lt;span style="font-size:13px;color:#0000ff"&gt;sealed&lt;/span&gt;&lt;span style="font-size:13px"&gt; &lt;/span&gt;&lt;span style="font-size:13px;color:#0000ff"&gt;class&lt;/span&gt;&lt;span style="font-size:13px"&gt; &lt;/span&gt;&lt;span style="font-size:13px;color:#008080"&gt;WorkerAddress&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
C.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description><author>Caduceuscoil</author><pubDate>Tue, 29 Jul 2008 22:48:55 GMT</pubDate><guid isPermaLink="false">New Post: DistributedPrimeCalculatorApp 20080729104855P</guid></item><item><title>New Post: HPC for workstations is wide open opportunity</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32094</link><description>&lt;div style="line-height: normal;"&gt;I didn't mean to make anyone feel bad that they can't spend time on something or other; rather, my intention was to make people feel good by enjoying the possibilities that an opportunity&amp;nbsp;might be presenting.&amp;nbsp; The glass is half-full my friend!
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Mon, 28 Jul 2008 22:18:42 GMT</pubDate><guid isPermaLink="false">New Post: HPC for workstations is wide open opportunity 20080728101842P</guid></item><item><title>New Post: DistributedPrimeCalculatorApp</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32438</link><description>&lt;div style="line-height: normal;"&gt;The DistributedPrimeCalculatorApp does not compute, and it logs an error:&lt;br&gt;
&lt;br&gt;
&amp;quot;Remote node 0 appears to be offline&amp;quot;&lt;br&gt;
&lt;br&gt;
in the master's console when&amp;nbsp;a 2-node&amp;nbsp;cluster (1 master, 1 worker) is launched on a single-CPU workstation,&amp;nbsp;in the order&lt;br&gt;
&lt;br&gt;
Registration server --&amp;gt; worker node --&amp;gt; master node&lt;br&gt;
&lt;br&gt;
Both nodes are reported as being registered OK in the Registration server console however.&amp;nbsp;&amp;nbsp;I believe&amp;nbsp;the configured IP addresses and ports are OK.&lt;br&gt;
&lt;br&gt;
The MPAPI&amp;nbsp;and RemotingLite versions being used&amp;nbsp;are the most current one as of July 28.&lt;br&gt;
&lt;br&gt;
Is there a confirmation on this same&amp;nbsp;behavior by anyone else?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thanks for reading.&lt;br&gt;
&lt;br&gt;
Geoffrey
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Mon, 28 Jul 2008 22:06:19 GMT</pubDate><guid isPermaLink="false">New Post: DistributedPrimeCalculatorApp 20080728100619P</guid></item><item><title>New Post: HPC for workstations is wide open opportunity</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32094</link><description>&lt;div style="line-height: normal;"&gt;I most certainly agree with you that there is a great oppotunity here to fill out the gap on workstations. Message passing has long been regarded as either esoteric, not worth the trouble, or something for massive parallel systems (like supercomputers). But as you say the number of cores on workstations will increase, and furthermore there are a number of systems that must run on a (compared to a supercomputer) small number of nodes. And the developer community is finally starting to realize that their software is &lt;em&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;/em&gt; scalable, and that multithreaded programming should be employed more to utilize the new multicore processors. This is where frameworks like MPAPI, and programming languages like Erlang and F#, fits like a glove.&lt;br&gt;
&lt;br&gt;
Your idea of making a standardized interface for these small-scale parallel frameworks is great. However, I don't think anyone could agree on such an interface (or programming model, whichever fits). This would demand that the different projects work more closely together - something I can't see happening right now. But hopefully my pessimism is not warranted.&lt;br&gt;
&lt;br&gt;
I am well aware that MPAPI does not have features like collective operations or cluster partitioning, but the intention was to create a framework which did not have a steep and long learning curve to figure out. But that is not to say that these features should &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; be implemented in the future.&lt;br&gt;
&lt;br&gt;
The problem with MPAPI right now is that I am the only one doing work in it - in my free time. That is not a compliant, by the way, but just a statement that MPAPI is not the only thing I am working on. I would love to give it more attention, but right now (for the next couple of months that is) it is not possible. A larger user base would certainly also induce me to do more work on it. Not that I am not grateful to those who already use it - &lt;span style="text-decoration:underline"&gt;not at all!&lt;/span&gt; Even a single user would make it worth the trouble, but such frameworks are complicated and hard work is needed.
&lt;/div&gt;</description><author>fthomsen</author><pubDate>Sun, 27 Jul 2008 10:29:42 GMT</pubDate><guid isPermaLink="false">New Post: HPC for workstations is wide open opportunity 20080727102942A</guid></item><item><title>New Post: HPC for workstations is wide open opportunity</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=32094</link><description>&lt;div style="line-height: normal;"&gt;MPAPI and some other &amp;quot;small&amp;quot; MPI-ish message passing implementations work fine on multi-way workstations as well as multi-way servers.&lt;br&gt;
&lt;br&gt;
I think it is interesting to discuss that Microsoft's MS-MPI is being designed to work on servers specifically Micrsoft Server 2008.&amp;nbsp; However Microsoft for their own reasons are not attempting to&amp;nbsp;support MS-MPI on the workstation.&lt;br&gt;
&lt;br&gt;
Well, workstations only have, what, 4 CPUs you say?&amp;nbsp; Sure, but there are a number of workstation applications that can benefit from the local parallel programming model.&amp;nbsp; There is no going back, workstations are going to have 2, 4, 8, more CPUs and this is the case today already.&amp;nbsp; And as well, applications could also participate in distributed parallel operations with some amount classical cluster servers.&lt;br&gt;
&lt;br&gt;
There is an opportunity now due to Microsoft abandoning message passing on the workstation, to make &amp;quot;the best&amp;quot; MPI for the Windows workstations.&lt;br&gt;
&lt;br&gt;
MPAPI might fit that need well, or maybe some adjustments could be made to improve this opportunity.&amp;nbsp; There are now several &amp;quot;small&amp;quot; message passing frameworks which are suitable for maximizing workstations performance, MPAPI being one of them.&amp;nbsp; MPI.NET, PureMPI.NET are possible alternatives.&amp;nbsp;&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Which MPI framework will take up the workstation opportunity that Microsoft has chosen to abandon?&lt;br&gt;
&lt;br&gt;
MPAPI does not have collective operations, but maybe this is perfectly OK on a workstation which won't have hundreds or thousands of nodes.&amp;nbsp; You can just program your message passing using singular operations since there are only a handful of processors on a local computer or a small network.&lt;br&gt;
&lt;br&gt;
Message passing suits massively parallel applications, but message passing also supports &amp;quot;slightly parallel&amp;quot; applications also.&amp;nbsp; And there are some of these applications.&lt;br&gt;
&lt;br&gt;
I think there are going to be a number of applications designed to work on workstations that could benefit from message passing parallelism.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Real time camera feeds for example is a situation that an application I am developing could definitely benefit from a dedicated processor for receiving the camera's data.&amp;nbsp; If I had two cameras my single-CPU workstation would be unable to keep up.&amp;nbsp; And add the load of analyzing the photos in real time, and saving the interesting photos to disk devices, and displaying the photos on the GUI, I definitely have a need for multiple processors on my workstation and message passing is key to making this work in my system.&amp;nbsp; Microsoft is unwilling to let people use MS-MPI on non-servers so I have to use something else on my workstation to develop parallel code which is based on the message passing paradigm.&amp;nbsp; MPAPI is filling that bill today.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
MS-MPI and MPAPI have different API designs so I am in a bit of trouble in my example application, if I choose for some reason to integrate the two systems.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
It might be very nice to have a smooth or transparent message passing API for workstations and servers when you want to scale.&amp;nbsp; It's too complicated and messy to use 2 different message passing APIs in the same application.&lt;br&gt;
&lt;br&gt;
Does anyone agree with me that there is an opportunity here for supporting multi-way workstation developers with a message passing framework to fill in the hole while Microsoft has chosen to forfeit the workstation message passing&amp;nbsp;and instead, chase increased sales of Microsoft Server 2008?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Wed, 23 Jul 2008 15:21:51 GMT</pubDate><guid isPermaLink="false">New Post: HPC for workstations is wide open opportunity 20080723032151P</guid></item><item><title>New Post: Integration with Windows Forms</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=31401</link><description>&lt;div style="line-height: normal;"&gt;Hello&lt;br&gt;
&lt;br&gt;
This will be s short post without any concrete code since I am out of the country on vacation and I only have net access for a short period.&lt;br&gt;
&lt;br&gt;
But what you wrote is one of the problems with this &amp;quot;disconnected&amp;quot; approach - there is no nice and clean way to couple the &amp;quot;ordinary&amp;quot; world (i.e. WinForms) with the MPAPI framework. What I have been thinking about is this (just an idea - I haven't tried it yet):&lt;br&gt;
&lt;br&gt;
The worker that needs to communicate some kind of state to the winforms part of the application will have to expose one or more events. When this event is fired, the winforms part of the app will look inside the worker for the state. Remember to lock vital parts of the worker with a monitor or the lock-statement!&lt;br&gt;
This should enable the winform controller to get state from the worker (or workers). Just remember that you cannot update a control from another thread. Use the Control.Invoke method on your form (for example)&lt;br&gt;
&lt;br&gt;
I hope this clarifies the problem a bit. Otherwise please write to me again and I will address it as soon as possible.&lt;br&gt;
&lt;br&gt;
Best regards.&lt;br&gt;
Frank&lt;br&gt;
&lt;/div&gt;</description><author>fthomsen</author><pubDate>Tue, 15 Jul 2008 11:08:16 GMT</pubDate><guid isPermaLink="false">New Post: Integration with Windows Forms 20080715110816A</guid></item><item><title>New Post: Integration with Windows Forms</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=31401</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hello! and thanks for your great contribution. I'm really interested in your project since I'm learning concurrent programming and I always wanted to program elegantly. And your solution is really elegant :)&lt;/p&gt;
&lt;p&gt;I used you MPAPI yesterday to simulate an airport, with the control tower and the airplanes. It was a console application and it went OK. But now my goal is to develop a small application that is able interact with Windows Forms. I thought of a Form that loads lots of images in order to add them to a ImageList as thumbnails. The image decoding of each picture is a lenghtly process and I want the user would be able to scroll throught the ListView that contains the thumbnails being added.&lt;/p&gt;
&lt;p&gt;I think it would be really useful for tasks like this one, but I don't figure out how to do it and how to communicate a Node with the main thread. Please, give me(us) some example. &lt;/p&gt;
&lt;p&gt;Your help will be appreciated!&lt;/p&gt;
&lt;p&gt;Regards.&lt;/p&gt;
&lt;/div&gt;</description><author>SuperJMN</author><pubDate>Sun, 13 Jul 2008 15:32:06 GMT</pubDate><guid isPermaLink="false">New Post: Integration with Windows Forms 20080713033206P</guid></item><item><title>New Post: have some problems and questions</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=24323</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Just to be clear:&amp;nbsp; It is really true, I am not joking:&amp;nbsp; The order in which I launched the programs originally, and the first several attempts, was followed precisely according to&amp;nbsp;the instructions:&amp;nbsp; 1-RegistrationServer, 2-Slave, 3-Master.&amp;nbsp; I can understand why the data in the screenshots I supplied may confuse some readers.&amp;nbsp;&amp;nbsp; Do not read too much into the screenshots.&amp;nbsp;&amp;nbsp;One or more of the screenshots&amp;nbsp;may be from a different later run, in which I tried the other possible orderings of master and slave for completeness after the recommended ordering failed several times (reg, sl, mas).&lt;/p&gt;
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Fri, 11 Jul 2008 20:04:17 GMT</pubDate><guid isPermaLink="false">New Post: have some problems and questions 20080711080417P</guid></item><item><title>New Post: have some problems and questions</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=24323</link><description>&lt;div style="line-height: normal;"&gt;&lt;br&gt;
&lt;div style="border-right:medium none;padding-right:0.2em;border-top:#aaa 0.1em dotted;padding-left:0.2em;padding-bottom:0.2em;margin:1em 0em 2.5em 3em;border-left:medium none;padding-top:0.2em;border-bottom:#aaa 0.1em dotted;font-style:italic"&gt;&lt;br&gt;
fthomsen wrote:&lt;br&gt;
ad 4:&lt;br&gt;
I may have been vague in the documentation regarding the sequence that the applications must be started up in. That will be changed in the next release (although at the moment I have nothing planned). The sequence is this:&lt;br&gt;
1) RegistrationServer.exe&lt;br&gt;
2) DistributedPrimeCalculatorApp.exe. Choose &amp;quot;slave&amp;quot; mode.&lt;br&gt;
3) DistributedPrimeCalculatorApp.exe. Choose &amp;quot;master&amp;quot; mode.&lt;br&gt;
That should do the trick.&lt;br&gt;
&lt;br&gt;
If you have any other problems, don't hesitate to write me.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
Hi,&lt;br&gt;
&lt;br&gt;
I am getting this &amp;quot;node 0 offline&amp;quot; error in the demo app.&amp;nbsp; What could be the problem?&amp;nbsp; It's repeatable on both of the Windows XP computers that I have access to.&amp;nbsp;&amp;nbsp; A single computer is where all software is being attempted.&amp;nbsp; Port 8000 is being used by my registration server, port 8001 is being used by my slave node, and port 8002 is desired for my master node.&amp;nbsp; I think its a good&amp;nbsp;policy to get the demos working before troubleshooting my own apps.&lt;br&gt;
&lt;br&gt;
C:\Program Files\MPAPI\MPAPI_1.1.1_example\bin&amp;gt;DistributedPrimeCalculatorApp.exe&lt;br&gt;
[m]aster or [s]lave &amp;gt; m&lt;br&gt;
This nodes port number &amp;gt; 8002&lt;br&gt;
15:19:58:565 | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Main worker online&lt;br&gt;
15:19:58:575 | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Spawning 1 workers at node 0, address 192.168.1.100&lt;br&gt;
15:19:58:615 | Error&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Node._Monitor(&lt;a href="mailto:0@1"&gt;0@1&lt;/a&gt;, &lt;a href="mailto:0@0"&gt;0@0&lt;/a&gt;) : Remote node 0 appears to be offline&lt;br&gt;
&lt;br&gt;
The above master node, is the 2nd node that was started.&amp;nbsp; There is already a slave node running (not shown).&lt;br&gt;
&lt;br&gt;
In&amp;nbsp;another&amp;nbsp;command shell, the registration server displayed some&amp;nbsp;info which seems OK.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
C:\Program Files\MPAPI\MPAPI_1.1.1_src\bin&amp;gt;RegistrationServer.exe&lt;br&gt;
15:18:29:998 | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Registration server is running.&lt;br&gt;
15:18:41:444 | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Registered node. Node Id : 0 , Address : 192.168.1.100 , Port : 8002&lt;br&gt;
15:18:54:042 | Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Registered node. Node Id : 1 , Address : 192.168.1.100 , Port : 8001&lt;br&gt;
&lt;br&gt;
The order in which I launched these programs was per the instructions:&amp;nbsp; 1-RegistrationServer, 2-Slave, 3-Master.&lt;br&gt;
&lt;br&gt;
Any suggestions to fix it?&amp;nbsp; (Again, this is 100% local execution, strictly one computer is running all demo software at this point.)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thanks for reading.&lt;br&gt;
&lt;br&gt;
Geoffrey&lt;br&gt;
&lt;br&gt;
BTW the RemotingLite demos are working good now on both of my Windows XPSP2 computers.&amp;nbsp; Uninstalling IPv6 was what solved the&amp;nbsp;problem on one of these computers.&amp;nbsp; To uninstall IPv6, unchecking the checkbox&amp;nbsp;was not enough; I had to also click an uninstall button (which I did not&amp;nbsp;notice before).&lt;br&gt;
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Fri, 11 Jul 2008 19:51:55 GMT</pubDate><guid isPermaLink="false">New Post: have some problems and questions 20080711075155P</guid></item><item><title>New Post: Problem: Could not connect to registration server. Message reads : An address incompatible with the requested protocol was used</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=30036</link><description>&lt;div style="line-height: normal;"&gt;On my friend's XP Workstation the example programs for RemotingLite both work perfectly.&amp;nbsp; Your code is good Frank.&lt;br&gt;
&lt;br&gt;
I guess that means my own XP installation on my own computer is garbage perhaps.&lt;br&gt;
&lt;br&gt;
My friend's XP has strictly IPv4 installed, as confirmed by Control Panel | Network | Local Area Network Connection 1 | TCP/IP | Properties, and also by IPCONFIG.EXE executed in a command shell.&amp;nbsp; There is no sign of any IPv6 capability on this computer.&amp;nbsp; I wish I could get mine to be this way too.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
I really dont know how IPv6 got onto my computer because I certainly dislike what it does to .NET 2.0 in my experience!!&lt;br&gt;
&lt;br&gt;
I would like to know if other people's experience also indicates problems, or not, with IPv6 and .NET 2.0 both on&amp;nbsp;the same&amp;nbsp;Windows XP box.
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Fri, 11 Jul 2008 18:06:19 GMT</pubDate><guid isPermaLink="false">New Post: Problem: Could not connect to registration server. Message reads : An address incompatible with the requested protocol was used 20080711060619P</guid></item><item><title>New Post: Problem: Could not connect to registration server. Message reads : An address incompatible with the requested protocol was used</title><link>http://www.codeplex.com/MPAPI/Thread/View.aspx?ThreadId=30036</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi,&lt;br&gt;
&lt;br&gt;
I still have the same basic connectivity errors on my Windows XP host unfortunately after the update to latest versions.&amp;nbsp; Maybe my OS needs to be wiped off and reinstalled? uggg...&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Anyway, here is what&amp;nbsp;displays when I use the new versions of your software.&amp;nbsp;&amp;nbsp; I have carefully removed the old version of all the MPAPI software and dependencies into a hidden directory to prevent confusion about versions with the new one.&amp;nbsp; I have freshly recompiled all your code from source.&lt;br&gt;
&lt;br&gt;
This is RemotingLiteExampleServer:&lt;br&gt;
&lt;br&gt;
C:\Program Files\MPAPI\RemotingLite_1.2.4_example\RemotingLiteExampleServer\bin\Debug&amp;gt;RemotingLiteExampleServer.exe&lt;br&gt;
Host is running. Press &amp;lt;ENTER&amp;gt; to terminate.&lt;br&gt;
Address is ::1&lt;br&gt;
Press &amp;lt;ENTER&amp;gt; to terminate.&lt;/p&gt;
&lt;p&gt;That's a funny address.&amp;nbsp; I think it's IPv6 unfortunately.&amp;nbsp; Vista is not my OS.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
What&amp;nbsp;address do other people&amp;nbsp;see displayed when you run this program on XP?&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
And here is what displays in the console when I run the client example program:&lt;br&gt;
&lt;br&gt;
C:\Program Files\MPAPI\RemotingLite_1.2.4_example\RemotingLiteExampleClient\bin\Debug&amp;gt;RemotingLiteExampleClient.exe&lt;br&gt;
Using our own implementation that inherits from ClientBase&amp;lt;&amp;gt;&lt;/p&gt;
&lt;p&gt;Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocati&lt;br&gt;
on. ---&amp;gt; System.Net.Sockets.SocketException: An address incompatible with the requested protocol was used&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLite.Channel..ctor(IPEndPoint endpoint)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at IServiceProxy..ctor(IPEndPoint )&lt;br&gt;
&amp;nbsp;&amp;nbsp; --- End of inner exception stack trace ---&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct&amp;amp; signature, IntPtr declaringType)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaring&lt;br&gt;
Type)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, Cultu&lt;br&gt;
reInfo culture)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLite.ProxyFactory.CreateProxy[TInterface](IPEndPoint endpoint)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLite.ClientBase`1..ctor(IPEndPoint endpoint)&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLiteExampleClient.ClientProxyImpl..ctor(IPEndPoint endpoint) in C:\Program Files\MPAPI\RemotingLite_1.2.4_&lt;br&gt;
example\RemotingLiteExampleClient\ClientProxyImpl.cs:line 26&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLiteExampleClient.ExampleUsingClientProxyImpl.Start() in C:\Program Files\MPAPI\RemotingLite_1.2.4_example&lt;br&gt;
\RemotingLiteExampleClient\ExampleUsingClientProxyImpl.cs:line 23&lt;br&gt;
&amp;nbsp;&amp;nbsp; at RemotingLiteExampleClient.Program.Main(String[] args) in C:\Program Files\MPAPI\RemotingLite_1.2.4_example\Remotin&lt;br&gt;
gLiteExampleClient\Program.cs:line 13&lt;/p&gt;
&lt;p&gt;C:\Program Files\MPAPI\RemotingLite_1.2.4_example\RemotingLiteExampleClient\bin\Debug&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;br&gt;
The &amp;nbsp;&amp;quot;incompatible address&amp;quot; error is still breaking my RemotingLite and therefore&amp;nbsp;my MPAPI installation.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
I won't even bother to try the demonstration programs for MPAPI since they depend on RemotingLite working correctly.&lt;br&gt;
&lt;br&gt;
It would be a big waste&amp;nbsp;of time to&amp;nbsp;erase my system disk and install a whole new OS.&amp;nbsp; Therefore I hope to find a way to fix my OS installation more quickly if that's really the problem here.&amp;nbsp;&amp;nbsp;It is starting to seem that&amp;nbsp;maybe it's my OS because since nobody else is reporting&amp;nbsp;these problems with RemotingLite on XP.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
With luck, I might find that there&amp;nbsp;is way to completely disable IPv6 from WindowsXP.&lt;br&gt;
&lt;br&gt;
I am going to borrow someone else's XP computer.&amp;nbsp;&amp;nbsp;Today I found someone&amp;nbsp;who can let me&amp;nbsp;try&amp;nbsp;RemotingLite on their computer.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&lt;br&gt;
If RemotingLite demos run OK on their computer then I guess I will know it's time to discard my XP Workstation installation into a garbage dumpster.&amp;nbsp; I have had problems in the past with COM services on my computer, so my working theory is that my&amp;nbsp;COM services are partially broken, and remoting is broken too as a result.&amp;nbsp; It's a shame because this computer's OS installation is only 1 year old.&amp;nbsp; I've never had a Windows&amp;nbsp;installation or registry go bad so quickly before.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Thanks for reading.&lt;br&gt;
&lt;br&gt;
Geoffrey&lt;/p&gt;
&lt;/div&gt;</description><author>mrcoder</author><pubDate>Fri, 11 Jul 2008 17:36:57 GMT</pubDate><guid isPermaLink="false">New Post: Problem: Could not connect to registration server. Message reads : An address incompatible with the requested protocol was used 20080711053657P</guid></item></channel></rss>