diff --git a/baselines/pfsp/lib/Auxiliary.c b/baselines/commons/util.c
similarity index 98%
rename from baselines/pfsp/lib/Auxiliary.c
rename to baselines/commons/util.c
index 8c06e3e8acdc102a094a595a924d7a8be766f4d9..5ff388cb4aa709bf02afbe114f3f0e4c49f9cf2b 100644
--- a/baselines/pfsp/lib/Auxiliary.c
+++ b/baselines/commons/util.c
@@ -1,4 +1,4 @@
-#include "Auxiliary.h"
+#include "util.h"
 
 // Function to check if all elements in an array of atomic bool are IDLE
 static bool _allIdle(_Atomic bool arr[], int size) {
diff --git a/baselines/commons/util.h b/baselines/commons/util.h
index 19c69d374903070b88d890503080f43df8a717b0..8e39a0c87e106c7e37f1e977bad9541f012c703a 100644
--- a/baselines/commons/util.h
+++ b/baselines/commons/util.h
@@ -1,8 +1,17 @@
 #ifndef UTIL_H
 #define UTIL_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdatomic.h>
+#include <stdbool.h>
 #include <stdint.h>
 
+#define BUSY false
+#define IDLE true
+
 inline void swap_uint8(uint8_t* a, uint8_t* b)
 {
   uint8_t tmp = *b;
@@ -17,4 +26,14 @@ inline void swap_int(int* a, int* b)
   *a = tmp;
 }
 
+bool allIdle(_Atomic bool arr[], int size, _Atomic bool *flag);
+
+void permute(int* arr, int n);
+
+int findMin(int arr[], int size);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif // UTIL_H
diff --git a/baselines/nqueens/makefile b/baselines/nqueens/makefile
index 3b067145344eb293e58828ab815af78a1a4f168b..2aac5918826f1fd8119e69847511066ca7f4f899 100644
--- a/baselines/nqueens/makefile
+++ b/baselines/nqueens/makefile
@@ -12,6 +12,7 @@ CUDA_COMMON_OPTS := $(C_COMMON_OPTS) -arch=sm_70
 HIP_COMMON_OPTS  := $(C_COMMON_OPTS) --offload-arch=gfx906
 
 LIBPATH := lib
+COMMONS_PATH := ../commons
 
 # Platform-specific flags and libraries
 ifeq ($(SYSTEM), g5k)
@@ -37,6 +38,10 @@ all: nqueens_c.out nqueens_gpu_cuda.out nqueens_multigpu_cuda.out nqueens_gpu_hi
 $(LIBPATH)/%.o: $(LIBPATH)/%.c
 	$(C_COMPILER) $(C_COMMON_OPTS) -c $< -o $@
 
+# Pattern rule for C common source files
+$(COMMONS_PATH)/%.o: $(COMMONS_PATH)/%.c
+	$(C_COMPILER) $(C_COMMON_OPTS) -c $< -o $@
+
 # Build executable for sequential in C
 nqueens_c.out: nqueens_c.c $(LIBPATH)/NQueens_node.o $(LIBPATH)/Pool.o
 	$(C_COMPILER) $(C_COMMON_OPTS) $^ -o $@
diff --git a/baselines/pfsp/lib/Auxiliary.h b/baselines/pfsp/lib/Auxiliary.h
deleted file mode 100644
index 8f18dddb380b311e177f2a5077ced9b5b4a91773..0000000000000000000000000000000000000000
--- a/baselines/pfsp/lib/Auxiliary.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef AUXILIARY_H
-#define AUXILIARY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdbool.h>
-#include <stdatomic.h>
-#include <stdlib.h>
-
-#define BUSY false
-#define IDLE true
-
-/******************************************************************************
-Auxiliary functions
-******************************************************************************/
-
-bool allIdle(_Atomic bool arr[], int size, _Atomic bool *flag);
-
-void permute(int* arr, int n);
-
-int findMin(int arr[], int size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // AUXILIARY_H
diff --git a/baselines/pfsp/makefile b/baselines/pfsp/makefile
index 449c31f2defcea0f0923e2800a1cd96d6c60ca45..a74a994c6004fd1b8801064abc2ed22196815552 100644
--- a/baselines/pfsp/makefile
+++ b/baselines/pfsp/makefile
@@ -13,6 +13,7 @@ CUDA_COMMON_OPTS := -O3 -arch=sm_86 # TODO: adapt SM automatically, if possible
 HIP_COMMON_OPTS  := $(C_COMMON_OPTS) --offload-arch=gfx906
 
 LIBPATH := lib
+COMMONS_PATH := ../commons
 
 # Platform-specific flags and libraries
 ifeq ($(SYSTEM), g5k)
@@ -48,6 +49,10 @@ all: $(EXECUTABLES)
 $(LIBPATH)/%.o: $(LIBPATH)/%.c
 	$(C_COMPILER) $(C_COMMON_OPTS) -c $< -o $@
 
+# Pattern rule for C common source files
+$(COMMONS_PATH)/%.o: $(COMMONS_PATH)/%.c
+	$(C_COMPILER) $(C_COMMON_OPTS) -c $< -o $@
+
 # Pattern rule for CUDA library source files
 $(LIBPATH)/%.o: $(LIBPATH)/%.cu
 	$(CUDA_COMPILER) $(CUDA_COMMON_OPTS) -c $< -o $@
@@ -61,11 +66,11 @@ pfsp_gpu_cuda.out: pfsp_gpu_cuda.c $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_si
 	$(C_COMPILER) $(C_COMMON_OPTS) $^ -o $@ -lm -lcudart $(CUDA_INCLUDE) $(CUDA_LIB)
 
 # Build executable for multi-GPU in C+OpenMP+CUDA
-pfsp_multigpu_cuda.out: pfsp_multigpu_cuda.c $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/evaluate.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(LIBPATH)/Auxiliary.o
+pfsp_multigpu_cuda.out: pfsp_multigpu_cuda.c $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/evaluate.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(COMMONS_PATH)/util.o
 	$(C_COMPILER) $(C_COMMON_OPTS) -fopenmp $^ -o $@ -lm -lcudart $(CUDA_INCLUDE) $(CUDA_LIB)
 
 # Build executable for distributed multi-GPU in C+MPI+OpenMP+CUDA
-pfsp_dist_multigpu_cuda.out: pfsp_dist_multigpu_cuda.c $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/evaluate.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(LIBPATH)/Auxiliary.o
+pfsp_dist_multigpu_cuda.out: pfsp_dist_multigpu_cuda.c $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/evaluate.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(COMMONS_PATH)/util.o
 	$(MPI_COMPILER) $(C_COMMON_OPTS) -fopenmp $^ -o $@ -lm -lcudart $(CUDA_INCLUDE) $(CUDA_LIB)
 
 $(LIBPATH)/evaluate_hip.o: $(LIBPATH)/evaluate.cu
@@ -87,7 +92,7 @@ pfsp_multigpu_hip.o: pfsp_multigpu_cuda.c
 	hipify-perl $< > $<.hip
 	$(HIP_COMPILER) $(HIP_COMMON_OPTS) -fopenmp -c $<.hip -o $@
 
-pfsp_multigpu_hip.out: pfsp_multigpu_hip.o $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(LIBPATH)/Auxiliary.o $(LIBPATH)/evaluate_hip.o
+pfsp_multigpu_hip.out: pfsp_multigpu_hip.o $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(COMMONS_PATH)/util.o $(LIBPATH)/evaluate_hip.o
 	$(HIP_COMPILER) $(HIP_COMMON_OPTS) -fopenmp $^ -o $@
 
 # Build executable for distributed multi-GPU in C+MPI+OpenMP+HIP
@@ -95,11 +100,11 @@ pfsp_dist_multigpu_hip.o: pfsp_dist_multigpu_cuda.c
 	hipify-perl $< > $<.hip
 	$(HIP_COMPILER) $(HIP_COMMON_OPTS) $(MPI_INCLUDE) $(MPI_LIB) -fopenmp -c $<.hip -o $@
 
-pfsp_dist_multigpu_hip.out: pfsp_dist_multigpu_hip.o $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(LIBPATH)/Auxiliary.o $(LIBPATH)/evaluate_hip.o
+pfsp_dist_multigpu_hip.out: pfsp_dist_multigpu_hip.o $(LIBPATH)/c_taillard.o $(LIBPATH)/c_bound_simple.o $(LIBPATH)/c_bound_johnson.o $(LIBPATH)/PFSP_node.o $(LIBPATH)/Pool_ext.o $(COMMONS_PATH)/util.o $(LIBPATH)/evaluate_hip.o
 	$(HIP_COMPILER) $(HIP_COMMON_OPTS) $(MPI_INCLUDE) $(MPI_LIB) -lmpi_cxx -lmpi -lopen-pal -fopenmp $^ -o $@
 
 # Utilities
 .PHONY: clean
 
 clean:
-	rm -f *.out *.o *.hip $(LIBPATH)/*.o $(LIBPATH)/*.hip
+	rm -f *.out *.o *.hip $(LIBPATH)/*.o $(LIBPATH)/*.hip $(COMMONS_PATH)/*.o
diff --git a/baselines/pfsp/pfsp_dist_multigpu_cuda.c b/baselines/pfsp/pfsp_dist_multigpu_cuda.c
index 68a0c3520165336db969830cb62ead1aacf7396a..aebaf1ecb4a16bf6f3848ef327731b0345a59624 100644
--- a/baselines/pfsp/pfsp_dist_multigpu_cuda.c
+++ b/baselines/pfsp/pfsp_dist_multigpu_cuda.c
@@ -23,7 +23,6 @@
 #include "lib/c_taillard.h"
 #include "lib/evaluate.h"
 #include "lib/Pool_ext.h"
-#include "lib/Auxiliary.h"
 
 /******************************************************************************
 Create new MPI data type
diff --git a/baselines/pfsp/pfsp_multigpu_cuda.c b/baselines/pfsp/pfsp_multigpu_cuda.c
index 32810e2043fb957ad2b248d6c667dc551b51cd26..0fbcf914a19a82bbda43a0b0c8ccb6de309c1c3f 100644
--- a/baselines/pfsp/pfsp_multigpu_cuda.c
+++ b/baselines/pfsp/pfsp_multigpu_cuda.c
@@ -22,7 +22,6 @@
 #include "lib/c_taillard.h"
 #include "lib/evaluate.h"
 #include "lib/Pool_ext.h"
-#include "lib/Auxiliary.h"
 
 /******************************************************************************
 CUDA error checking