Commit 634eda22 authored by Lluis Alonso's avatar Lluis Alonso
Browse files

Initial push for 4.1 release

parent 91d67af9
### EAR4.1
- Meta EARGM
- Support for N jobs in node
- CPU power models for N jobs
- Python apps loaded automatically
- Suport for MPI+Python through env var.
- Reports plugins in EARL, EARD and EARDBD
- Postgress support
- Soft cluster powercap
- New AMD virtual p-states support using max frequency and different P-states
- New RPC system in EARL-EARD communication (including locks)
- Partial support for different schedulers (PBS)
- New task messages between EARPlug and EARD
- New DCMI and INM-Freeipmi based energy plugins
- Likwid support for IceLake Meory bandwith computation
- Icelake support
- msr_safe
- HEROES plugin
### EAR4.0
- AMD virtual p-states support and DF frequency management included
- AMD optimization based on min_energy and min_time
......
......@@ -3,6 +3,8 @@ export FEAT_AVX512
export FEAT_RESEARCH
export FEAT_GPU_OPT
export FEAT_AMD_OSCPUFREQ
export FEAT_DB_MYSQL
export FEAT_DB_PSQL
export CC
export CC_FLAGS
......@@ -24,6 +26,11 @@ export PAPI_BASE
export PAPI_CFLAGS
export PAPI_LDFLAGS
export CUDA_BASE
export LIKWID_BASE
export LIKWID_CFLAGS
export FREEIPMI_BASE
export FREEIPMI_CFLAGS
export FREEIPMI_LDFLAGS
export ROOTDIR
export SRCDIR
......
# Features
# Compiles the MPI EAR library version or non-MPI.
FEAT_MPI_API = 1
# This is automatically generated based on the CPU version detected.
FEAT_AVX512 = @FEAT_AVX512@
# Compiles the MPI EAR library version or non-MPI
FEAT_MPI_API = @FEAT_MPI_API@
# This is automatically generated based on the CPU version detected
FEAT_AVX512 = @FEAT_AVX512@
# Extend the set of files installed.
FEAT_RESEARCH = 0
FEAT_RESEARCH = 0
# Enables the installation of GPU optimization policies. If 0, only monitoring is supported.
FEAT_GPU_OPT = 1
# Disables the utilization of virtual PSTATES in AMD and selects OS CPUFreq.
FEAT_GPU_OPT = 0
# Disables the utilization of virtual PSTATES in AMD and selects OS CPUFreq
FEAT_AMD_OSCPUFREQ = 0
# Uses mysql API
FEAT_DB_MYSQL = @FEAT_DB_MYSQL@
# Uses Postgress API
FEAT_DB_PSQL = @FEAT_DB_PGSQL@
# Compilers
CC = @CC@
......@@ -17,18 +21,23 @@ MPICC = @MPICC@
MPICC_FLAGS = @MPICC_FLAGS@
# Includes
MPI_BASE = @MPI_DIR@
MPI_CFLAGS = @MPI_CPPFLAGS@
MPI_VERSION = @MPI_VERSION@
GSL_BASE = @GSL_DIR@
GSL_CFLAGS = @GSL_CPPFLAGS@
GSL_LDFLAGS = @GSL_LDFLAGS@ @GSL_LIBS@
SLURM_BASE = @SLURM_DIR@
SLURM_CFLAGS = @SLURM_CPPFLAGS@
DB_BASE = @DB_DIR@
DB_CFLAGS = @DB_CPPFLAGS@
DB_LDFLAGS = @DB_LDFLAGS@ @DB_LIBS@
CUDA_BASE = @CUDA_DIR@
MPI_BASE = @MPI_DIR@
MPI_CFLAGS = @MPI_CPPFLAGS@
MPI_VERSION = @MPI_VERSION@
GSL_BASE = @GSL_DIR@
GSL_CFLAGS = @GSL_CPPFLAGS@
GSL_LDFLAGS = @GSL_LDFLAGS@ @GSL_LIBS@
SLURM_BASE = @SLURM_DIR@
SLURM_CFLAGS = @SLURM_CFLAGS@
DB_BASE = @DB_DIR@
DB_CFLAGS = @DB_CFLAGS@
DB_LDFLAGS = @DB_LDFLAGS@ @DB_LIBS@
CUDA_BASE = @CUDA_DIR@
LIKWID_BASE = @LIKWID_DIR@
LIKWID_CFLAGS = @LIKWID_CFLAGS@
FREEIPMI_BASE = @FREEIPMI_DIR@
FREEIPMI_CFLAGS = @FREEIPMI_CFLAGS@
FREEIPMI_LDFLAGS = @FREEIPMI_LDFLAGS@
# Directories
ROOTDIR = $(shell pwd)
......
# INCLUDES
m4_include([m4/ax_compare_version.m4])
m4_include([m4/ax_features.m4])
m4_include([m4/x_ac_pgsql.m4])
m4_include([m4/x_ac_mysql.m4])
m4_include([m4/x_ac_slurm.m4])
m4_include([m4/x_ac_cuda.m4])
m4_include([m4/x_ac_gsl.m4])
m4_include([m4/ax_defaults.m4])
m4_include([m4/ac_freeipmi.m4])
m4_include([m4/ac_likwid.m4])
m4_include([m4/ac_pgsql.m4])
m4_include([m4/ac_mysql.m4])
m4_include([m4/ac_slurm.m4])
m4_include([m4/ac_cuda.m4])
m4_include([m4/ac_pbs.m4])
m4_include([m4/ac_gsl.m4])
# INIT
AC_PREREQ([2.69])
AC_INIT([EAR], [4.0])
AC_INIT([EAR], [4.1])
AC_LANG(C)
# PROGRAMS TEST
......@@ -17,92 +21,38 @@ AC_PROG_CC
AC_PROG_AWK
AC_PROG_GREP
############
# DEFAULTS #
############
#
AX_SET_DEFAULTS
################
# PRE-FEATURES #
################
#
AX_PRE_OPT_FEATURES
AX_BEFORE_FEATURES
############
# FEATURES #
############
#
############
# GSL TEST #
############
#
# Installation directories:
# --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local]
# --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX]
#
# By default, `make install' will install all the files in
# `/usr/local/bin', `/usr/local/lib' etc. You can specify
# an installation prefix other than `/usr/local' using `--prefix',
# for instance `--prefix=$HOME'.
#
# For better control, use the options below.
#
# Fine tuning of the installation directories:
# --bindir=DIR user executables [EPREFIX/bin]
# --sbindir=DIR system admin executables [EPREFIX/sbin]
# --libdir=DIR object code libraries [EPREFIX/lib]
# --includedir=DIR C header files [PREFIX/include]
#
X_AC_CUDA
X_AC_FREEIPMI
X_AC_GSL
#########
# SLURM #
#########
# Installation directories:
# --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local]
# --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX]
#
# By default, `make install' will install all the files in
# `/usr/local/bin', `/usr/local/lib' etc. You can specify
# an installation prefix other than `/usr/local' using `--prefix',
# for instance `--prefix=$HOME'.
#
# For better control, use the options below.
#
# Fine tuning of the installation directories:
# --bindir=DIR user executables [EPREFIX/bin]
# --sbindir=DIR system admin executables [EPREFIX/sbin]
# --libdir=DIR object code libraries [EPREFIX/lib]
# --includedir=DIR C header files [PREFIX/include]
#
X_AC_SLURM
#########
# PGSQL #
#########
#
X_AC_LIKWID
X_AC_PGSQL
#########
# MYSQL #
#########
#
X_AC_MYSQL
#########
# CUDA #
#########
#
X_AC_CUDA
X_AC_PBS
X_AC_SLURM
#################
# POST-FEATURES #
#################
#
AX_POST_OPT_FEATURES
AX_AFTER_FEATURES
##########
# OUTPUT #
......@@ -135,7 +85,7 @@ AC_DEFUN([AC_FEATURE_CHECK],
echo "---------------------------------------Checking summary --"
AC_DEPENDANCY_CHECK($GSL_DIR, GSL dependancy found, 1)
AC_DEPENDANCY_CHECK($SLURM_DIR, SLURM dependancy found, 0)
AC_DEPENDANCY_CHECK($SCHED_DIR, SLURM/PBS dependancy found ($SCHED_NAME), 0)
AC_DEPENDANCY_CHECK($DB_DIR, Database dependancy found ($DB_NAME), 1)
echo "----------------------------------------------------------"
......@@ -158,3 +108,4 @@ AC_CONFIG_FILES([Makefile
etc/rpms/specs/ear.spec])
AC_CONFIG_FILES([etc/rpms/rpmbuild.sh], [chmod +x etc/rpms/rpmbuild.sh])
AC_OUTPUT
AX_AFTER_OUTPUT
File added
This diff is collapsed.
This diff is collapsed.
% Latex footer for doxygen 1.8.14
%--- End generated contents ---
% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{Index}
\printindex
\end{document}
% Latex header for doxygen 1.8.14
\documentclass[twoside]{book}
% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{calc}
\usepackage{doxygen}
\usepackage[export]{adjustbox} % also loads graphicx
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage[table]{xcolor}
% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\setlength{\parskip}{3ex plus 2ex minus 2ex}
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex
% Hyperlinks (required, but should be loaded last)
\usepackage{ifpdf}
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode%
}
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
%===== C O N T E N T S =====
\begin{document}
% Titlepage & ToC
\hypersetup{pageanchor=false,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
\includegraphics[width=0.50\textwidth]{$projectlogo}\\
\vspace*{1cm}
{\Large EAR 4.1}
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\hypersetup{pageanchor=true}
%--- Begin generated contents ---
......@@ -27,7 +27,7 @@ NodeDaemonPort=50001
# Frequency at wich the periodic metrics are reported, in seconds.
NodeDaemonPowermonFreq=60
# Max frequency used by eard. It's max frequency but min pstate.
NodeDaemonMaxPstate=1
NodeDaemonMinPstate=1
NodeDaemonTurbo=0
# Defines whether EARD uses the DB.
NodeUseDB=1
......@@ -39,6 +39,7 @@ NodeDaemonForceFrequencies=1
NodeDaemonVerbose=1
# When set to 1, the output is saved in 'TmpDir'/eard.log (common configuration) as a log file.
NodeUseLog=1
EARDReportPlugins=eardbd.so
#---------------------------------------------------------------------------------------------------
# EAR Database Manager (EARDBD): Update this section to change EARDBD configuration.
......@@ -60,6 +61,7 @@ DBDaemonMemorySize=120
# When set to 1, the output is saved in 'TmpDir'/eardbd.log (common configuration) as a log file.
DBDaemonUseLog=1
EARDBDReportPlugins=mysql.so
#---------------------------------------------------------------------------------------------------
# EAR Library (EARL): These options modify internal EARL behaviour. Do not modify except you are an expert.
......@@ -79,11 +81,12 @@ DynaisTimeout=15
LibraryPeriod=10
# EAR will check every N mpi calls whether it must go to periodic mode or not.
CheckEARModeEvery=1000
# EAR library default report plugin
EARLReportPlugins=eard.so
#---------------------------------------------------------------------------------------------------
# EAR Global Manager (EARGMD): Update that section to use EARGM.
#---------------------------------------------------------------------------------------------------
EARGMHost=node1001
#
# Use aggregated periodic metrics or periodic power metrics.
# Aggregated metrics are only available when EARDBD is running.
......@@ -134,6 +137,16 @@ EARGMPowerCapResumeLimit=40
# Format for action is: command_name current_power current_limit total_idle_nodes total_idle_power
EARGMPowerCapResumeAction=no_action
# EARGMs must be specified with a unique id, their node and the port that receives remote
# connections. An EARGM can also act as meta-eargm if the meta field is filled, and it will
# control the EARGMs whose ids are in said field. If to EARGMs are in the same node,
# setting the EARGMID environment variable overrides the node field and chooses the characteristics
# of the EARGM with the correspoding id. If energy is set to 0, cluster_energy_cap will be disabled
# for that EARGM. Currently, only 1 cluster_energy_cap is supported.
EARGMId=1 energy=1800 power=600 node=node1 port=50100 meta=1,2,3
EARGMId=2 energy=0 power=500 node=node1 port=50101
EARGMId=3 energy=0 power=500 node=node2 port=50100
#---------------------------------------------------------------------------------------------------
# Common configuration
#---------------------------------------------------------------------------------------------------
......@@ -146,16 +159,6 @@ Verbose=0
# and can be accesed using a expension, uncommmet next line and define 'netext' accordingly.
#NetworkExtension=netext
#---------------------------------------------------------------------------------------------------
# Plugin configuration. These values are used for the whole cluster except a specific configuration is
# explicitly applied to one tag. They are mandatory since they are used by default.
#---------------------------------------------------------------------------------------------------
## Energy readings sources: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/energy
energy_plugin=energy_nm.so
### Energy models: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/models
energy_model=avx512_model.so
### Powercap plugins: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/powercap
powercap_plugin=dvfs.so
#---------------------------------------------------------------------------------------------------
# Authorized Users
......@@ -173,13 +176,22 @@ AuthorizedGroups=grp1,grp2
#---------------------------------------------------------------------------------------------------
# Tags are used for architectural descriptions. Max. AVX frequencies are used in predictor models
# and are SKU-specific. Max. and min. power are used for warning and error tracking.
# Powercap specifies the maximum power a node is allowed to use by default. If EARGM is actively
# monitoring the cluster's powercap, max_powercap can be used to ensure that a node's power will never
# go beyond that value, regardless of the free power available cluster-wide. A different than the
# default powercap plugin can be specified for nodes using the tag.
# Powercap specifies the maximum power a node is allowed to use by default. If an EARGM is
# controlling the cluster with mode UNLIMITED (powercap=1) max_powercap is the set power that
# a node will receive if the cluster needs to be power capped (otherwise it runs
# with unlimited power). A different than the default powercap plugin can be specified for nodes
# using the tag. POWERCAP=0 --> disabled, POWERCAP=1 -->unlimited, POWERCAP=N (> 1) limits node to N watts
# At least a default tag is mandatory to be included in this file for a cluster to work properly.
Tag=6148 default=yes max_avx512=2.2 max_avx2=2.6 max_power=500 min_power=50 error_power=600 coeffs=coeffs.default powercap=0 powercap_plugin=nm.so
Tag=6126 max_avx512=2.3 max_avx2=2.9 ceffs=coeffs.6126.default max_power=600 error_power=700 powercap=150 max_powercap=250
#
#
# List of accepted options is: max_avx512(GHz), max_avx2(GHz), max_power(W), min_power(W), error_power(W), coeffs(filename),
# powercap(W), powercap_plugin(filename), energy_plugin(filename), gpu_powercap_plugin(filename), max_powercap(W), gpu_def_freq(GHz),
# cpu_max_pstate(0..max_pstate), imc_max_pstate(0..max_imc_pstate), energy_model(filename)
# imc_max_freq, imc_min_freq
#
#
Tag=6148 default=yes max_avx512=2.2 max_avx2=2.6 max_power=500 min_power=50 error_power=600 coeffs=coeffs.default powercap=1 powercap_plugin=dvfs.so energy_plugin=energy_nm.so
Tag=6148_GPU default=yes max_avx512=2.2 max_avx2=2.6 max_power=800 min_power=150 error_power=1000 coeffs=coeffs.default powercap=1 powercap_plugin=dvfs.so energy_plugin=energy_nm.so gpu_powercap_plugin=gpu.so
#---------------------------------------------------------------------------------------------------
## Power policies
......@@ -187,17 +199,19 @@ Tag=6126 max_avx512=2.3 max_avx2=2.9 ceffs=coeffs.6126.default max_power=600 err
#
## Policy names must be exactly file names for policies installeled in the system.
DefaultPowerPolicy=min_time
Policy=monitoring Settings=0 DefaultFreq=2.4 Privileged=0
Policy=min_time Settings=0.7 DefaultFreq=2.0 Privileged=0
Policy=min_energy Settings=0.05 DefaultFreq=2.4 Privileged=1
Policy=monitoring Settings=0 DefaultPstate=1 Privileged=0
Policy=min_time Settings=0.7 DefaultPstate=4 Privileged=0
Policy=min_energy Settings=0.05 DefaultPstate=1 Privileged=1
#
# For homogeneous systems, default frequencies can be easily specified using freqs.
# For heterogeneous systems it is preferred to use pstates or use tags
#
# Example with pstates (lower pstates corresponds with higher frequencies). Pstate=1 is nominal and 0 is turbo.
#Policy=monitoring Settings=0 DefaultPstate=1 Privileged=0
#Policy=min_time Settings=0.7 DefaultPstate=4 Privileged=0
#Policy=min_energy Settings=0.05 DefaultPstate=1 Privileged=1
# Example with freqs (lower pstates corresponds with higher frequencies). Pstate=1 is nominal and 0 is turbo
#Policy=monitoring Settings=0 DefaultFreq=2.4 Privileged=0
#Policy=min_time Settings=0.7 DefaultFreq=2.0 Privileged=0
#Policy=min_energy Settings=0.05 DefaultFreq=2.4 Privileged=1
#Example with tags
#Policy=monitoring Settings=0 DefaultFreq=2.6 Privileged=0 tag=6126
......@@ -214,7 +228,8 @@ Policy=min_energy Settings=0.05 DefaultFreq=2.4 Privileged=1
# Privileged users, accounts and groups are allowed to use EnergyTags.
# The "allowed" TAGs are defined by row together with the priviledged user/group/account.
#
EnergyTag=cpu-intensive pstate=1
EnergyTag=cpu-intensive pstate=1 users=all
EnergyTag=turbo pstate=0
EnergyTag=memory-intensive pstate=4 users=usr1,usr2 groups=grp1,grp2 accounts=acc1,acc2
#---------------------------------------------------------------------------------------------------
......@@ -222,7 +237,9 @@ EnergyTag=memory-intensive pstate=4 users=usr1,usr2 groups=grp1,grp2 accounts=ac
#---------------------------------------------------------------------------------------------------
# It is mandatory to specify all the nodes in the cluster, grouped by islands. More than one line
# per island must be supported to hold nodes with different names or for pointing to different
# EARDBDs through its IPs or hostnames.
# EARDBDs through its IPs or hostnames.
# EARGMID is the field that specifies which EARGM controls the nodes in that line. If no EARGMID
# is specified, it will pick the first EARGMID value that is found (ie, the previous line's EARGMID).
#
#
......@@ -230,9 +247,10 @@ EnergyTag=memory-intensive pstate=4 users=usr1,usr2 groups=grp1,grp2 accounts=ac
# two types of EARDBDs configurations.
#
Island=0 Nodes=node10[01-80] DBIP=node1081 DBSECIP=node1082
Island=0 Nodes=node10[01-80] DBIP=node1081 DBSECIP=node1082 EARGMID=1
# These nodes are in island0 using different DB connections and with a different architecture.
# These nodes are in island0 using different DB connections and with a different architecture.
# These nodes will use the same EARGM as the previous nodes.
Island=0 Nodes=node11[01-80] DBIP=node1084 DBSECIP=node1085 tag=6126
# These nodes are is island0 and will use default values for DB connection (line 0 for island0) and default tag.
Island=0 Nodes=node12[01-80]
......
......@@ -32,12 +32,11 @@ DBDaemonMemorySize=120
# EAR Library (EARL)
#---------------------------------------------------------------------------------------------------
CoefficientsDir=@sysconfdir@/ear/coeffs
EARLReportPlugins=eard.so
#---------------------------------------------------------------------------------------------------
# EAR Global Manager (EARGMD) : Update that section to use EARGM
#---------------------------------------------------------------------------------------------------
EARGMHost=node1001
# Use aggregated periodic metrics or periodic power metrics. Aggregated metrics are only available
# when EARDBD is running
EARGMUseAggregated=1
......@@ -73,6 +72,14 @@ EARGMPowerCapResumeLimit=40
# Format for action is: command_name current_power current_limit total_idle_nodes total_idle_power
EARGMPowerCapResumeAction=no_action
# EARGMs must be specified with a unique id, their node and the port that receives remote
# connections. An EARGM can also act as meta-eargm if the meta field is filled, and it will
# control the EARGMs whose ids are in said field. If to EARGMs are in the same node,
# setting the EARGMID environment variable overrides the node field and chooses the characteristics
# of the EARGM with the correspoding id.
EARGMId=1 energy=1800 power=600 node=node1 port=50100 meta=1,2
EARGMId=2 energy=1800 power=500 node=node2 port=50100
#---------------------------------------------------------------------------------------------------
# Common configuration
#---------------------------------------------------------------------------------------------------
......@@ -82,16 +89,6 @@ InstDir=@prefix@
# Network extension (using another network instead of the local one). If compute nodes must be accessed from login nodes with a network different than default, and can be accesed using a expension, uncommmet next line and define 'netext' accordingly.
# NetworkExtension=netext
#---------------------------------------------------------------------------------------------------
# Plugin configuration. These values are used for the whole cluster except a specific configuration is
# explicitly applied to one tag. They are mandatory since they are used by default
#---------------------------------------------------------------------------------------------------
## Energy readings sources: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/energy
energy_plugin=energy_nm.so
## Energy models: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/models
energy_model=avx512_model.so
## Powercap plugins: List of plugins available at $EAR_INSTALL_PATH/lib/plugins/powercap
powercap_plugin=inm.so
#---------------------------------------------------------------------------------------------------
# Authorized Users
......@@ -111,8 +108,13 @@ AuthorizedGroups=grp1,grp2
# monitoring the cluster's powercap, max_powercap can be used to ensure that a node's power will never
# go beyond that value, regardless of the free power available cluster-wide.
# At least a default tag is mandatory to be included in this file for a cluster to work properly.
Tag=6148 default=yes max_avx512=2.2 max_avx2=2.6 max_power=500 min_power=50 error_power=600 coeffs=coeffs.default powercap=0
Tag=6126 max_avx512=2.3 max_avx2=2.9 ceffs=coeffs.6126.default max_power=600 error_power=700 powercap=0
# default powercap plugin can be specified for nodes using the tag. POWERCAP=0 --> disabled, POWERCAP=1 -->unlimited, POWERCAP=N (> 1) limits node to N watts
Tag=6148 default=yes max_avx512=2.2 max_avx2=2.6 max_power=500 min_power=50 error_power=600 coeffs=coeffs.default powercap=1 powercap_plugin=dvfs.so energy_plug
in=energy_nm.so
Tag=6148_GPU default=yes max_avx512=2.2 max_avx2=2.6 max_power=800 min_power=150 error_power=1000 coeffs=coeffs.default powercap=1 powercap_plugin=dvfs.so energy_plugin=energy_nm.so gpu_powercap_plugin=gpu.so
#---------------------------------------------------------------------------------------------------
## Power policies
......@@ -120,16 +122,18 @@ Tag=6126 max_avx512=2.3 max_avx2=2.9 ceffs=coeffs.6126.default max_power=600 err
#
## policy names must be exactly file names for policies installeled in the system
DefaultPowerPolicy=min_time
Policy=monitoring Settings=0 DefaultFreq=2.4 Privileged=0
Policy=min_time Settings=0.7 DefaultFreq=2.0 Privileged=0
Policy=min_energy Settings=0.05 DefaultFreq=2.4 Privileged=1
Policy=monitoring Settings=0 DefaultPstate=1 Privileged=0
Policy=min_time Settings=0.7 DefaultPstate=4 Privileged=0
Policy=min_energy Settings=0.05 DefaultPstate=1 Privileged=1
# For homogeneous systems, default frequencies can be easily specified using freqs, for heterogeneous systems it is preferred to use pstates or use tags