浏览代码

merge trunk

Samuel Thibault 11 年之前
父节点
当前提交
7426ae020a

+ 2 - 0
ChangeLog

@@ -30,6 +30,8 @@ The scheduling context release
 New features:
   * The reduction init codelet is automatically used to initialize temporary
     buffers.
+  * Traces now include a "scheduling" state, to show the overhead of the
+    scheduler.
 
 StarPU 1.1.1 (svn revision 12638)
 ==============================================

+ 1 - 0
examples/binary/binary.c

@@ -29,6 +29,7 @@ struct starpu_codelet cl =
 {
 #ifdef STARPU_USE_OPENCL
 	.opencl_funcs = {opencl_codelet, NULL},
+	.opencl_flags = {STARPU_OPENCL_ASYNC},
 #endif
 	.nbuffers = 1,
 	.modes = {STARPU_RW}

+ 3 - 1
examples/cpp/incrementer_cpp.cpp

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2009, 2010-2011, 2013  Université de Bordeaux 1
- * Copyright (C) 2010, 2011, 2012, 2013  Centre National de la Recherche Scientifique
+ * Copyright (C) 2010, 2011, 2012, 2013, 2014  Centre National de la Recherche Scientifique
  * Copyright (C) 2012 inria
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -61,9 +61,11 @@ int main(int argc, char **argv)
         cl.cpu_funcs[0] = cpu_codelet;
 #ifdef STARPU_USE_CUDA
         cl.cuda_funcs[0] = cuda_codelet;
+	cl.cuda_flags[0] = STARPU_CUDA_ASYNC;
 #endif
 #ifdef STARPU_USE_OPENCL
 	cl.opencl_funcs[0] = opencl_codelet;
+	cl.opencl_flags[0] = STARPU_OPENCL_ASYNC;
 #endif
         cl.nbuffers = 1;
         cl.modes[0] = STARPU_RW;

+ 1 - 8
examples/sched_ctx/sched_ctx_without_sched_policy.c

@@ -101,17 +101,10 @@ int main(int argc, char **argv)
 	}
 	else
 	{
-		procs1 = (int*)malloc(nprocs1*sizeof(int));
 		procs2 = (int*)malloc(nprocs2*sizeof(int));
-		procs1[0] = 0;
-		procs2[0] = 0;
+		procs2[0] = procs1[0];
 
 	}
-#else
-	procs1 = (int*)malloc(nprocs1*sizeof(int));
-	procs2 = (int*)malloc(nprocs2*sizeof(int));
-	procs1[0] = 0;
-	procs2[0] = 0;
 #endif
 
 	if (ncpus == 0) goto enodev;

+ 1 - 1
include/starpu_thread.h

@@ -203,7 +203,7 @@ int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock);
 #if defined(STARPU_SIMGRID) && defined(STARPU_SIMGRID_HAVE_XBT_BARRIER_INIT)
 typedef xbt_bar_t starpu_pthread_barrier_t;
 typedef int starpu_pthread_barrierattr_t;
-#define STARPU_PTHREAD_BARRIER_SERIAL_THREAD -1
+#define STARPU_PTHREAD_BARRIER_SERIAL_THREAD XBT_BARRIER_SERIAL_PROCESS
 #else
 typedef struct {
 	starpu_pthread_mutex_t mutex;

+ 5 - 1
src/drivers/cuda/driver_cuda.c

@@ -517,7 +517,10 @@ int _starpu_cuda_driver_run_once(struct _starpu_worker_set *worker_set)
 	unsigned memnode = worker0->memory_node;
 	struct starpu_task *tasks[worker_set->nworkers], *task;
 	struct _starpu_job *j;
-	int i, res, idle;
+	int i, res;
+
+#ifndef STARPU_SIMGRID
+	int idle;
 
 	/* First poll for completed jobs */
 	idle = 0;
@@ -556,6 +559,7 @@ int _starpu_cuda_driver_run_once(struct _starpu_worker_set *worker_set)
 		__starpu_datawizard_progress(memnode, 1, 0);
 		return 0;
 	}
+#endif /* STARPU_SIMGRID */
 
 	/* Something done, make some progress */
 	__starpu_datawizard_progress(memnode, 1, 1);

+ 3 - 1
src/drivers/opencl/driver_opencl.c

@@ -619,6 +619,7 @@ int _starpu_opencl_driver_run_once(struct _starpu_worker *args)
 	struct starpu_task *task;
 	int res;
 
+#ifndef STARPU_SIMGRID
 	task = starpu_task_get_current();
 
 	if (task)
@@ -642,6 +643,7 @@ int _starpu_opencl_driver_run_once(struct _starpu_worker *args)
 		/* Asynchronous task completed! */
 		_starpu_opencl_stop_job(_starpu_get_job_associated_to_task(task), args);
 	}
+#endif /* STARPU_SIMGRID */
 
 	__starpu_datawizard_progress(memnode, 1, 1);
 
@@ -700,7 +702,7 @@ int _starpu_opencl_driver_run_once(struct _starpu_worker *args)
 	else
 #else
 #ifdef STARPU_DEVEL
-#warning No CUDA asynchronous execution with simgrid yet.
+#warning No OpenCL asynchronous execution with simgrid yet.
 #endif
 #endif
 	/* Synchronous execution */