Ver código fonte

Add links between numa and disk nodes

Corentin Salingue 8 anos atrás
pai
commit
7a1aebb62d
1 arquivos alterados com 9 adições e 3 exclusões
  1. 9 3
      src/core/disk.c

+ 9 - 3
src/core/disk.c

@@ -60,9 +60,15 @@ int starpu_disk_register(struct starpu_disk_ops *func, void *parameter, starpu_s
 	/* register disk */
 	unsigned memory_node = _starpu_memory_node_register(STARPU_DISK_RAM, 0);
 
-	/* TODO: all NUMA nodes actually... */
-	_starpu_register_bus(STARPU_MAIN_RAM, memory_node);
-	_starpu_register_bus(memory_node, STARPU_MAIN_RAM);
+        /* Connect the disk memory node to all numa memory nodes */
+        int nb_numa_nodes = _starpu_get_nb_numa_nodes();
+        int numa_node;
+        for (numa_node = 0; numa_node < nb_numa_nodes; numa_node++)
+        {
+                int numa_memnode = _starpu_numalogid_to_memnode(numa_node);
+                _starpu_register_bus(STARPU_MAIN_RAM, numa_memnode);
+                _starpu_register_bus(numa_memnode, STARPU_MAIN_RAM);
+        }
 
 	/* connect disk */
 	void *base = func->plug(parameter, size);