Skip to content, Skip to search

Changes

FijiArchipelago

355 bytes removed, 13:38, 28 January 2013
Programmers
=== Programmers ===
FijiArchipelago exports implements [httpshttp://githubdocs.oracle.com/fiji/fiji/blobjavase/master6/src-pluginsdocs/Fiji_Archipelago/src/mainapi/java/archipelagoutil/computeconcurrent/ProcessManagerExecutorService.java ProcessManagershtml ExecutorService] by serialization over a network Socket to the client computers. A ProcessManager is created from Unlike a [https://github.com/fiji/fiji/blob/master/src-plugins/Fiji_Archipelago/src/main/java/archipelago/data/DataChunk.java DataChunk]typical ExecutorService, [https://github.com/fiji/fiji/blob/master/src-plugins/Fiji_Archipelago/src/main/java/archipelago/compute/ChunkProcessor.java ChunkProcessor], and [https://github.com/fiji/fiji/blob/master/src-plugins/Fiji_Archipelago/src/main/java/archipelago/compute/ProcessListener.java ProcessListener].* DataChunk - contains serializable data, a reference any Callable or Runnable submitted to a unique index, and a mark. Suppose two DataChunks chunkA and chunkB share the same index, but chunkA has mark 0 and chunkB mark 1. This indicates that chunkB is the result of running a ProcessManager Cluster will be exported over chunkA.* ChunkProcessor - a serializable object that does the work of processing one DataChunk into another.* ProcessListener - this need not be serializable, as it is not sent network to the client node. The processFinished method is called when the results of running the ProcessManager are returned to the local a remote machine.
Once To make this work, any objects submitted to a Cluster are Serialized and transmitted to a ProcessManager remote instance of Fiji. The returned result is createdSerialized remotely, then retrieved by the local, it may be or root node. Any submitted Callable or Runnable must implement Serializable. Failure to do so will result in a NotSerializableException at runtime. A consequence of Serialization is that the cluster using Clusterdeep equality of objects is not preserved.queueJob()In other words, or as a collection using ClusterCallable that is designed to return an object that has been instantiated prior to submission will effectively return a clone.queueJobs()
Currently, only one Cluster may be operated as a server at a time. This instance is referenced by Cluster.getCluster(). Cluster.activeCluster() indicates whether there is an active Cluster already.
An example may be found in [https://github.com/fiji/fiji/blob/master/src-plugins/Fiji_Archipelago/src/main/java/archipelago/example/Cluster_SIFT.java#L71 Cluster_SIFT]. An example that demonstrates the breakage of deep equality may be found in [https://github.com/fiji/fiji/blob/master/src-plugins/Fiji_Archipelago/src/main/java/archipelago/example/Equality_Example.javaEquality_Example]
===== Planned Features =====
Emailconfirmed, incoming, uploaders
48
edits