<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cc-Energy-Manager on ClusterCockpit</title><link>/categories/cc-energy-manager/</link><description>Recent content in Cc-Energy-Manager on ClusterCockpit</description><generator>Hugo</generator><language>en</language><atom:link href="/categories/cc-energy-manager/index.xml" rel="self" type="application/rss+xml"/><item><title>Commands</title><link>/docs/reference/cc-energy-manager/ccem-commands/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/cc-energy-manager/ccem-commands/</guid><description>&lt;h2 id="build">Build&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>make
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This produces the &lt;code>cc-energy-manager&lt;/code> binary in the repository root.&lt;/p>
&lt;h2 id="run">Run&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>./cc-energy-manager &lt;span style="color:#ce5c00;font-weight:bold">[&lt;/span>options&lt;span style="color:#ce5c00;font-weight:bold">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="options">Options&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Flag&lt;/th>
 &lt;th>Default&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>-config &amp;lt;path&amp;gt;&lt;/code>&lt;/td>
 &lt;td>&lt;code>./config.json&lt;/code>&lt;/td>
 &lt;td>Path to the JSON configuration file&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>-loglevel &amp;lt;level&amp;gt;&lt;/code>&lt;/td>
 &lt;td>&lt;code>warn&lt;/code>&lt;/td>
 &lt;td>Logging verbosity: &lt;code>debug&lt;/code>, &lt;code>info&lt;/code>, &lt;code>warn&lt;/code>, &lt;code>err&lt;/code>, &lt;code>fatal&lt;/code>, &lt;code>crit&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>-logdate&lt;/code>&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;td>Prefix every log line with date and time&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>-once&lt;/code>&lt;/td>
 &lt;td>&lt;code>false&lt;/code>&lt;/td>
 &lt;td>Run all collectors once and then exit (useful for testing)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="example">Example&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>./cc-energy-manager -config /etc/cc-energy-manager/config.json -loglevel info -logdate
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="signals">Signals&lt;/h2>
&lt;p>&lt;code>cc-energy-manager&lt;/code> handles the following UNIX signals for graceful shutdown:&lt;/p></description></item><item><title>Configuration</title><link>/docs/reference/cc-energy-manager/ccem-configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/cc-energy-manager/ccem-configuration/</guid><description>&lt;p>Configuration is provided as a JSON file. The default path is &lt;code>./config.json&lt;/code> in the working directory; an alternative path can be specified with the &lt;code>-config&lt;/code> flag.&lt;/p>
&lt;p>The configuration has four required top-level sections: &lt;code>receivers&lt;/code>, &lt;code>sinks&lt;/code>, &lt;code>controller&lt;/code>, and &lt;code>clusters&lt;/code>.&lt;/p>
&lt;h2 id="receivers-section">Receivers Section&lt;/h2>
&lt;p>A named map of receiver configurations. Each receiver defines a source from which &lt;code>cc-energy-manager&lt;/code> ingests metric messages.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&amp;#34;receivers&amp;#34;&lt;/span>&lt;span style="color:#a40000">:&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;&amp;lt;name&amp;gt;&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;type&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;nats&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;address&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;nats-server.example.org&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;port&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;4222&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;subject&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;metrics.subject&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Fields (NATS receiver):&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;code>type&lt;/code> (string, required): Receiver type. Currently &lt;code>&amp;quot;nats&amp;quot;&lt;/code>.&lt;/li>
&lt;li>&lt;code>address&lt;/code> (string, required): Hostname or IP of the NATS server.&lt;/li>
&lt;li>&lt;code>port&lt;/code> (string, required): Port of the NATS server.&lt;/li>
&lt;li>&lt;code>subject&lt;/code> (string, required): NATS subject to subscribe to.&lt;/li>
&lt;/ul>
&lt;h2 id="sinks-section">Sinks Section&lt;/h2>
&lt;p>A named map of sink configurations. Each sink defines a destination for processed metric messages.&lt;/p></description></item><item><title>cc-energy-manager</title><link>/docs/reference/cc-energy-manager/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/cc-energy-manager/</guid><description>&lt;div class="pageinfo pageinfo-primary">
&lt;p>Reference information regarding the ClusterCockpit component &amp;ldquo;cc-energy-manager&amp;rdquo; (&lt;a href="https://github.com/ClusterCockpit/cc-energy-manager" title="See GitHub">GitHub Repo&lt;/a>).&lt;/p>

&lt;/div>

&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>&lt;code>cc-energy-manager&lt;/code> is a daemon that dynamically adjusts power limits on compute nodes of an HPC cluster to automatically optimize energy consumption. It is part of the &lt;a href="https://clustercockpit.org/">ClusterCockpit ecosystem&lt;/a> and integrates with &lt;a href="https://github.com/ClusterCockpit/cc-metric-collector">cc-metric-collector&lt;/a> for metrics and &lt;a href="https://github.com/ClusterCockpit/cc-node-controller">cc-node-controller&lt;/a> for applying power limit changes.&lt;/p>
&lt;h2 id="problem-and-motivation">Problem and Motivation&lt;/h2>
&lt;p>With large HPC systems, power draw is an ever-growing concern for grid infrastructure and environmental footprint. Modern CPUs and GPUs expose integrated power management that allows lowering maximum power limits (the opposite of overclocking). When a power limit is reduced, the chip&amp;rsquo;s internal power management lowers clock speeds to stay within budget — reducing both power draw and performance.&lt;/p></description></item></channel></rss>