From dc98091e4c0ea63d5081600de3bd0edadefc6a70 Mon Sep 17 00:00:00 2001
From: Georges Da Costa <dacosta@irit.fr>
Date: Tue, 4 Mar 2025 17:07:04 +0100
Subject: [PATCH] Adds GPU monitor to mojitO/S plugin

Closes #4
---
 expetator/monitors/mojitos.py | 11 ++++++++---
 setup.py                      |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/expetator/monitors/mojitos.py b/expetator/monitors/mojitos.py
index a47b6ca..f5f8a36 100644
--- a/expetator/monitors/mojitos.py
+++ b/expetator/monitors/mojitos.py
@@ -28,16 +28,18 @@ perf_names = {'cpu_cycles', 'instructions', 'cache_references', 'cache_misses',
               'cpu_clock', 'task_clock', 'page_faults', 'context_switches',
               'cpu_migrations', 'page_faults_min', 'page_faults_maj',
               'alignment_faults', 'emulation_faults', 'dummy', 'bpf_output'}
+gpu_names = {'gpu'}
 
 def get_names():
-    return network_names | rapl_names | load_names | perf_names | infiniband_names
+    return network_names | rapl_names | load_names | perf_names | infiniband_names | gpu_names
 
 def get_structured_names():
     return {'network':network_names,
             'rapl':rapl_names,
             'load':load_names,
             'perfct':perf_names,
-            'infiniband': infiniband_names}
+            'infiniband': infiniband_names,
+            'gpu': gpu_names}
 
 class Mojitos:
     'Monitoring using MojitO/S'
@@ -48,7 +50,8 @@ class Mojitos:
         self.rapl = len(sensor_set & rapl_names) != 0
         self.load = len(sensor_set & load_names) != 0    
         self.infiniband = len(sensor_set & infiniband_names) != 0    
-        
+        self.gpu = len(sensor_set & gpu_names) != 0
+
         self.executor = None
 
         self.names = sensor_set
@@ -94,6 +97,8 @@ class Mojitos:
             self.cmdline += ' -r'
         if self.load:
             self.cmdline += ' -u'
+        if self.gpu:
+            self.cmdline += ' -n'
         self.monitoring_file = '%s/monitoring_moj' % executor.tmp_dir
         self.cmdline += ' -o %s &' % self.monitoring_file
 
diff --git a/setup.py b/setup.py
index 67653d4..912eb00 100644
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
 
 setuptools.setup(
     name="expetator",
-    version="0.3.24",
+    version="0.3.25",
     author="Georges Da Costa",
     author_email="georges.da-costa@irit.fr",
     description="A framework for monitoring HPC applications using DVFS",
-- 
GitLab