Javascript Distributed Computing?

First that comes to my mind is security. Almost all distributed protocols that I know have encryption, thats why they prevent security risks. Although this subject is not so innovative igvita.com/2009/03/03/collaborative-map-... Also Wuala is a distributed system, that is implemented using java applet.

First that comes to my mind is security. Almost all distributed protocols that I know have encryption, thats why they prevent security risks. Although this subject is not so innovative.. igvita.com/2009/03/03/collaborative-map-... Also Wuala is a distributed system, that is implemented using java applet.

There is something to be said for 'user rights' here. It sounds like you're describing a situation where the webmaster for Foo. Com includes the script for, say, Folding@Home on their site.As a result, all visitors to Foo.

Com have some fraction of their CPU "donated" to Folding@Home, until they navigate away from Foo.com. Without some sort of disclaimer or opt-in, I would consider that a form of malware and avoid vising any site that did that. That's not to say you couldn't build a system that asked for confirmation or permission, but there is definite potential for abuse.

I think that Web Workers will soon be used to create distributed computing frameworks, there are some early attempts at this concept. Non-blocking code execution could have been done before using setTimeout, but it made a little sense as most browser vendors focused on optimizing their JS engines just recently. Now we have faster code execution and new features, so running some tasks unconsciously in background as we browse the web is probably just a matter of months ;).

I think the no.1 problem is javascript inefficiency at computing. It wouldn't be just worth it, because an application in pure c/c++ would be 100 times faster.

Probably far more. Which means getting 10,000 people to install a c++ based distributed computing client would yield at least the same amount of work as getting a million people to participate in the JS-based one. – Rex M Aug 10 '09 at 23:53 C++ is good for its speed, and JS is good because it can be used while browsing the web without the user noticing... So therefore the perfect solution is to use Javascript for a drive-by download of a C++ application!

– Nick Lewis Aug 10 '09 at 23:58 But the thing is everyone would probably participate in one website or another, depending on the website the number of JS clients could easily reach billions, not millions. – Alix Axel Aug 12 '09 at 6:14.

I have pondered this myself in the context of item recommendation. First, there is no problem with speed! JIT compiled javascript can be as fast as unoptimized C, especially for numeric code.

The bigger problem is that running javascript in the background will slow down the browser and therefore users may not like your website because it runs slowly. There is obviously an issue of security, how can you verify the results? And privacy, can you ensure sensitive data isn't compromised?

On top of this, it's quite a difficult thing to do. Can the number of visits you receive justify the effort that you'll have to put into it? It would be better if you could run the code transparently on either the server or client-side.

Compiling other languages to javascript can help here. In summary, the reason that it's not widespread is because developers' time is more valuable than server time. The risk of losing user data and the inconvenience to users outweighs the potential gains.

A comment would be nice. – dan_waterworth Sep 5 at 12:09.

I know of pluraprocessing. Com doing similar thing, not sure if exactly javascript, but they run Java through browser and runs totally in-memory with strict security. They have 50,000 computers grid on which they have successfully run applications even like web-crawling (80legs).

I think we can verify results on some kind of problem. Let's say we have n number of items and need to sort it. We'll give it to worker-1, worker-1 will give us the result.

We can verify it O(n) time. Please consider that it take at least O(n*log(n)) time to produce the result. Additionally we should consider how large is n items?(concern about network speed) Another example, f(x)=12345, and function is given.

Purpose is to find value of x. We can test it by replace x with some worker's result. I think some problems that are not verifiable are difficult to give to someone.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions