diff --git a/spack.yaml b/spack.yaml
index a9933c9cf115963b0ecf8d15cbb526ebbb26b422..8caaa08324958c975e3bb08d3a46a7f4da3e4cb9 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -6,29 +6,42 @@ spack:
 
   definitions:
     - compilers:
-        - gcc@13.2.0
+        - gcc@12.2.0
+        - intel-oneapi-compilers
+
+    - when: env['environment'] == 'helvetios'
+      serial_codes_per_cluster:
+        - ucx +rdmacm +rc +dc +ud +cma +mlx5_dv +parameter_checking +thread_multiple +verbs ~cuda ~gdrcopy
+    - when: env['environment'] == 'izar'
+      serial_codes_per_cluster:
+        - ucx +rdmacm +rc +dc +ud +cma +mlx5_dv +parameter_checking +thread_multiple +verbs +cuda cuda_arch=70 +gdrcopy
+
     - mpi_codes:
         - osu-micro-benchmarks
 
     - when: env['environment'] == 'helvetios'
       mpis:
         - openmpi fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +gpfs
-          ^ucx +rdmacm +rc +dc +ud +cma +mlx5_dv +parameter_checking +thread_multiple +verbs
     - when: env['environment'] == 'izar'
       mpis:
         - openmpi fabrics=ofi,ucx,verbs schedulers=slurm ~rsh +gpfs +cuda cuda_arch=70
-          ^ucx +rdmacm +rc +dc +ud +cma +mlx5_dv +parameter_checking +thread_multiple +verbs +cuda cuda_arch=70 +gdrcopy
+
+    - all_serial_codes:
+        - $serial_codes_per_cluster
+        - $mpis
 
   specs:
   - $compilers
   - matrix:
-    - [$mpis]
+    - [$all_serial_codes]
     - [$%compilers]
   - matrix:
     - [$mpi_codes]
     - [$^mpis]
     - [$%compilers]
 
+  concretize:
+    unify: when_possible
   view:
     default:
       root: /stack/packages/