Просмотр исходного кода

fixes based on coverity reports

Nathalie Furmento лет назад: 9
Родитель
Сommit
a53cd8edeb
47 измененных файлов с 155 добавлено и 126 удалено
  1. 2 1
      examples/axpy/axpy_opencl.c
  2. 2 1
      examples/basic_examples/multiformat_opencl.c
  3. 2 2
      examples/basic_examples/vector_scal_opencl.c
  4. 3 2
      examples/filters/custom_mf/custom_interface.c
  5. 2 2
      examples/filters/fblock_opencl.c
  6. 31 31
      examples/heat/dw_factolu_kernels.c
  7. 2 1
      examples/interface/complex_kernels_opencl.c
  8. 2 2
      examples/mandelbrot/mandelbrot.c
  9. 2 2
      examples/matvecmult/matvecmult.c
  10. 4 3
      examples/pi/pi_redux.c
  11. 3 2
      examples/reductions/dot_product.c
  12. 2 2
      examples/spmv/spmv_kernels.c
  13. 2 1
      examples/stencil/life_opencl.c
  14. 2 1
      examples/stencil/shadow_opencl.c
  15. 11 11
      examples/stencil/stencil-kernels.c
  16. 1 1
      socl/src/cl_buildprogram.c
  17. 4 3
      socl/src/cl_createkernel.c
  18. 2 1
      socl/src/cl_createprogramwithsource.c
  19. 2 1
      socl/src/cl_enqueuecopybuffer.c
  20. 2 1
      socl/src/cl_enqueuendrangekernel.c
  21. 2 1
      socl/src/cl_enqueuereadbuffer.c
  22. 2 1
      socl/src/cl_enqueuewritebuffer.c
  23. 2 1
      socl/src/util.c
  24. 1 1
      starpufft/src/Makefile.am
  25. 10 10
      starpufft/src/starpufftx1d.c
  26. 10 10
      starpufft/src/starpufftx2d.c
  27. 2 1
      tests/datawizard/acquire_release_opencl.c
  28. 2 1
      tests/datawizard/handle_to_pointer.c
  29. 3 3
      tests/datawizard/interfaces/bcsr/bcsr_opencl.c
  30. 2 1
      tests/datawizard/interfaces/block/block_opencl.c
  31. 2 1
      tests/datawizard/interfaces/coo/coo_opencl.c
  32. 2 1
      tests/datawizard/interfaces/csr/csr_opencl.c
  33. 2 1
      tests/datawizard/interfaces/matrix/matrix_opencl.c
  34. 2 2
      tests/datawizard/interfaces/multiformat/multiformat_conversion_codelets_opencl.c
  35. 2 1
      tests/datawizard/interfaces/multiformat/multiformat_opencl.c
  36. 2 1
      tests/datawizard/interfaces/variable/variable_opencl.c
  37. 2 1
      tests/datawizard/interfaces/vector/test_vector_opencl.c
  38. 3 2
      tests/datawizard/lazy_allocation.c
  39. 2 2
      tests/datawizard/manual_reduction.c
  40. 2 1
      tests/datawizard/opencl_codelet_unsigned_inc.c
  41. 2 1
      tests/datawizard/scal.c
  42. 2 1
      tests/datawizard/scratch_opencl.c
  43. 3 3
      tests/datawizard/sync_and_notify_data_opencl.c
  44. 2 2
      tests/datawizard/write_only_tmp_buffer.c
  45. 2 2
      tests/microbenchs/sync_tasks_overhead.c
  46. 2 2
      tests/microbenchs/tasks_size_overhead.c
  47. 2 1
      tests/perfmodels/opencl_memset.c

+ 2 - 1
examples/axpy/axpy_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -34,7 +35,7 @@ void axpy_opencl(void *buffers[], void *_args)
 	cl_mem x = (cl_mem) STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 	cl_mem y = (cl_mem) STARPU_VECTOR_GET_DEV_HANDLE(buffers[1]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "_axpy_opencl", devid);

+ 2 - 1
examples/basic_examples/multiformat_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -30,7 +31,7 @@ void multiformat_scal_opencl_func(void *buffers[], void *args)
 	unsigned n = STARPU_MULTIFORMAT_GET_NX(buffers[0]);
 	cl_mem val = (cl_mem)STARPU_MULTIFORMAT_GET_OPENCL_PTR(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel,

+ 2 - 2
examples/basic_examples/vector_scal_opencl.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2012, 2013, 2016  CNRS
  * Copyright (C) 2010  INRIA
  * Copyright (C) 2011, 2014  Université de Bordeaux
  *
@@ -38,7 +38,7 @@ void scal_opencl_func(void *buffers[], void *_args)
 	/* OpenCL copy of the vector pointer */
 	cl_mem val = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "vector_mult_opencl", devid);

