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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 47 - (hide annotations)
Mon Aug 31 14:23:19 2009 UTC (15 years, 3 months ago) by mojays
File size: 3275 byte(s)
Branch 1.8-gt2-2.6 (from rev 45) for geotools 2.6 migration
1 mojays 2 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