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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26