Переглянути джерело

avoid expensive loop when not using contexts

Samuel Thibault 9 роки тому
батько
коміт
9897962e89
1 змінених файлів з 3 додано та 0 видалено
  1. 3 0
      src/core/sched_ctx.c

+ 3 - 0
src/core/sched_ctx.c

@@ -1946,6 +1946,9 @@ unsigned starpu_sched_ctx_master_get_context(int masterid)
 
 struct _starpu_sched_ctx *_starpu_sched_ctx_get_sched_ctx_for_worker_and_job(struct _starpu_worker *worker, struct _starpu_job *j)
 {
+	if (_starpu_get_nsched_ctxs() == 1)
+		return _starpu_get_sched_ctx_struct(0);
+
 	struct _starpu_sched_ctx_elt *e = NULL;
 	struct _starpu_sched_ctx_list_iterator list_it;
 	struct _starpu_sched_ctx *sched_ctx = NULL;