1 |
mojays |
2 |
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 |
|
|
} |