diff --git a/expetator/benchmarks/mpi_generic.c b/expetator/benchmarks/mpi_generic.c
index f9f2558fc4249d1c201cb99ff4f0ced7ad3c534c..3d1a31948e11354b128944c16c778c65dae0cb5a 100644
--- a/expetator/benchmarks/mpi_generic.c
+++ b/expetator/benchmarks/mpi_generic.c
@@ -184,8 +184,8 @@ int main(int argc, char** argv) {
 // -c 1200
 // -m 35000
 
-/* time mpirun --machinefile /dev/shm/m ./a.out -m 35000 -n 1 -c 1200
-/dev/shm/m : 32 == cores
+/* time mpirun --machinefile m ./a.out -m 35000 -n 1 -c 1200
+m : 32 == cores
 real	2m26.163s
 user	32m6.416s
 sys	5m27.728s
@@ -196,8 +196,8 @@ sys	5m27.728s
 
 /*
 
-/* time mpirun  --machinefile /dev/shm/m2 ./a.out -m 35000 -n 1 -c 1200
-/dev/shm/m2 : 64 == hyperthread
+/* time mpirun  --machinefile m2 ./a.out -m 35000 -n 1 -c 1200
+m2 : 64 == hyperthread
 real	3m38.990s
 user	101m59.836s
 sys	12m21.300s
@@ -209,12 +209,12 @@ sys	12m21.300s
 
 /* RQ: avec mpirun --mca btl ^openib
 
-time mpirun  --mca btl ^openib --machinefile /dev/shm/m ./a.out -n 1
+time mpirun  --mca btl ^openib --machinefile m ./a.out -n 1
 real	0m53.827s
 user	6m38.412s
 sys	6m46.088s
 
-time mpirun  --machinefile /dev/shm/m ./a.out -n 1
+time mpirun  --machinefile m ./a.out -n 1
 real	0m53.990s
 user	6m43.392s
 sys	6m53.344s
diff --git a/expetator/experiment.py b/expetator/experiment.py
index 694c8e2af95fda8c44ab81b8962a01f9782cf262..8553d86a2f83413664687469134dc7d31d1c80e8 100755
--- a/expetator/experiment.py
+++ b/expetator/experiment.py
@@ -8,6 +8,7 @@ import random
 import time
 import itertools
 from pathlib import Path
+import tempfile
 
 from functools import reduce
 from execo import Process
@@ -15,12 +16,13 @@ from execo import Process
 class Executor:
     'Allow access to the platform'
     def __init__(self):
+        self.tmp_dir
         if os.path.isdir('/dev/shm'):
-            self.mpi_host_file = '/dev/shm/mpi_host_file'
-            self.mpi_core_file = '/dev/shm/mpi_core_file'
+            self.tmp_dir = tempfile.mkdtemp(prefix="/dev/shm")
         else:
-            self.mpi_host_file = '/tmp/expetator_mpi_host_file'
-            self.mpi_core_file = '/tmp/expetator_mpi_core_file'
+            self.tmp_dir = tempfile.mkdtemp(prefix="/tmp/executor")
+        self.mpi_host_file = '%s/mpi_host_file' % self.tmp_dir
+        self.mpi_core_file = '%s/mpi_core_file' % self.tmp_dir
         self.mpi_options = ''
         self.hostnames = ['localhost']
         self.nbhosts = 1
diff --git a/expetator/monitors/laptop_power_monitor.py b/expetator/monitors/laptop_power_monitor.py
index 474c5b133855c2e8745d12e8d3dbed3bb5fe92c6..74abf0076ec8ac9a99c84cbb3f1d408fde24dd87 100755
--- a/expetator/monitors/laptop_power_monitor.py
+++ b/expetator/monitors/laptop_power_monitor.py
@@ -18,7 +18,7 @@ if __name__ == '__main__':
     
     stay=True
 
-    with open('/dev/shm/power_measures','w') as power_file:
+    with open('/tmp/expetator_power_measures','w') as power_file:
         power_file.write('#timestamp power\n')
 
     try:
@@ -30,7 +30,7 @@ if __name__ == '__main__':
             current_time=time.time()
             int_current_time=int(current_time)
     
-            with open('/dev/shm/power_measures','a') as power_file:
+            with open('/tmp/expetator_power_measures','a') as power_file:
                 power_file.write(str(int_current_time)+' '+str(watt)+'\n')
             time.sleep(1-(current_time-int_current_time))
     except:
diff --git a/expetator/monitors/lperf.py b/expetator/monitors/lperf.py
index 3470f491f798938d6734cfe7e573ae8a7d6c2074..78818372e8fc281cb582f816173b6563685cc892 100644
--- a/expetator/monitors/lperf.py
+++ b/expetator/monitors/lperf.py
@@ -31,7 +31,7 @@ class Lperf:
         self.executor = executor
 
         self.cmdline = '/tmp/bin/lperf stat -x "!" -I %s -a -A -e %s' % (self.interval, ','.join(self.names))
-        self.cmdline += ' -o /dev/shm/lperf_monitoring &'
+        self.cmdline += ' -o %s/lperf_monitoring &' % executor.tmp_dir
 
     def start(self):
         'Starts the monitoring right before the benchmark'
@@ -47,8 +47,8 @@ class Lperf:
         os.makedirs(filename_moj, exist_ok=True)
         if len(self.executor.hostnames) > 1:
             for hostname in self.executor.hostnames:
-                self.executor.local('oarcp %s:/dev/shm/lperf_monitoring %s/%s_%s_%s' %
-                                    (hostname, filename_moj, hostname, benchname, beg_time))
+                self.executor.local('oarcp %s:%s/lperf_monitoring %s/%s_%s_%s' %
+                                    (hostname, self.executor.tmp_dir, filename_moj, hostname, benchname, beg_time))
         else:
-            self.executor.local('cp /dev/shm/lperf_monitoring %s/%s_%s_%s' %
-                                    (filename_moj, 'localhost', benchname, beg_time))
+            self.executor.local('cp %s/lperf_monitoring %s/%s_%s_%s' %
+                                    (self.executor.tmp_dir, filename_moj, 'localhost', benchname, beg_time))
diff --git a/expetator/monitors/mojitos.py b/expetator/monitors/mojitos.py
index a2ae125e8a931a6b3cc852d1167ab3ab7efcf498..2e90acef8bab1134412e82edf1cc7e11c8d8b978 100644
--- a/expetator/monitors/mojitos.py
+++ b/expetator/monitors/mojitos.py
@@ -93,10 +93,7 @@ class Mojitos:
             self.cmdline += ' -r'
         if self.load:
             self.cmdline += ' -u'
-        if os.path.isdir('/dev/shm'):
-            self.monitoring_file = '/dev/shm/monitoring_moj'
-        else:
-            self.monitoring_file = '/tmp/expetator_monitoring_moj'
+        self.monitoring_file = '%s/monitoring_moj' executor.tmp_dir
         self.cmdline += ' -o %s &' % self.monitoring_file
 
 
diff --git a/expetator/monitors/power.py b/expetator/monitors/power.py
index 3fb2d45e230d66509267583af9ee28327a797ddb..4bbcbe0923da237b197d6c89dae041891a8ac31c 100644
--- a/expetator/monitors/power.py
+++ b/expetator/monitors/power.py
@@ -57,8 +57,8 @@ class Power:
 
                 result = [(raw['uid'], raw['timestamps'],raw['values']) for raw in raws]
         else:
-            self.executor.local('cp /dev/shm/power_measures %s' % target)
-            with open('/dev/shm/power_measures') as file_id:
+            self.executor.local('cp /tmp/expetator_power_measures %s' % target)
+            with open('/tmp/expetator_power_measures') as file_id:
                 content = [line.split() for line in file_id.readlines()[1:]]
             content = [(int(t), float(p)) for t,p in content]
             result = [('localhost',)+tuple(zip(*content))]