aboutsummaryrefslogtreecommitdiffstats
path: root/native/include
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-02-20 12:39:01 -0500
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-02-20 12:39:01 -0500
commitb12d172d6599d7578bc811a36d939d89d415f636 (patch)
tree85a5ee32d0f7e03dde932013dadfae271fdd1604 /native/include
parentb99084aaaf78b4e87ca41b310121b87630239377 (diff)
Add OMLP k-exclusion blocking bounds
Diffstat (limited to 'native/include')
-rw-r--r--native/include/sharedres.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/native/include/sharedres.h b/native/include/sharedres.h
index 2df9a08..a2e34fd 100644
--- a/native/include/sharedres.h
+++ b/native/include/sharedres.h
@@ -202,6 +202,30 @@ public:
202 202
203}; 203};
204 204
205class ReplicaInfo
206{
207private:
208 std::vector<unsigned int> num_replicas;
209
210public:
211 void set_replicas(unsigned int res_id, unsigned int replicas)
212 {
213 assert(replicas >= 1);
214
215 while (num_replicas.size() <= res_id)
216 num_replicas.push_back(1); // default: not replicated
217
218 num_replicas[res_id] = replicas;
219 }
220
221 const unsigned int operator[](unsigned int res_id) const
222 {
223 if (num_replicas.size() <= res_id)
224 return 1; // default: not replicated
225 else
226 return num_replicas[res_id];
227 }
228};
205 229
206struct Interference 230struct Interference
207{ 231{
@@ -391,6 +415,11 @@ BlockingBounds* clustered_rw_omlp_bounds(const ResourceSharingInfo& info,
391 unsigned int procs_per_cluster, 415 unsigned int procs_per_cluster,
392 int dedicated_irq = NO_CPU); 416 int dedicated_irq = NO_CPU);
393 417
418BlockingBounds* clustered_kx_omlp_bounds(const ResourceSharingInfo& info,
419 const ReplicaInfo& replicaInfo,
420 unsigned int procs_per_cluster,
421 int dedicated_irq);
422
394BlockingBounds* part_omlp_bounds(const ResourceSharingInfo& info); 423BlockingBounds* part_omlp_bounds(const ResourceSharingInfo& info);
395 424
396 425