Hi,
is there an energy agent version for the ARM aarch64 architecture? This site
https://developer.arm.com/products/software-development-tools/hpc/documentation/ipmi-energy-agent
only provides RPMs for the x86_64 architecture.
thanks
I figured out how to install the agent
# systemctl status ipmi-energy-agent.service ● ipmi-energy-agent.service - Arm IPMI Energy Agent Loaded: loaded (/usr/lib/systemd/system/ipmi-energy-agent.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-13 15:26:36 CST; 19h ago Docs: http://www.allinea.com/user-guide/forge/userguide.html Process: 38073 ExecStartPre=/bin/mkdir -m 0755 -p /var/spool/ipmi-energy-agent (code=exited, status=0/SUCCESS) Main PID: 38076 (ipmi-energy-age) CGroup: /system.slice/ipmi-energy-agent.service └─38076 /usr/sbin/ipmi-energy-agent smi 0 NodeDCpow... Feb 13 15:26:36 cn4002 systemd[1]: Starting Arm IPMI Energy Ag... Feb 13 15:26:36 cn4002 systemd[1]: Started Arm IPMI Energy Agent. Hint: Some lines were ellipsized, use -l to show in full.
I'm using Centos7 on aarch64. I installed the following rpm packages:
OpenIPMI-modalias-2.0.23-2.el7.aarch64 OpenIPMI-2.0.23-2.el7.aarch64 OpenIPMI-devel-2.0.23-2.el7.aarch64 ipmitool-1.8.18-7.el7.aarch64 OpenIPMI-libs-2.0.23-2.el7.aarch64
ncurses-devel ncurses ncurses-lib
Then I updated the makefile to point to the location of the libraries and header files
srcdir?=$(dir $(abspath $(lastword $(MAKEFILE_LIST)))) exec_prefix?=$(prefix) sbindir?=$(exec_prefix)/sbin sysconfdir?=$(prefix)/etc libdir?=$(prefix)/lib TARGET=ipmi-energy-agent VERSION=$(shell grep IPMI_ENERGY_AGENT_VERSION src/version.h | sed 's/[^"]*"\([0-9]*\.[0-9]*\).*/\1/') TARBALL=$(TARGET)-$(VERSION).tar.bz2 DEPS_ROOT=$(srcdir)/deps OPENIPMI_VERSION=2.0.21 OPENIPMI_PACKAGE=OpenIPMI-$(OPENIPMI_VERSION) OPENIPMI_ROOT=$(DEPS_ROOT)/$(OPENIPMI_PACKAGE) OPENIPMI_LIBDIR=$(OPENIPMI_ROOT)/lib/.libs OPENIPMI_UTILS_LIBDIR=$(OPENIPMI_ROOT)/utils/.libs OPENIPMI_UNIX_LIBDIR=$(OPENIPMI_ROOT)/unix/.libs OPENIPMI_TARGET=$(OPENIPMI_LIBDIR)/libOpenIPMI.a POPT_VERSION=1.16 POPT_PACKAGE=popt-$(POPT_VERSION) POPT_ROOT=$(DEPS_ROOT)/$(POPT_PACKAGE) POPT_LIBDIR=$(POPT_ROOT)/.libs POPT_TARGET=$(POPT_LIBDIR)/libpopt.a ALLINEA_FORGE_PATH?=/opt/arm/forge CFLAGS ?= -g -O2 SOURCES=counters.c ipmi.c main.c simulate.c HEADERS=counters.h ipmi.h main.h options.h simulate.h TESTS=map-test VPATH=src test all: $(TARGET) $(TARGET): $(SOURCES) $(HEADERS) $(CC) $(filter %.c,$^) $(CFLAGS) -o $(TARGET) -lrt -I/usr/include/OpenIPMI -L/usr/lib64/ -lOpenIPMI -lOpenIPMIutils -L/usr/lib64/pkgconfig -lOpenIPMIposix -lm $(filter-out map-test,$(TESTS)): %: %.c $(CC) $< $(CFLAGS) -o $@ map-test: map-test.c map-metric-plugin-api.c $(ALLINEA_FORGE_PATH)/map/metrics/lib-system-energy.so $(ALLINEA_FORGE_PATH)/lib/64/libmap-sampler.so $(CC) $^ $(CFLAGS) -o $@ -I$(ALLINEA_FORGE_PATH)/map/metrics/include -L$(ALLINEA_FORGE_PATH)/map/metrics -l-system-energy -Wl,-rpath -Wl,$(ALLINEA_FORGE_PATH)/map/metrics -Wl,-rpath -Wl,$(ALLINEA_FORGE_PATH)/lib/64 -lrt .PHONY: install uninstall clean tar rpm deb test install: install -d $(DESTDIR)$(sbindir)/ install $(TARGET) $(DESTDIR)$(sbindir)/ install -d $(DESTDIR)$(libdir)/systemd/system/ install -m 0644 lib/systemd/system/ipmi-energy-agent.service $(DESTDIR)$(libdir)/systemd/system/ install -d $(DESTDIR)$(sysconfdir)/init.d/ install -m 0644 etc/init.d/ipmi-energy-agent $(DESTDIR)$(sysconfdir)/init.d/ install -d $(DESTDIR)$(sysconfdir)/default/ install -m 0644 etc/default/ipmi-energy-agent $(DESTDIR)$(sysconfdir)/default/ uninstall: rm -f $(DESTDIR)$(sbindir)/$(TARGET) rm -f $(DESTDIR)$(libdir)/systemd/system/ipmi-energy-agent.service rm -f $(DESTDIR)$(etcdir)/init.d/ipmi-energy-agent clean: rm -f $(TARGET) $(TESTS) rm -rf $(OPENIPMI_ROOT) $(POPT_ROOT) rm -rf debian/ipmi-energy-agent tar: clean cd .. && tar -cjf $(TARBALL) ipmi-energy-agent rpm: tar topdir=$$(mktemp -d); \ mkdir $$topdir/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}; \ rpmbuild -ta --define="_topdir $$topdir" --define="_rpmdir .." --buildroot="$$topdir/BUILDROOT" ../$(TARBALL); \ ret=$$? \ rm -rf $$topdir \ exit $$ret deb: clean debuild -i -us -uc -b test: $(TARGET) $(TESTS) for test in $(filter-out map-test,$(TESTS)); do ./$$test; done PL_FOLDER=$$(mktemp -d); PL_FOLDER="$$PL_FOLDER" ./map-test; ret=$$?; rm -r "$$PL_FOLDER"; exit $$ret
Now i need to figure out how to use the arm tools to figure out usage based on these parameters. Suggestions? thanks
# ipmitool sdr | grep 'Watts' InputACpower | 560 Watts | ok TotalDCpower | 528 Watts | ok NodeDCpower | 224 Watts | ok #
Ha! Now that is actually quite awesome! :)
If you have that demon up and running, please install MAP (linux user-space profiling tool for C/C++, Fortran and Python), a component of Forge. The IPMI energy agent was designed to feed MAP with node-level energy data, and based on what I read here, I expect this to run out of the box now.
Go to this page: https://developer.arm.com/products/software-development-tools/hpc/downloads/download-arm-forge
You will find there the form to request a trial licence and the links to download the product.
If you need technical assistance, do feel free to reach out here. I will do what I can to help, otherwise please contact support-hpc-sw@arm.com directly.
We have a license. When I look at the different options, I don't see a power option for the CPU. I just see a power option for a NVIDIA GPU. Do you have any suggestions? thanks
I see. This restriction comes from the licence type you currently own. I think we should follow-up in private as this is a commercial matter rather than technical. Please send me an email at patrick.wohlschlegel@arm.com.
I have a trial license and as expected, it did not work. Node power was not an option.
Section 24.13 Custom metrics from the Forge user guide mentions the following document: allinea metric plugin interface. I did a quick search on the arm website and i did not find any documents or mention of it. could you point me to it?
thanks.
Hi there,
I am sorry it didn't work. It was worth a shot. You will find the documentation in the installation directory of Forge, in /path/to/forge/map/metrics/doc/allinea-metric-plugin-interface.
I hope this helps!
Patrick