English 中文(简体)
Distributed Computing Framework (.NET) - Specifically for CPU Intensive operations [closed]
原标题:

I am currently researching the options that are available (both Open Source and Commercial) for developing a distributed application.

"A distributed system consists of multiple autonomous computers that communicate through a computer network." Wikipedia

The application is focused on distributing highly cpu intensive operations (as opposed to data intensive) so I m sure MapReduce solutions don t fit the bill.

Any framework that you can recommend ( + give a brief summary of any experience or comparison to other frameworks ) would be greatly appreciated.

最佳回答

MPAPI Framework - http://www.codeplex.com/MPAPI

My Thoughts

  • Seems to be one of the simpler solutions.
  • I see no evidence of failover support.
  • Is Open Source =] and is MONO Compatible YAY!
  • Uses the "RemotingLite" framework hense the mono compatibility.
  • Writing single-computer or multiple-computer (cluster) applications are as equally simple.
  • Developer s philosophy is "Performance is Paramount". So its safe to say he has optimised.
  • Continuously updated framework.
问题回答

I was one of the lead developers on Alchemi. We ve had to change course are start fresh, and the result is the Utilify Platform. Conceptually similar to Alchemi, the Utilify platform builds on the lessons learnt from Alchemi and provides a more flexible programming model to build distributed .NET applications on a Windows network.

Please visit www.utilify.com for more information. Currently, there is a free beta version available for download.

Regards, Krishna.

Appistry CloudIQ Platform http://www.appistry.com

  • Will make hundreds of machines appear as one computing resource.
  • Currently used in production at FedEx to run routing algorithms
  • Allows you to write apps in C,C++, Java and .Net
  • No single point of failure
  • Auto recover/retry of failed tasks

Alchemi ".NET Grid Computing Framework"

http://www.gridbus.org/~alchemi/publications.html

http://sourceforge.net/projects/alchemi/files/

Alchemi is a .NET grid computing framework that allows you to painlessly aggregate the computing power of intranet and Internet-connected machines into a virtual supercomputer (computational grid) and to develop applications to run on the grid.

Quick Notes:

  • Stopped being updated in 2007 version 1.0.6 (.NET 2.0).
  • Well documented formally done so.
  • Uses XML to define jobs. (It was all the rage in 2007 to use XML for everything)
  • Relatively complex compared to MPAPI, but don t take this as a big negative.
  • Would take a good bit of time to get up to speed.
  • Is Open Source =).
  • Is Extendible and can be used in conjunction with other cluster technologies via a Gridbus broker (http://www.gridbus.org)
  • Seems widely used (see publications http://www.gridbus.org/~alchemi/publications.html) =)

DryadLINQ is a Microsoft Research project to allow LINQ queries to be distributed among multiple computers, rather than just multiple cores as Parallel LINQ does.

Blog post with a brief example.

AWS SDK for .NET - http://aws.amazon.com/sdkfornet/

I think this cloud offering and .NET api may also fit the bill. Amazon offer high performance machines (see price list) which would allow for delegation a execution of highly cpu intensive opperations on a large scale.

NGrid - http://ngrid.sourceforge.net/

Overview

NGrid is an open source (LGPL) grid computing framework written in C#.

  • platform independent via the Mono project.
  • a transparent multithread programming model for grid programming.
  • a physical grid framework & some grid implementations.
  • common utilities both for grid programming or grid implementations.
  • last updated May 2008




相关问题
Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How do I compare two decimals to 10 decimal places?

I m using decimal type (.net), and I want to see if two numbers are equal. But I only want to be accurate to 10 decimal places. For example take these three numbers. I want them all to be equal. 0....

Exception practices when creating a SynchronizationContext?

I m creating an STA version of the SynchronizationContext for use in Windows Workflow 4.0. I m wondering what to do about exceptions when Post-ing callbacks. The SynchronizationContext can be used ...

Show running instance in single instance application

I am building an application with C#. I managed to turn this into a single instance application by checking if the same process is already running. Process[] pname = Process.GetProcessesByName("...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签