+ 3 - 2
examples/filters/custom_mf/custom_interface.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -413,7 +414,7 @@ static int copy_ram_to_opencl_async(void *src_interface, unsigned src_node,
 	 */
 	cl_context context;
 	cl_command_queue queue;
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_queue(devid, &queue);
 	starpu_opencl_get_context(devid, &context);
@@ -456,7 +457,7 @@ static int copy_opencl_to_ram_async(void *src_interface, unsigned src_node,
 	 */
 	cl_context context;
 	cl_command_queue queue;
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_queue(devid, &queue);
 	starpu_opencl_get_context(devid, &context);

+ 2 - 2
examples/filters/fblock_opencl.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  * Copyright (C) 2011, 2014-2015  Université de Bordeaux
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -46,7 +46,7 @@ void opencl_func(void *buffers[], void *cl_arg)
         unsigned ldy = STARPU_BLOCK_GET_LDY(buffers[0]);
         unsigned ldz = STARPU_BLOCK_GET_LDZ(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "fblock_opencl", devid);

+ 31 - 31
examples/heat/dw_factolu_kernels.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2009, 2010-2012, 2014-2015  Université de Bordeaux
- * Copyright (C) 2010, 2011  CNRS
+ * Copyright (C) 2010, 2011, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +41,7 @@ void display_stat_heat(void)
 	unsigned worker;
 	for (worker = 0; worker < nworkers; worker++)
 	{
-		count_total_per_worker[worker] = count_11_per_worker[worker] 
+		count_total_per_worker[worker] = count_11_per_worker[worker]
 					+ count_12_per_worker[worker]
 					+ count_21_per_worker[worker]
 					+ count_22_per_worker[worker];
@@ -59,7 +59,7 @@ void display_stat_heat(void)
 		{
 			char name[32];
 			starpu_worker_get_name(worker, name, 32);
-			
+
 			FPRINTF(stderr, "\t\t%s -> %u / %u (%2.2f %%)\n", name, count_11_per_worker[worker], count_11_total, (100.0*count_11_per_worker[worker])/count_11_total);
 		}
 	}
@@ -71,12 +71,12 @@ void display_stat_heat(void)
 		{
 			char name[32];
 			starpu_worker_get_name(worker, name, 32);
-			
+
 			FPRINTF(stderr, "\t\t%s -> %u / %u (%2.2f %%)\n", name, count_12_per_worker[worker], count_12_total, (100.0*count_12_per_worker[worker])/count_12_total);
 		}
 	}
-	
-	
+
+
 	FPRINTF(stderr, "\t21 (TRSM)\n");
 	for (worker = 0; worker < nworkers; worker++)
 	{
@@ -84,11 +84,11 @@ void display_stat_heat(void)
 		{
 			char name[32];
 			starpu_worker_get_name(worker, name, 32);
-			
+
 			FPRINTF(stderr, "\t\t%s -> %u / %u (%2.2f %%)\n", name, count_21_per_worker[worker], count_21_total, (100.0*count_21_per_worker[worker])/count_21_total);
 		}
 	}
-	
+
 	FPRINTF(stderr, "\t22 (SGEMM)\n");
 	for (worker = 0; worker < nworkers; worker++)
 	{
@@ -96,14 +96,14 @@ void display_stat_heat(void)
 		{
 			char name[32];
 			starpu_worker_get_name(worker, name, 32);
-			
+
 			FPRINTF(stderr, "\t\t%s -> %u / %u (%2.2f %%)\n", name, count_22_per_worker[worker], count_22_total, (100.0*count_22_per_worker[worker])/count_22_total);
 		}
 	}
 }
 
 /*
- *   U22 
+ *   U22
  */
 
 static inline void dw_common_cpu_codelet_update_u22(void *descr[], int s, STARPU_ATTRIBUTE_UNUSED void *_args)
