GithubHelp home page GithubHelp logo

krebrov001 / geopm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from geopm/geopm

0.0 1.0 0.0 18.5 MB

Global Extensible Open Power Manager

Home Page: https://geopm.github.io

License: BSD 3-Clause "New" or "Revised" License

Shell 2.73% Python 22.67% Makefile 3.30% C++ 61.07% C 7.03% M4 0.99% Fortran 2.19% HTML 0.03%

geopm's Introduction

GEOPM logo

GEOPM - Global Extensible Open Power Manager

Build Status version License

Web Pages

https://geopm.github.io
https://geopm.github.io/service.html
https://geopm.github.io/reference.html
https://geopm.slack.com

Summary

The Global Extensible Open Power Manager (GEOPM) is a framework for exploring power and energy optimizations on heterogeneous platforms.

With GEOPM you can:

  • Interact with hardware settings and sensors using a platform-agnostic interface
  • Restore changes to hardware settings when configuring process terminates
  • Profile applications to study their power and energy behavior
  • Automatically detect MPI and OpenMP phases in an application
  • Optimize MPI applications to improve energy efficiency or reduce the effects of work imbalance, system jitter, and manufacturing variation through built-in control algorithms
  • Develop your own runtime control algorithms through the extensible plugin architecture

Repository Organization

The GEOPM repository supports two software packages: the geopm-service package and the geopm package. The geopm-service package provides a Linux systemd service. The geopm package provides a runtime for distrubted HPC applications.

  • A build of the geopm-service package is required to build and run the geopm HPC runtime

  • All geopm-service package features may be used independently of the features provided by the geopm package

  • All run and build requirements of the geopm-service package are provided by commony used Linux distributions

  • The run and build requirements of the geopm package include several additional HPC specific dependencies

GEOPM Service

The files supporting the geopm-service package are all within the service subdirectory located in the root directory of the the GEOPM repository. Please refer to the service/README.rst file for further documentation about the GEOPM Service. Additionally a comprehensive overview of the GEOPM service is posted here:

https://geopm.github.io/service.html

GEOPM HPC Runtime

The geopm package provides many built-in features. An advanced use case is dynamically coordinating hardware settings across all compute nodes used by an distributed HPC application in response to the application's behavior and resource manager requests. The dynamic coordination is implemented as a hierarchical control system for scalable communication and decentralized control. The hierarchical control system can optimize for various objective functions including maximizing global application performance within a power bound or minimizing energy consumption with marginal degradation of application performance. The root of the control hierarchy tree can communicate with the system resource manager to extend the hierarchy above the individual MPI application and enable the management of system power resources for multiple MPI jobs and multiple users by the system resource manager.

More documentation on the GEOPM HPC Runtime is posted with our web documentation here:

https://geopm.github.io/runtime.html

Guide for Contributors

We appreciate all feedback on our project. Please see our contributing guide for how some guidelines on how to participate. This guide is located in the root of the GEOPM repository in a file called CONTRIBUTING.rst. This guide can also be viewed here:

https://geopm.github.io/contrib.html

Guide for GEOPM Developers

GEOPM is an open development project and we use Github to plan, review and test our work. The proccess we follow is documented here:

https://geopm.github.io/devel.html

this web page provides a guide for developers wishing to modify source code anywhere in the GEOPM repository for both the geopm-service and the geopm packages.

Status

This software is production quality as of version 1.0. We will be enforcing semantic versioning for all releases following version 1.0. We are very interested in feedback from the community. Refer to the ChangeLog a high level history of changes in each release. See github issues page for information about ongoing work and please provide feedback by opening issues. Test coverage by unit tests is lacking for some files and will continue to be improved. The line coverage results from gcov as reported by gcovr for the latest release can be found here

Some new features of GEOPM are still under development, and their interfaces may change before they are included in official releases. To enable these features in the GEOPM install location, configure GEOPM with the --enable-beta configure flag. The features currently considered unfinalized are the endpoint interface, and the geopmendpoint application.

License

The GEOPM source code is distributed under the 3-clause BSD license.

SEE COPYING FILE FOR LICENSE INFORMATION.

Last Update

2021 September 24

Christopher Cantalupo [email protected]
Brad Geltz [email protected]

ACKNOWLEDGMENTS

Development of the GEOPM software package has been partially funded through contract B609815 with Argonne National Laboratory.

geopm's People

Contributors

cmcantalupo avatar dianarg avatar bgeltz avatar dannosliwcd avatar lhlawson avatar krebrov001 avatar fkeceli avatar avilcheslopez avatar alawibaba avatar pathway27 avatar scoumeri avatar maiterth avatar xunjin avatar slabasan avatar rountree2 avatar asmaalrawi avatar amarathe84 avatar bensallen avatar etano avatar kelmanbee avatar crbaird avatar chriswasser avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.