ekuznetcov / escheduler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EScheduler

Этот репозиторий содержитпроект EScheduler. EScheduler - это система сбора и анализа данных энергопотребления многопроцессорной вычислительной системы (ВС) кластерного типа, состоящая из подсистем сбора данных, подсистемы анализа данных и подсистемы визуализации данных.

Подсистема сбора данных

msr_exporter - это программное средство сбора данных об энергопотреблении ЦПУ на ВС с ОС Linux.

поддерживаемые платформы

msr_exporter поддерживает все архитектуры процессоров поддерживающие интерфейс RAPL

  • Intel начиная с архиетктуры Sandy Bridge
  • AMD начиная с архитктуры Pyzen

Для сбора данных msr_exporter использует msr-регистры

Всего существует три способа для чтения информации с доменов RAPL:

  • Читать msr-регистры напрямую с /dev/cpu/%d/msr
  • Через perf_event_open() interface (не поддерживается AMD)
  • Через sysfs powercap (не поддерживается AMD)

Для получения данных с powercup или sysfs используйте node_exporter Для получения данных с ГПУ NVidia используйте DCGM-Exporter

msr_exporter поддерживает домены RAPL package(PP0, PP1, DRAM), platform(PSys)

msr_exporter (пока не поддерживает AMD рахитектуру по причине. того, что не удалось выяснить какие регистры используются в AMD процессорах)

💾 Копиляция

msr_exporter написан на языке go

Для компиляции необходимо выполнить

go build main.go

Также необходимо убедиться что перееменные GOOS и GOARCH равны linux и amd64 соответственно

🚀 Начало работы

Перед началом работы необходимо установить драйвер

modprobe msr

Также понадобятся root права

Метриики экспортируются по адресу http://localhost:9876/metrics 💡 Systemd сервис

msr_exporter может быть установлен как сервис.

Для этого необходимо скопировать файл msr_exporter.service в /etc/systemd/system в ExecStart прописать путь до дирректории с исполняемым файлом

Подсиситема анализа данных

Подсистема анализа данных получает агрегированные данные от Prometheus по HTTP API и записывает их в постгрес, после при следующем запуске этой программы необходимо, если пользователь выбирает запуск задания с учетом энергопотребления, подсистема анализа данных смотрит на какаих ВС уже запускалось данная программа (если на какой-то системе она до этого не была запущена, считается что значение энергопотребления рравным нулю) и выбирает ту систему, на которой за время выполнения задания пиковое значение энергопотребления было наименьшим.

Подсистема визуализациии данных

Подсистема визуализации данных об энергопотреблении параллельных программ позволяет оценить максимальное, минимальное, среднее и суммарное значение энергопотребления как для одной, так и для нескольких параллельных программ пользователя. Данные об энергопотреблении могут представляются как в текстовом, так и в графическом виде с отображением диаграмм и графиков с помощью программного средства Grafana.

About


Languages

Language:Go 93.4%Language:HTML 6.6%