1 |
package appl.parallel.server; |
2 |
|
3 |
import java.rmi.RemoteException; |
4 |
|
5 |
import appl.parallel.ComputingResource; |
6 |
import appl.parallel.spmd.SPMDClientController; |
7 |
import appl.parallel.spmd.split.SplitMap; |
8 |
|
9 |
/** |
10 |
* The resources participating in a SPMD computation need to implement this |
11 |
* interface. |
12 |
* |
13 |
* @author Dominik Appl |
14 |
*/ |
15 |
public interface SPMDResource extends ComputingResource { |
16 |
|
17 |
/** |
18 |
* Executes the given Task. |
19 |
* |
20 |
* @param SPMDTaskName |
21 |
* name of the taskclass to be executed |
22 |
* @param referenceID |
23 |
* the ID of the Grid which should be the reference resource |
24 |
* @param parameters |
25 |
* parameters for the given Task |
26 |
* @return an object array containing the results for possibly multiple |
27 |
* executions (when using multithreading with multi-core cpus) |
28 |
* @throws RemoteException |
29 |
* if the connection fails |
30 |
* @see SPMDClientController#setReferenceResource(Object) |
31 |
*/ |
32 |
|
33 |
public Object[] runSPMDModelTask(String SPMDTaskName, int referenceID, |
34 |
Object... parameters) throws RemoteException; |
35 |
|
36 |
/** |
37 |
* @param IPs |
38 |
* the IP addresses of all other participating servers. They MUST |
39 |
* have the same index as their according partition in the |
40 |
* {@link SplitMap} has. |
41 |
* @return creates a new {@link PartitionDataServer} on this resource and |
42 |
* returns it |
43 |
*/ |
44 |
public PartitionDataServer createDataServer(String[] IPs) |
45 |
throws RemoteException; |
46 |
|
47 |
} |