
Signature
digipede - Many legs make light work.
Grid computing for the real world.
http://www.digipede.net
http://krgreenlee.blogspot.net
> You can continue to add hardware to your web farms, but
> for some companies that isn’t an option. The other thing to consider is how
> many machines you really need; you certainly want to have enough processing
> power to accommodate peak times, but those machines may be idle far more than
> you want them to be. A viable solution to this problem is a compute grid.
So basically you're saying the advantage of a computer grid is that it
takes advantage of spare processing power you already have (on existing
workstations in the organization) which can avoid the need to purchase
additional hardware and server OS licenses as is the case with web farms).
I guess that might work for the middle tier (functional layer) of the
web site or web application - I can see you might run into difficulty
trying to have your grid handle requests for standard aspx pages though
(since you've got the AppData folder and web.config files etc. that
participate in the rendering of these pages)... which probably answers
my question - a grid is a viable (and sometimes preferable) alternative
for scaling out the middle tier whereas a web farm is pretty much the
only way of scaling out the UI tier in the solution... As for the
databases, I guess that's another technology again (SANs etc.).
> We have several customers who have put a compute grid behind their web
> servers to improve performance. For example, one of our customers is an
[quoted text clipped - 5 lines]
> in the server room) and move the PDF creation there. Read the case study
> because it explains it much better than I am.
That's cool - good to see a real world example. Looks like the grids
could certainly work well in some situations. Most of the apps I'm
working on are fairly database intensive so the bottleneck would
typically be the databases sitting behind the middle tier - there's very
little work that the middle tier could farm out to machines on a grid
since all of these machines would ultimately need to make request to the
bottleneck/databases.
> computing talks about these long running tasks. But parallelizable work is
> parallelizable work, in my mind a short running task is usually best suited
> for a thread, unless you are expecting to get a lot of them.
I guess - although distributing tasks/work over machines in a grid no
doubt comes with some overhead - and I'm guessing there would be more
overhead involved when the tasks are many and small - in the same way
that there is more overhead when making 10 small requests for 10
datasets over a network vs. making one large request for all 10
datasets... the one request incurs less overhead (which is why n-tier
guys try to minimize round trips to the server). That was kind of what
made me think maybe grids were more appropriate for long running tasks.
> building a concurrent system you need to do performance tests. As I see it
> .NET developers currently have two concurrency tools at their disposal:
> threads and grid objects.
or web farms ;-)
> I hope that answers your questions and if I missed something please let me
> know...it’s after 2am right now. :-)
No worries, thanks for your time.
Best Regards,
James Crosswell
Microforge.net LLC
http://www.microforge.net