javacluster-computingdistributed-computinggrid-computing

What should I use for this project? Cluster, grid or distributed computing?


I have a project where I am taking individual tasks that are independent of each other written in Java and executing the tasks on computers across a LAN to solve the tasks efficiently. If the tasks are thread safe they will be executed as threads, otherwise as new JVMs (determined on the original computer) and the results will be sent back to the original computer to be outputted.

I have googled around the subject but keep getting confused between grid, cluster and distributed computing. In the scenario described above, which of these should I use if any?

It should be noted the computers on the LAN are running Windows 7 meaning whatever solution I do find, it needs to run on Windows (some solutions might be *nix only).


Solution

  • I understand how it makes you get confused between the three words you mentioned but they cannot be compared with each other, let me explain why;

    WIKI:

    Cluster: A computer cluster consists of a set of loosely or tightly connected computers that work together so that, in many respects, they can be viewed as a single system

    Grid: Grid computing is the collection of computer resources from multiple locations to reach a common goal.

    Distributed Computing: Distributed computing is a field of computer science that studies distributed systems. A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages.

    1. So basically Clusters is (at a network or software layer) many computers acting as one.
    2. Grid(computation) uses a cluster to perform a task.
    3. Distributed computing is one way to perform tasks.

    Now what you need is either to use Hadoop or Apache Spark for such tasks or use any in-memory DataGrid for such a purpose but it might be an overkill unless you can tell what exactly are you doing.