diff --git a/input/grid5000/sites/lille/clusters/chifflet/chifflet.yaml b/input/grid5000/sites/lille/clusters/chifflet/chifflet.yaml
index f3c2c1362ee47882ec3fd9bbae649c4a0b6ddfbb..3f24de1d143042487f38fb5719df86768741bec5 100644
--- a/input/grid5000/sites/lille/clusters/chifflet/chifflet.yaml
+++ b/input/grid5000/sites/lille/clusters/chifflet/chifflet.yaml
@@ -17,6 +17,7 @@ nodes:
       max_walltime: 0
     processor:
       microarchitecture: Broadwell
+    cpuset_mapping: round-robin
     performance:
       core_flops: 15730000000
       node_flops: 419500000000
diff --git a/input/grid5000/sites/lille/clusters/chifflot/chifflot.yaml b/input/grid5000/sites/lille/clusters/chifflot/chifflot.yaml
index 7eb94606b4ad27422d3d90d87d2dcfed20c71e90..289249afb6ac6918ff8d4d1f7dd109e47349bd75 100644
--- a/input/grid5000/sites/lille/clusters/chifflot/chifflot.yaml
+++ b/input/grid5000/sites/lille/clusters/chifflot/chifflot.yaml
@@ -17,6 +17,7 @@ nodes:
       max_walltime: 0
     processor:
       microarchitecture: Skylake
+    cpuset_mapping: round-robin
     performance:
       core_flops: 16360000000
       node_flops: 408900000000
diff --git a/input/grid5000/sites/nancy/clusters/graffiti/graffiti.yaml b/input/grid5000/sites/nancy/clusters/graffiti/graffiti.yaml
index 4ad3b0e49014f0d43e5937bd122bf576ff4f63a1..fb7c6e9b40a3e18de6380f25c69fad4d2782a7e8 100755
--- a/input/grid5000/sites/nancy/clusters/graffiti/graffiti.yaml
+++ b/input/grid5000/sites/nancy/clusters/graffiti/graffiti.yaml
@@ -9,6 +9,7 @@ nodes:
   graffiti-[1-13]:
     processor:
       microarchitecture: Skylake
+    cpuset_mapping: round-robin
     supported_job_types:
        deploy: true
        besteffort: true
diff --git a/input/grid5000/sites/nancy/clusters/graphique/graphique.yaml b/input/grid5000/sites/nancy/clusters/graphique/graphique.yaml
index fdc1ea254a3f604b57c4c6f575085f7bf759535c..29a9d553e940ac2a7a75d46845352ff843e39c65 100644
--- a/input/grid5000/sites/nancy/clusters/graphique/graphique.yaml
+++ b/input/grid5000/sites/nancy/clusters/graphique/graphique.yaml
@@ -19,6 +19,7 @@ nodes:
       besteffort: true
     processor:
       microarchitecture: Haswell
+    cpuset_mapping: round-robin
     storage_devices:
       sda:
         interface: SCSI
diff --git a/input/grid5000/sites/nancy/clusters/grele/grele.yaml b/input/grid5000/sites/nancy/clusters/grele/grele.yaml
index 1db7e316b506810efede4e621fec9ac16d57bed0..b47e9f618cc16be7d47d1f3dda88ed5c20d32f2d 100644
--- a/input/grid5000/sites/nancy/clusters/grele/grele.yaml
+++ b/input/grid5000/sites/nancy/clusters/grele/grele.yaml
@@ -27,6 +27,7 @@ nodes:
         available: false
     processor:
       microarchitecture: Broadwell
+    cpuset_mapping: round-robin
     network_adapters:
       eth0:
         enabled: true
diff --git a/input/grid5000/sites/nancy/clusters/grimani/grimani.yaml b/input/grid5000/sites/nancy/clusters/grimani/grimani.yaml
index 2e1e61f051077ea5834c3dc5e6e019b2f28a88d1..20e5c640cf7946c39c7ec6b9beabe7925d72e109 100644
--- a/input/grid5000/sites/nancy/clusters/grimani/grimani.yaml
+++ b/input/grid5000/sites/nancy/clusters/grimani/grimani.yaml
@@ -27,6 +27,7 @@ nodes:
         available: false
     processor:
       microarchitecture: Haswell
+    cpuset_mapping: round-robin
     storage_devices:
       sda:
         interface: SATA