@@ -127,7 +127,7 @@ static inline void dw_common_cpu_codelet_update_u22(void *descr[], int s, STARPU
 	switch (s)
 	{
 		case 0:
-			STARPU_SGEMM("N", "N",	dy, dx, dz, 
+			STARPU_SGEMM("N", "N",	dy, dx, dz,
 				-1.0f, left, ld21, right, ld12,
 					     1.0f, center, ld22);
 			break;
@@ -152,7 +152,7 @@ void dw_cpu_codelet_update_u22(void *descr[], void *_args)
 {
 	dw_common_cpu_codelet_update_u22(descr, 0, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_22_per_worker[id]++;
 }
 
@@ -161,7 +161,7 @@ void dw_cublas_codelet_update_u22(void *descr[], void *_args)
 {
 	dw_common_cpu_codelet_update_u22(descr, 1, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_22_per_worker[id]++;
 }
 #endif /* STARPU_USE_CUDA */
@@ -175,7 +175,7 @@ static inline void dw_common_codelet_update_u12(void *descr[], int s, STARPU_ATT
 	float *sub11;
 	float *sub12;
 
-	sub11 = (float *)STARPU_MATRIX_GET_PTR(descr[0]);	
+	sub11 = (float *)STARPU_MATRIX_GET_PTR(descr[0]);
 	sub12 = (float *)STARPU_MATRIX_GET_PTR(descr[1]);
 
 	unsigned ld11 = STARPU_MATRIX_GET_LD(descr[0]);
@@ -183,7 +183,7 @@ static inline void dw_common_codelet_update_u12(void *descr[], int s, STARPU_ATT
 
 	unsigned nx12 = STARPU_MATRIX_GET_NX(descr[1]);
 	unsigned ny12 = STARPU_MATRIX_GET_NY(descr[1]);
-	
+
 #ifdef STARPU_USE_CUDA
 	cublasStatus status;
 #endif
@@ -215,7 +215,7 @@ void dw_cpu_codelet_update_u12(void *descr[], void *_args)
 {
 	dw_common_codelet_update_u12(descr, 0, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_12_per_worker[id]++;
 }
 
@@ -224,12 +224,12 @@ void dw_cublas_codelet_update_u12(void *descr[], void *_args)
 {
 	 dw_common_codelet_update_u12(descr, 1, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_12_per_worker[id]++;
 }
 #endif /* STARPU_USE_CUDA */
 
-/* 
+/*
  * U21
  */
 
@@ -246,7 +246,7 @@ static inline void dw_common_codelet_update_u21(void *descr[], int s, STARPU_ATT
 
 	unsigned nx21 = STARPU_MATRIX_GET_NX(descr[1]);
 	unsigned ny21 = STARPU_MATRIX_GET_NY(descr[1]);
-	
+
 #ifdef STARPU_USE_CUDA
 	cublasStatus status;
 #endif
@@ -275,7 +275,7 @@ void dw_cpu_codelet_update_u21(void *descr[], void *_args)
 {
 	dw_common_codelet_update_u21(descr, 0, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_21_per_worker[id]++;
 }
 
@@ -284,10 +284,10 @@ void dw_cublas_codelet_update_u21(void *descr[], void *_args)
 {
 	dw_common_codelet_update_u21(descr, 1, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_21_per_worker[id]++;
 }
-#endif 
+#endif
 
 /*
  *	U11
@@ -304,15 +304,15 @@ static inline void debug_print(float *tab, unsigned ld, unsigned n)
 		}
 		FPRINTF(stderr, "\n");
 	}
-	
+
 	FPRINTF(stderr, "\n");
 }
 
-static inline void dw_common_codelet_update_u11(void *descr[], int s, STARPU_ATTRIBUTE_UNUSED void *_args) 
+static inline void dw_common_codelet_update_u11(void *descr[], int s, STARPU_ATTRIBUTE_UNUSED void *_args)
 {
 	float *sub11;
 
-	sub11 = (float *)STARPU_MATRIX_GET_PTR(descr[0]); 
+	sub11 = (float *)STARPU_MATRIX_GET_PTR(descr[0]);
 
 	unsigned long nx = STARPU_MATRIX_GET_NX(descr[0]);
 	unsigned long ld = STARPU_MATRIX_GET_LD(descr[0]);
@@ -327,9 +327,9 @@ static inline void dw_common_codelet_update_u11(void *descr[], int s, STARPU_ATT
 				float pivot;
 				pivot = sub11[z+z*ld];
 				STARPU_ASSERT(pivot != 0.0f);
-		
+
 				STARPU_SSCAL(nx - z - 1, (1.0f/pivot), &sub11[z+(z+1)*ld], ld);
-		
+
 				STARPU_SGER(nx - z - 1, nx - z - 1, -1.0f,
 						&sub11[z+(z+1)*ld], ld,
 						&sub11[(z+1)+z*ld], 1,
@@ -345,9 +345,9 @@ static inline void dw_common_codelet_update_u11(void *descr[], int s, STARPU_ATT
 				cudaStreamSynchronize(starpu_cuda_get_local_stream());
 
 				STARPU_ASSERT(pivot != 0.0f);
-				
+
 				cublasSscal(nx - z - 1, 1.0f/pivot, &sub11[z+(z+1)*ld], ld);
-				
+
 				cublasSger(nx - z - 1, nx - z - 1, -1.0f,
 								&sub11[z+(z+1)*ld], ld,
 								&sub11[(z+1)+z*ld], 1,
@@ -369,7 +369,7 @@ void dw_cpu_codelet_update_u11(void *descr[], void *_args)
 {
 	dw_common_codelet_update_u11(descr, 0, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_11_per_worker[id]++;
 }
 
@@ -378,7 +378,7 @@ void dw_cublas_codelet_update_u11(void *descr[], void *_args)
 {
 	dw_common_codelet_update_u11(descr, 1, _args);
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	count_11_per_worker[id]++;
 }
 #endif /* STARPU_USE_CUDA */

+ 2 - 1
examples/interface/complex_kernels_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -37,7 +38,7 @@ void copy_complex_codelet_opencl(void *buffers[], void *_args)
 	cl_mem o_real      = (cl_mem) STARPU_COMPLEX_GET_REAL(buffers[1]);
 	cl_mem o_imaginary = (cl_mem) STARPU_COMPLEX_GET_IMAGINARY(buffers[1]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "complex_copy_opencl", devid);

+ 2 - 2
examples/mandelbrot/mandelbrot.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010, 2011, 2014-2015  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -258,7 +258,7 @@ static void compute_block_opencl(void *descr[], void *cl_arg)
 	cl_command_queue queue;
 	cl_event event;
 
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 
 	starpu_opencl_load_kernel(&kernel, &queue, &opencl_programs, "mandelbrot_kernel", devid);

+ 2 - 2
examples/matvecmult/matvecmult.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010, 2011-2012, 2014-2015  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013, 2014  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2014, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -34,7 +34,7 @@ void opencl_codelet(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 	int ny = STARPU_MATRIX_GET_NY(descr[0]);
 	cl_event event;
 
-        id = starpu_worker_get_id();
+        id = starpu_worker_get_id_check();
         devid = starpu_worker_get_devid(id);
 
         err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_code, "matVecMult", devid);

+ 4 - 3
examples/pi/pi_redux.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2015  Université de Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -70,7 +71,7 @@ static void init_rng(void *arg STARPU_ATTRIBUTE_UNUSED)
 	curandStatus_t res;
 #endif
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	switch (starpu_worker_get_type(workerid))
 	{
@@ -152,7 +153,7 @@ static void parse_args(int argc, char **argv)
 
 void pi_func_cpu(void *descr[], void *cl_arg STARPU_ATTRIBUTE_UNUSED)
 {
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	unsigned short *worker_xsub;
 	worker_xsub = &xsubi[PADDING*workerid];
@@ -191,7 +192,7 @@ static void pi_func_cuda(void *descr[], void *cl_arg STARPU_ATTRIBUTE_UNUSED)
 {
 	curandStatus_t res;
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	/* CURAND is a bit silly: it assumes that any error is fatal. Calling
 	 * cudaGetLastError resets the last error value. */

+ 3 - 2
examples/reductions/dot_product.c

@@ -2,6 +2,7 @@
  *
  * Copyright (C) 2010-2015  Université de Bordeaux
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -166,7 +167,7 @@ void redux_opencl_func(void *buffers[], void *args)
 	cl_mem dota = (cl_mem) STARPU_VARIABLE_GET_PTR(buffers[0]);
 	cl_mem dotb = (cl_mem) STARPU_VARIABLE_GET_PTR(buffers[1]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &_opencl_program, "_redux_opencl", devid);
@@ -280,7 +281,7 @@ void dot_opencl_func(void *buffers[], void *args)
 	cl_mem dot = (cl_mem) STARPU_VARIABLE_GET_PTR(buffers[2]);
 	unsigned n = STARPU_VECTOR_GET_NX(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &_opencl_program, "_dot_opencl", devid);

+ 2 - 2
examples/spmv/spmv_kernels.c

@@ -2,7 +2,7 @@
  *
  * Copyright (C) 2009, 2010, 2011, 2014-2015  Université de Bordeaux
  * Copyright (C) 2010  Mehdi Juhoor <mjuhoor@gmail.com>
- * Copyright (C) 2010, 2011, 2012  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -43,7 +43,7 @@ void spmv_kernel_opencl(void *descr[], void *args)
 	cl_mem vecout = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(descr[2]);
 	int nx_out = (int)STARPU_VECTOR_GET_NX(descr[2]);
 
-        id = starpu_worker_get_id();
+        id = starpu_worker_get_id_check();
         devid = starpu_worker_get_devid(id);
 
         err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_codelet, "spmv", devid);

+ 2 - 1
examples/stencil/life_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2011, 2013-2014  Université de Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -91,7 +92,7 @@ opencl_life_update_host(int bz, const TYPE *old, TYPE *newp, int nx, int ny, int
 #endif
 
   int devid,id;
-  id = starpu_worker_get_id();
+  id = starpu_worker_get_id_check();
   devid = starpu_worker_get_devid(id);
 
   cl_kernel kernel;

+ 2 - 1
examples/stencil/shadow_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2011, 2013-2014  Université de Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -88,7 +89,7 @@ opencl_shadow_host(int bz, TYPE *ptr, int nx, int ny, int nz, int ldy, int ldz,
 #endif
 
         int devid,id;
-        id = starpu_worker_get_id();
+        id = starpu_worker_get_id_check();
         devid = starpu_worker_get_devid(id);
 
         cl_kernel kernel;

+ 11 - 11
examples/stencil/stencil-kernels.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2015  Université de Bordeaux
- * Copyright (C) 2012, 2013  CNRS
+ * Copyright (C) 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -106,7 +106,7 @@ unsigned update_per_worker[STARPU_NMAXWORKERS];
 static void record_who_runs_what(struct block_description *block)
 {
 	double now, now2, diff, delta = get_ticks() * 1000;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	now = starpu_timing_now();
 	now2 = now - start;
@@ -183,7 +183,7 @@ static void load_subblock_from_buffer_cuda(void *_block,
 static void update_func_cuda(void *descr[], void *arg)
 {
 	struct block_description *block = arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	DEBUG( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
 	if (block->bz == 0)
 		FPRINTF(stderr,"!!! DO update_func_cuda z %d CUDA%d !!!\n", block->bz, workerid);
@@ -271,7 +271,7 @@ static void load_subblock_from_buffer_opencl(struct starpu_block_interface *bloc
 static void update_func_opencl(void *descr[], void *arg)
 {
 	struct block_description *block = arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	DEBUG( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
 	if (block->bz == 0)
 		FPRINTF(stderr,"!!! DO update_func_opencl z %d OPENCL%d !!!\n", block->bz, workerid);
@@ -341,7 +341,7 @@ static void update_func_opencl(void *descr[], void *arg)
 void update_func_cpu(void *descr[], void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	DEBUG( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
 	if (block->bz == 0)
 		FPRINTF(stderr,"!!! DO update_func_cpu z %d CPU%d !!!\n", block->bz, workerid);
@@ -506,7 +506,7 @@ unsigned bottom_per_worker[STARPU_NMAXWORKERS];
 void dummy_func_top_cpu(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	top_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Bottom block %d\n", block->bz);
@@ -522,7 +522,7 @@ void dummy_func_top_cpu(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 void dummy_func_bottom_cpu(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	bottom_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Top block %d\n", block->bz);
@@ -536,7 +536,7 @@ void dummy_func_bottom_cpu(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 static void dummy_func_top_cuda(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	top_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Top block %d\n", block->bz);
@@ -552,7 +552,7 @@ static void dummy_func_top_cuda(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg
 static void dummy_func_bottom_cuda(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	bottom_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Bottom block %d on CUDA\n", block->bz);
@@ -567,7 +567,7 @@ static void dummy_func_bottom_cuda(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *
 static void dummy_func_top_opencl(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	top_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Top block %d\n", block->bz);
@@ -583,7 +583,7 @@ static void dummy_func_top_opencl(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *a
 static void dummy_func_bottom_opencl(void *descr[] STARPU_ATTRIBUTE_UNUSED, void *arg)
 {
 	struct block_description *block = (struct block_description *) arg;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	bottom_per_worker[workerid]++;
 
 	DEBUG( "DO SAVE Bottom block %d on OPENCL\n", block->bz);

+ 1 - 1
socl/src/cl_buildprogram.c

@@ -29,7 +29,7 @@ static void soclBuildProgram_task(void *data) {
    cl_int err;
    unsigned int i;
 
-   int wid = starpu_worker_get_id();
+   int wid = starpu_worker_get_id_check();
 
    /* Check if the kernel has to be built for this device */
    for (i=0; i <= d->num_devices; i++) {

+ 4 - 3
socl/src/cl_createkernel.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -24,15 +25,15 @@ static void soclCreateKernel_task(void *data) {
 
    if (k->program->cl_programs[range] == NULL) {
       k->errcodes[range] = CL_SUCCESS;
-      DEBUG_MSG("[Device %d] Kernel creation skipped: program has not been built for this device.\n", starpu_worker_get_id());
+      DEBUG_MSG("[Device %d] Kernel creation skipped: program has not been built for this device.\n", starpu_worker_get_id_check());
       return;
    }
 
-   DEBUG_MSG("[Device %d] Creating kernel...\n", starpu_worker_get_id());
+   DEBUG_MSG("[Device %d] Creating kernel...\n", starpu_worker_get_id_check());
    k->cl_kernels[range] = clCreateKernel(k->program->cl_programs[range], k->kernel_name, &err);
    if (err != CL_SUCCESS) {
       k->errcodes[range] = err;
-      ERROR_STOP("[Device %d] Unable to create kernel. Error %d. Aborting.\n", starpu_worker_get_id(), err);
+      ERROR_STOP("[Device %d] Unable to create kernel. Error %d. Aborting.\n", starpu_worker_get_id_check(), err);
       return;
    }
 

+ 2 - 1
socl/src/cl_createprogramwithsource.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -28,7 +29,7 @@ static void soclCreateProgramWithSource_task(void *data) {
    struct cpws_data *d = (struct cpws_data*)data;
 
    cl_context context;
-   int wid = starpu_worker_get_id();
+   int wid = starpu_worker_get_id_check();
    DEBUG_MSG("Worker id: %d\n", wid);
 
    int range = starpu_worker_get_range();

+ 2 - 1
socl/src/cl_enqueuecopybuffer.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011, 2014 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -26,7 +27,7 @@ static void soclEnqueueCopyBuffer_opencl_task(void *descr[], void *args) {
   event->prof_start = _socl_nanotime();
   gc_entity_release(event);
 
-   wid = starpu_worker_get_id();
+   wid = starpu_worker_get_id_check();
    starpu_opencl_get_queue(wid, &cq);
 
    cl_mem src = (cl_mem)STARPU_VARIABLE_GET_PTR(descr[0]);

+ 2 - 1
socl/src/cl_enqueuendrangekernel.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -29,7 +30,7 @@ void soclEnqueueNDRangeKernel_task(void *descr[], void *args) {
   ev->prof_start = _socl_nanotime();
   gc_entity_release(ev);
 
-   wid = starpu_worker_get_id();
+   wid = starpu_worker_get_id_check();
    starpu_opencl_get_queue(wid, &cq);
 
    DEBUG_MSG("[worker %d] [kernel %d] Executing kernel...\n", wid, cmd->kernel->id);

+ 2 - 1
socl/src/cl_enqueuereadbuffer.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011, 2014 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -45,7 +46,7 @@ static void soclEnqueueReadBuffer_opencl_task(void *descr[], void *args) {
 
    DEBUG_MSG("[Buffer %d] Reading %ld bytes from offset %ld into %p\n", cmd->buffer->id, cmd->cb, cmd->offset, cmd->ptr);
 
-   int wid = starpu_worker_get_id();
+   int wid = starpu_worker_get_id_check();
    cl_command_queue cq;
    starpu_opencl_get_queue(wid, &cq);
 

+ 2 - 1
socl/src/cl_enqueuewritebuffer.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011, 2014 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -48,7 +49,7 @@ static void soclEnqueueWriteBuffer_opencl_task(void *descr[], void *args) {
 
    DEBUG_MSG("[Buffer %d] Writing %ld bytes to offset %ld from %p\n", cmd->buffer->id, cmd->cb, cmd->offset, cmd->ptr);
 
-   int wid = starpu_worker_get_id();
+   int wid = starpu_worker_get_id_check();
    cl_command_queue cq;
    starpu_opencl_get_queue(wid, &cq);
 

+ 2 - 1
socl/src/util.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010,2011 University of Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -27,7 +28,7 @@ int starpu_worker_get_range_by_id(int id) {
 }
 
 int starpu_worker_get_range() {
-   int id = starpu_worker_get_id();
+   int id = starpu_worker_get_id_check();
    return starpu_worker_get_range_by_id(id);
 }
 

+ 1 - 1
starpufft/src/Makefile.am

@@ -1,7 +1,7 @@
 # StarPU --- Runtime system for heterogeneous multicore architectures.
 #
 # Copyright (C) 2009-2013, 2015-2016  Université de Bordeaux
-# Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015  CNRS
+# Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016  CNRS
 #
 # StarPU is free software; you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as published by

+ 10 - 10
starpufft/src/starpufftx1d.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2009-2014  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -89,7 +89,7 @@ STARPUFFT(fft1_1d_plan_gpu)(void *args)
 {
 	STARPUFFT(plan) plan = args;
 	int n2 = plan->n2[0];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	cufftResult cures;
 
 	cures = cufftPlan1d(&plan->plans[workerid].plan1_cuda, n2, _CUFFT_C2C, 1);
@@ -113,7 +113,7 @@ STARPUFFT(fft1_1d_kernel_gpu)(void *descr[], void *_args)
 	_cufftComplex * restrict out = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[1]);
 	const _cufftComplex * restrict roots = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[2]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -137,7 +137,7 @@ STARPUFFT(fft2_1d_plan_gpu)(void *args)
 	int n2 = plan->n2[0];
 	int n3 = n2/DIV_1D;
 	cufftResult cures;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	cures = cufftPlan1d(&plan->plans[workerid].plan2_cuda, n1, _CUFFT_C2C, n3);
 	if (cures != CUFFT_SUCCESS)
@@ -157,7 +157,7 @@ STARPUFFT(fft2_1d_kernel_gpu)(void *descr[], void *_args)
 	_cufftComplex * restrict in = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[0]);
 	_cufftComplex * restrict out = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[1]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -205,7 +205,7 @@ STARPUFFT(fft1_1d_kernel_cpu)(void *descr[], void *_args)
 	int i = args->i;
 	int j;
 	int n2 = plan->n2[0];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -259,7 +259,7 @@ STARPUFFT(fft2_1d_kernel_cpu)(void *descr[], void *_args)
 	struct STARPUFFT(args) *args = _args;
 	STARPUFFT(plan) plan = args->plan;
 	/* int jj = args->jj; */
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -420,7 +420,7 @@ STARPUFFT(fft_1d_plan_gpu)(void *args)
 	STARPUFFT(plan) plan = args;
 	cufftResult cures;
 	int n = plan->n[0];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	cures = cufftPlan1d(&plan->plans[workerid].plan_cuda, n, _CUFFT_C2C, 1);
 	if (cures != CUFFT_SUCCESS)
@@ -439,7 +439,7 @@ STARPUFFT(fft_1d_kernel_gpu)(void *descr[], void *args)
 	_cufftComplex * restrict in = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[0]);
 	_cufftComplex * restrict out = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[1]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -457,7 +457,7 @@ static void
 STARPUFFT(fft_1d_kernel_cpu)(void *descr[], void *_args)
 {
 	STARPUFFT(plan) plan = _args;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 

+ 10 - 10
starpufft/src/starpufftx2d.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  ; Copyright (C) 2009-2014  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -53,7 +53,7 @@ STARPUFFT(fft1_2d_plan_gpu)(void *args)
 	STARPUFFT(plan) plan = args;
 	int n2 = plan->n2[0];
 	int m2 = plan->n2[1];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 	cufftResult cures;
 
 	cures = cufftPlan2d(&plan->plans[workerid].plan1_cuda, n2, m2, _CUFFT_C2C);
@@ -80,7 +80,7 @@ STARPUFFT(fft1_2d_kernel_gpu)(void *descr[], void *_args)
 	const _cufftComplex * restrict roots0 = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[2]);
 	const _cufftComplex * restrict roots1 = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[3]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -104,7 +104,7 @@ STARPUFFT(fft2_2d_plan_gpu(void *args))
 	int n1 = plan->n1[0];
 	int m1 = plan->n1[1];
 	cufftResult cures;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	cures = cufftPlan2d(&plan->plans[workerid].plan2_cuda, n1, m1, _CUFFT_C2C);
 	if (cures != CUFFT_SUCCESS)
@@ -131,7 +131,7 @@ STARPUFFT(fft2_2d_kernel_gpu)(void *descr[], void *_args)
 	_cufftComplex * restrict in = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[0]);
 	_cufftComplex * restrict out = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[1]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -182,7 +182,7 @@ STARPUFFT(fft1_2d_kernel_cpu)(void *descr[], void *_args)
 	int k, l;
 	int n2 = plan->n2[0];
 	int m2 = plan->n2[1];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -239,7 +239,7 @@ STARPUFFT(fft2_2d_kernel_cpu)(void *descr[], void *_args)
 	STARPUFFT(plan) plan = args->plan;
 	/* int kk = args->kk; */
 	/* int ll = args->ll; */
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -406,7 +406,7 @@ STARPUFFT(fft_2d_plan_gpu)(void *args)
 	cufftResult cures;
 	int n = plan->n[0];
 	int m = plan->n[1];
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	cures = cufftPlan2d(&plan->plans[workerid].plan_cuda, n, m, _CUFFT_C2C);
 	if (cures != CUFFT_SUCCESS)
@@ -425,7 +425,7 @@ STARPUFFT(fft_2d_kernel_gpu)(void *descr[], void *args)
 	_cufftComplex * restrict in = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[0]);
 	_cufftComplex * restrict out = (_cufftComplex *)STARPU_VECTOR_GET_PTR(descr[1]);
 
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 
@@ -443,7 +443,7 @@ static void
 STARPUFFT(fft_2d_kernel_cpu)(void *descr[], void *_args)
 {
 	STARPUFFT(plan) plan = _args;
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	task_per_worker[workerid]++;
 

+ 2 - 1
tests/datawizard/acquire_release_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -32,7 +33,7 @@ void increment_opencl(void *buffers[], void *args)
 
 	cl_mem val = (cl_mem)STARPU_VARIABLE_GET_PTR(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "_increment_opencl_codelet", devid);

+ 2 - 1
tests/datawizard/handle_to_pointer.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -61,7 +62,7 @@ static void cuda_task(void **buffers, void *args)
 static void opencl_task(void *buffers[], void *args)
 {
 	cl_command_queue queue;
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_queue(devid, &queue);
 

+ 3 - 3
tests/datawizard/interfaces/bcsr/bcsr_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011, 2012 INRIA
+ * Copyright (C) 2016       CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -44,12 +45,11 @@ test_bcsr_opencl_func(void *buffers[], void *args)
 	cl_mem nzval = (cl_mem)STARPU_BCSR_GET_NZVAL(buffers[0]);
 
 	cl_context context;
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 
-	cl_mem fail = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR,
-		sizeof(int), &bcsr_config.copy_failed, &err);
+	cl_mem fail = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, sizeof(int), &bcsr_config.copy_failed, &err);
 
 	if (err != CL_SUCCESS)
 		STARPU_OPENCL_REPORT_ERROR(err);

+ 2 - 1
tests/datawizard/interfaces/block/block_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -45,7 +46,7 @@ test_block_opencl_func(void *buffers[], void *args)
 	cl_mem block = (cl_mem) STARPU_BLOCK_GET_DEV_HANDLE(buffers[0]);
 
 	cl_context context;
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 1
tests/datawizard/interfaces/coo/coo_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -47,7 +48,7 @@ test_coo_opencl_func(void *buffers[], void *args)
 	n = STARPU_COO_GET_NVALUES(buffers[0]);
 	val = (cl_mem) STARPU_COO_GET_VALUES(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 1
tests/datawizard/interfaces/csr/csr_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +42,7 @@ test_csr_opencl_func(void *buffers[], void *args)
 	cl_mem nzval = (cl_mem)STARPU_CSR_GET_NZVAL(buffers[0]);
 
 	cl_context context;
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 1
tests/datawizard/interfaces/matrix/matrix_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -45,7 +46,7 @@ void test_matrix_opencl_func(void *buffers[], void *args)
 	n*= STARPU_MATRIX_GET_NY(buffers[0]);
 	val = (cl_mem)STARPU_MATRIX_GET_DEV_HANDLE(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 2
tests/datawizard/interfaces/multiformat/multiformat_conversion_codelets_opencl.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
- * Copyright (C) 2012  CNRS
+ * Copyright (C) 2012, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -37,7 +37,7 @@ void cpu_to_opencl_opencl_func(void *buffers[], void *args)
 	cl_mem src = (cl_mem) STARPU_MULTIFORMAT_GET_CPU_PTR(buffers[0]);
 	cl_mem dst = (cl_mem) STARPU_MULTIFORMAT_GET_OPENCL_PTR(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	ret = starpu_opencl_load_opencl_from_file(KERNEL_LOCATION,

+ 2 - 1
tests/datawizard/interfaces/multiformat/multiformat_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -45,7 +46,7 @@ void test_multiformat_opencl_func(void *buffers[], void *args)
 	n = STARPU_MULTIFORMAT_GET_NX(buffers[0]);
 	val = (cl_mem)STARPU_MULTIFORMAT_GET_OPENCL_PTR(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 1
tests/datawizard/interfaces/variable/variable_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +42,7 @@ void test_variable_opencl_func(void *buffers[], void *args)
 	cl_mem val = (cl_mem)STARPU_VARIABLE_GET_PTR(buffers[0]);
 
 	cl_context context;
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 2 - 1
tests/datawizard/interfaces/vector/test_vector_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011  INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +42,7 @@ test_vector_opencl_func(void *buffers[], void *args)
 	cl_mem val = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 
 	cl_context context;
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_context(devid, &context);
 

+ 3 - 2
tests/datawizard/lazy_allocation.c

@@ -2,6 +2,7 @@
  *
  * Copyright (C) 2010-2012, 2014, 2016  Université de Bordeaux
  * Copyright (C) 2012       INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -54,7 +55,7 @@ static void opencl_memset_codelet(void *buffers[], void *args)
 	(void) args;
 
 	cl_command_queue queue;
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_queue(devid, &queue);
 
@@ -152,7 +153,7 @@ static void opencl_check_content_codelet(void *buffers[], void *args)
 	STARPU_SKIP_IF_VALGRIND;
 
 	cl_command_queue queue;
-	int id = starpu_worker_get_id();
+	int id = starpu_worker_get_id_check();
 	int devid = starpu_worker_get_devid(id);
 	starpu_opencl_get_queue(devid, &queue);
 

+ 2 - 2
tests/datawizard/manual_reduction.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010, 2012-2016  Université de Bordeaux
- * Copyright (C) 2012, 2013  CNRS
+ * Copyright (C) 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -36,7 +36,7 @@ static starpu_data_handle_t per_worker_handle[STARPU_NMAXWORKERS];
 /* Create per-worker handles */
 static void initialize_per_worker_handle(void *arg STARPU_ATTRIBUTE_UNUSED)
 {
-	int workerid = starpu_worker_get_id();
+	int workerid = starpu_worker_get_id_check();
 
 	/* Allocate memory on the worker, and initialize it to 0 */
 	switch (starpu_worker_get_type(workerid))

+ 2 - 1
tests/datawizard/opencl_codelet_unsigned_inc.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -34,7 +35,7 @@ void opencl_codelet_unsigned_inc(void *buffers[], void *args)
 
 	cl_mem val = (cl_mem) STARPU_VARIABLE_GET_PTR(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "_opencl_unsigned_inc", devid);

+ 2 - 1
tests/datawizard/scal.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2011, 2014, 2016  Université de Bordeaux
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -51,7 +52,7 @@ void scal_func_opencl(void *buffers[], void *_args)
 	cl_mem val = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 	unsigned offset = STARPU_VECTOR_GET_OFFSET(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "vector_mult_opencl", devid);

+ 2 - 1
tests/datawizard/scratch_opencl.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -36,7 +37,7 @@ void opencl_f(void *buffers[], void *args)
 	cl_mem val = (cl_mem) STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 	cl_mem tmp = (cl_mem) STARPU_VECTOR_GET_DEV_HANDLE(buffers[1]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "increment_vector_opencl", devid);

+ 3 - 3
tests/datawizard/sync_and_notify_data_opencl.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2010, 2012  CNRS
+ * Copyright (C) 2010, 2012, 2016  CNRS
  * Copyright (C) 2011, 2014, 2016  Université de Bordeaux
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -35,7 +35,7 @@ void opencl_codelet_incA(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 	cl_event event;
 	int id, devid, err;
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_code, "incA", devid);
@@ -63,7 +63,7 @@ void opencl_codelet_incC(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_args)
 	cl_event event;
 	int id, devid, err;
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_code, "incC", devid);

+ 2 - 2
tests/datawizard/write_only_tmp_buffer.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2009, 2010-2012, 2014, 2016  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -39,7 +39,7 @@ static void opencl_codelet_null(void *descr[], STARPU_ATTRIBUTE_UNUSED void *_ar
 	cl_mem buf = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(descr[0]);
         char ptr = 42;
         cl_command_queue queue;
-        int id = starpu_worker_get_id();
+        int id = starpu_worker_get_id_check();
         int devid = starpu_worker_get_devid(id);
 
         starpu_opencl_get_queue(devid, &queue);

+ 2 - 2
tests/microbenchs/sync_tasks_overhead.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2014, 2016  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -112,7 +112,7 @@ int main(int argc, char **argv)
                         char file[1024];
                         FILE *f;
 
-                        sprintf(file, "%s/sync_tasks_overhead_total.dat", output_dir);
+                        snprintf(file, 1024, "%s/sync_tasks_overhead_total.dat", output_dir);
                         f = fopen(file, "a");
                         fprintf(f, "%s\t%f\n", bench_id, timing/1000000);
                         fclose(f);

+ 2 - 2
tests/microbenchs/tasks_size_overhead.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2010-2014, 2016  Université de Bordeaux
- * Copyright (C) 2010, 2011, 2012, 2013  CNRS
+ * Copyright (C) 2010, 2011, 2012, 2013, 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -220,7 +220,7 @@ int main(int argc, char **argv)
 					char file[1024];
 					FILE *f;
 
-					sprintf(file, "%s/tasks_size_overhead_total.dat", output_dir);
+					snprintf(file, 1024, "%s/tasks_size_overhead_total.dat", output_dir);
 					f = fopen(file, "a");
 					fprintf(f, "%s\t%u\t%u\t%f\n", bench_id, ncpus, size, timing/1000000);
 					fclose(f);

+ 2 - 1
tests/perfmodels/opencl_memset.c

@@ -1,6 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012 INRIA
+ * Copyright (C) 2016  CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -34,7 +35,7 @@ void memset_opencl(void *buffers[], void *args)
 	unsigned n = STARPU_VECTOR_GET_NX(buffers[0]);
 	cl_mem val = (cl_mem)STARPU_VECTOR_GET_DEV_HANDLE(buffers[0]);
 
-	id = starpu_worker_get_id();
+	id = starpu_worker_get_id_check();
 	devid = starpu_worker_get_devid(id);
 
 	err = starpu_opencl_load_kernel(&kernel, &queue, &opencl_program, "_memset_opencl", devid);