/[xulu]/branches/1.8-gt2-2.6/src/appl/parallel/spmd/AdvancedSPMDClientInterface.java
ViewVC logotype

Contents of /branches/1.8-gt2-2.6/src/appl/parallel/spmd/AdvancedSPMDClientInterface.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations)
Wed Feb 25 11:54:01 2009 UTC (15 years, 9 months ago) by mojays
Original Path: trunk/src/appl/parallel/spmd/AdvancedSPMDClientInterface.java
File size: 3275 byte(s)
First Commit, corresponds to Revision 1008 of Wikisquare-SVN 
1 package appl.parallel.spmd;
2
3 import java.io.PrintStream;
4
5 import appl.parallel.server.PartitionDataManager;
6 import appl.parallel.spmd.split.DataPartition;
7
8 /**
9 * This class extends the {@link SPMDClientInterface} with additional features for performance tuning. You can merge
10 * partitions in background (so that the not very cpu-intensive communication can
11 * happen during extensive calculations). <br>
12 *
13 * @author Dominik Appl
14 */
15 public interface AdvancedSPMDClientInterface extends SPMDClientInterface {
16
17 /**
18 * Merges like {@link SPMDClientController#mergePartition(int)}, but in a
19 * separate thread, so that communication does not block computation. See
20 * also {@link SyncPoint synchronization points}
21 *
22 * @param partition
23 * the partition to be merged (must be splittable)
24 * @param s
25 * a syncpoint
26 */
27 public void mergePartition(Object partition, SyncPoint s);
28
29 /**
30 * Merges like
31 * {@link SPMDClientController#mergeMultiData(MultiDataObject, int)}. But
32 * allows also {@link SyncPoint synchronization points}
33 *
34 * @param multidata
35 * the multidataobject
36 * @param idx
37 * the partition of the {@link MultiDataObject} to be merged
38 * @param s
39 * a {@link SyncPoint}
40 */
41 public void mergeMultiData(MultiDataObject multidata, int idx, SyncPoint s);
42
43 /**
44 * Same functionality as {@link #mergePartition(Object, SyncPoint)}, gives
45 * a message to the given {@link PrintStream}
46 *
47 * @param partition
48 * the partition to merge
49 * @param s
50 * a {@link SyncPoint}
51 * @param stream
52 * the message is given out to this stream (or null for no
53 * message)
54 * @param message
55 * the message to be displayed when finished (or null for no
56 * message)
57 * @see #mergeMultiData(MultiDataObject, int, SyncPoint)
58 */
59 public void mergePartition(Object partition, SyncPoint s,
60 PrintStream stream, String message);
61
62 /**
63 * Merges like
64 * {@link SPMDClientController#mergeMultiData(MultiDataObject, int)}. But
65 * allows also {@link SyncPoint synchronization points}. At the end of the
66 * merge a message is given to the provided {@link PrintStream}.
67 *
68 * @param multidata
69 * the multidataobject
70 * @param idx
71 * the partition of the {@link MultiDataObject} to be merged
72 * @param s
73 * a {@link SyncPoint}
74 * @param stream
75 * the message is given out to this stream (or null for no
76 * message)
77 * @param message
78 * the message to be diplayed when finished (or null for no
79 * message)
80 */
81 public void mergeMultiData(MultiDataObject multidata, int idx, SyncPoint s,
82 PrintStream stream, String message);
83
84 /**
85 * Waits until the Thread with the specified SyncPoint finishes. After that
86 * the Thread is removed. A second thread which synchronizes to the same
87 * Point will directly continue.
88 *
89 * @param s
90 * the {@link SyncPoint}
91 * @throws UnsupportedOperationException
92 * if the SyncPoint does not exist and has never existed
93 */
94 public void synchronizeToSyncPoint(SyncPoint s);
95
96 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26