diff --git a/lib/refrepo/gen/oar-properties.rb b/lib/refrepo/gen/oar-properties.rb
index 7bdc599a4e6459080a691d5efdb957e7d6d96f2e..75108eea44dfdfde4342f192e5ca8a628910bfdd 100644
--- a/lib/refrepo/gen/oar-properties.rb
+++ b/lib/refrepo/gen/oar-properties.rb
@@ -9,32 +9,6 @@ class MissingProperty < StandardError; end
 
 MiB = 1024**2
 
-# CPU distribution can be: round-robin | continuous
-PER_CLUSTER_CPUSET_MAPPING = {
-    "nantes" => {
-        "econome" => "continuous",
-        "ecotype" => "continuous",
-    },
-    "nancy" => {
-        "graoully" => "continuous",
-        "graffiti" => "round-robin",
-        "graphique" => "round-robin",
-        "graphite" => "continuous",
-        "grcinq" => "continuous",
-        "grele" => "round-robin",
-        "grimani" => "round-robin",
-        "grimoire" => "continuous",
-        "grisou" => "continuous",
-        "grvingt" => "continuous",
-    },
-    "lille" => {
-        "chetemi" => "continuous",
-        "chiclet" => "continuous",
-        "chifflet" => "round-robin",
-        "chifflot" => "round-robin",
-    }
-}
-
 # CPU distribution can be: round-robin | continuous
 DEFAULT_CPUSET_MAPPING = "continuous"
 
@@ -1145,6 +1119,9 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
     gpu_count = first_node.key?("gpu_devices") ? first_node["gpu_devices"].length : 0
 
     cpu_model = "#{first_node['processor']['model']} #{first_node['processor']['version']}"
+    cpuset_mapping = first_node.key?("cpuset_mapping") ? first_node["cpuset_mapping"] : DEFAULT_CPUSET_MAPPING
+    # Detect how 'GPUSETs' are distributed over CPUs/GPUs of servers of this cluster
+    gpuset_mapping = DEFAULT_GPUSET_MAPPING
 
     ############################################
     # (2-b) Detect existing resource_ids and {CPU, CORE, CPUSET, GPU}'s IDs
@@ -1242,16 +1219,6 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
       variables[:current_ids] = phys_rsc_ids
     end
 
-    # Detect how 'CPUSETs' are distributed over CPUs of servers of this cluster
-    if PER_CLUSTER_CPUSET_MAPPING.key? site_name and PER_CLUSTER_CPUSET_MAPPING[site_name].key?(cluster_name)
-      cpuset_attribution_policy = PER_CLUSTER_CPUSET_MAPPING[site_name][cluster_name]
-    else
-      cpuset_attribution_policy = DEFAULT_CPUSET_MAPPING
-    end
-
-    # Detect how 'GPUSETs' are distributed over CPUs/GPUs of servers of this cluster
-    gpuset_attribution_policy = DEFAULT_GPUSET_MAPPING
-
     # Some cluster (econome) have attributed resources according to the "alpha-numerical" order of nodes
     # ([1, 11, 12, ..., 3] instead of [1, 2, 3, 4, ...]). Here we preserve to order of existing nodes of the cluster
     if is_a_new_cluster
@@ -1291,7 +1258,7 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
         gpu_idx += 1
       end
 
-      if cpuset_attribution_policy == 'continuous'
+      if cpuset_mapping == 'continuous'
         cpuset = 0
       end
 
@@ -1363,7 +1330,7 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
           ############################################
           # (2-d) Associate a cpuset to each core
           ############################################
-          if cpuset_attribution_policy == 'continuous'
+          if cpuset_mapping == 'continuous'
             row[:cpuset] = cpuset
           else
             # CPUSETs starts at 0
@@ -1376,7 +1343,7 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
           # (2-e) [if cluster with GPU] Associate a gpuset to each core
           ############################################
           if not numa_gpus.empty?
-            if gpuset_attribution_policy == 'continuous'
+            if gpuset_mapping == 'continuous'
               gpu_idx = core_index0 / (phys_rsc_map["core"][:per_server_count] / numa_gpus.length)
             else
               gpu_idx = core_index0 % numa_gpus.length
@@ -1395,7 +1362,7 @@ def extract_clusters_description(clusters, site_name, options, input_files_hiera
 
           core_idx += 1
 
-          if cpuset_attribution_policy == 'continuous'
+          if cpuset_mapping == 'continuous'
             cpuset += 1
           end