Kaynağa Gözat

Use S4U's sg_host_t when available

Samuel Thibault 6 yıl önce
ebeveyn
işleme
5076ecb393

+ 6 - 1
include/starpu_thread.h

@@ -61,9 +61,14 @@ extern "C"
 typedef msg_process_t starpu_pthread_t;
 typedef int starpu_pthread_attr_t;
 
+#ifdef STARPU_HAVE_SIMGRID_ACTOR_H
+typedef sg_host_t starpu_sg_host_t;
+#else
+typedef msg_host_t starpu_sg_host_t;
+#endif
 int starpu_pthread_equal(starpu_pthread_t t1, starpu_pthread_t t2);
 starpu_pthread_t starpu_pthread_self(void);
-int starpu_pthread_create_on(char *name, starpu_pthread_t *thread, const starpu_pthread_attr_t *attr, void *(*start_routine) (void *), void *arg, msg_host_t host);
+int starpu_pthread_create_on(char *name, starpu_pthread_t *thread, const starpu_pthread_attr_t *attr, void *(*start_routine) (void *), void *arg, starpu_sg_host_t host);
 int starpu_pthread_create(starpu_pthread_t *thread, const starpu_pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
 int starpu_pthread_join(starpu_pthread_t thread, void **retval);
 int starpu_pthread_exit(void *retval) STARPU_ATTRIBUTE_NORETURN;

+ 1 - 1
src/common/thread.c

@@ -68,7 +68,7 @@ starpu_pthread_t starpu_pthread_self(void)
 	return MSG_process_self();
 }
 
-int starpu_pthread_create_on(char *name, starpu_pthread_t *thread, const starpu_pthread_attr_t *attr STARPU_ATTRIBUTE_UNUSED, void *(*start_routine) (void *), void *arg, msg_host_t host)
+int starpu_pthread_create_on(char *name, starpu_pthread_t *thread, const starpu_pthread_attr_t *attr STARPU_ATTRIBUTE_UNUSED, void *(*start_routine) (void *), void *arg, starpu_sg_host_t host)
 {
 	char **_args;
 	_STARPU_MALLOC(_args, 3*sizeof(char*));

+ 1 - 1
src/core/disk.c

@@ -137,7 +137,7 @@ int starpu_disk_register(struct starpu_disk_ops *func, void *parameter, starpu_s
 #ifdef STARPU_SIMGRID
 	char name[16];
 	snprintf(name, sizeof(name), "DISK%d", n);
-	msg_host_t host = _starpu_simgrid_get_host_by_name(name);
+	starpu_sg_host_t host = _starpu_simgrid_get_host_by_name(name);
 	STARPU_ASSERT_MSG(host, "Could not find disk %s in platform file", name);
 	_starpu_simgrid_memory_node_set_host(disk_memnode, host);
 #endif

+ 3 - 3
src/core/simgrid.h

@@ -62,10 +62,10 @@ void _starpu_simgrid_sync_gpus(void);
 /* Return the number of hosts prefixed by PREFIX */
 int _starpu_simgrid_get_nbhosts(const char *prefix);
 unsigned long long _starpu_simgrid_get_memsize(const char *prefix, unsigned devid);
-msg_host_t _starpu_simgrid_get_host_by_name(const char *name);
-msg_host_t _starpu_simgrid_get_memnode_host(unsigned node);
+starpu_sg_host_t _starpu_simgrid_get_host_by_name(const char *name);
+starpu_sg_host_t _starpu_simgrid_get_memnode_host(unsigned node);
 struct _starpu_worker;
-msg_host_t _starpu_simgrid_get_host_by_worker(struct _starpu_worker *worker);
+starpu_sg_host_t _starpu_simgrid_get_host_by_worker(struct _starpu_worker *worker);
 void _starpu_simgrid_get_platform_path(int version, char *path, size_t maxlen);
 msg_as_t _starpu_simgrid_get_as_by_name(const char *name);
 #pragma weak starpu_mpi_world_rank

+ 3 - 3
src/core/topology.c

@@ -2143,7 +2143,7 @@ static void _starpu_init_numa_node(struct _starpu_machine_config *config)
 
 #ifdef STARPU_SIMGRID
 	char name[16];
-	msg_host_t host;
+	starpu_sg_host_t host;
 #endif
 
 	numa_enabled = starpu_get_env_number_default("STARPU_USE_NUMA", 0);
@@ -2540,7 +2540,7 @@ static void _starpu_init_workers_binding_and_memory(struct _starpu_machine_confi
 					const char* cuda_memcpy_peer;
 					char name[16];
 					snprintf(name, sizeof(name), "CUDA%u", devid);
-					msg_host_t host = _starpu_simgrid_get_host_by_name(name);
+					starpu_sg_host_t host = _starpu_simgrid_get_host_by_name(name);
 					STARPU_ASSERT(host);
 					_starpu_simgrid_memory_node_set_host(memory_node, host);
 					cuda_memcpy_peer = MSG_host_get_property_value(host, "memcpy_peer");
@@ -2636,7 +2636,7 @@ static void _starpu_init_workers_binding_and_memory(struct _starpu_machine_confi
 #ifdef STARPU_SIMGRID
 					char name[16];
 					snprintf(name, sizeof(name), "OpenCL%u", devid);
-					msg_host_t host = _starpu_simgrid_get_host_by_name(name);
+					starpu_sg_host_t host = _starpu_simgrid_get_host_by_name(name);
 					STARPU_ASSERT(host);
 					_starpu_simgrid_memory_node_set_host(memory_node, host);
 #endif /* SIMGRID */

+ 3 - 3
src/datawizard/memory_nodes.h

@@ -51,7 +51,7 @@ struct _starpu_memory_node_descr
 	unsigned nworkers[STARPU_MAXNODES];
 
 #ifdef STARPU_SIMGRID
-	msg_host_t host[STARPU_MAXNODES];
+	starpu_sg_host_t host[STARPU_MAXNODES];
 #endif
 
 	// TODO move this 2 lists outside struct _starpu_memory_node_descr
@@ -92,12 +92,12 @@ static inline unsigned _starpu_memory_node_get_nworkers(unsigned node)
 }
 
 #ifdef STARPU_SIMGRID
-static inline void _starpu_simgrid_memory_node_set_host(unsigned node, msg_host_t host)
+static inline void _starpu_simgrid_memory_node_set_host(unsigned node, starpu_sg_host_t host)
 {
 	_starpu_descr.host[node] = host;
 }
 
-static inline msg_host_t _starpu_simgrid_memory_node_get_host(unsigned node)
+static inline starpu_sg_host_t _starpu_simgrid_memory_node_get_host(unsigned node)
 {
 	return _starpu_descr.host[node];
 }

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

@@ -1438,7 +1438,7 @@ int _starpu_cuda_is_direct_access_supported(unsigned node, unsigned handling_nod
 	(void) node;
 	if (starpu_node_get_kind(handling_node) == STARPU_CUDA_RAM)
 	{
-		msg_host_t host = _starpu_simgrid_get_memnode_host(handling_node);
+		starpu_sg_host_t host = _starpu_simgrid_get_memnode_host(handling_node);
 		const char* cuda_memcpy_peer = MSG_host_get_property_value(host, "memcpy_peer");
 		return cuda_memcpy_peer && atoll(cuda_memcpy_peer);
 	}