Code Monkey home page Code Monkey logo

xdmod's Introduction

Open XDMoD

XDMoD (XD Metrics on Demand) is an NSF-funded open source tool designed to audit and facilitate the utilization of the XSEDE cyberinfrastructure by providing a wide range of metrics on XSEDE resources, including resource utilization, resource performance, and impact on scholarship and research. The XDMoD framework is designed to meet the following objectives:

  1. Provide the user community with a tool to manage their allocations and optimize their resource utilization,
  2. Provide operational staff with the ability to monitor and tune resource performance,
  3. Provide management with a tool to monitor utilization, user base, and performance of resources, and
  4. Provide metrics to help measure scientific impact.

While initially focused on the XSEDE program, Open XDMoD has been created to be adaptable to any HPC environment.

For more information, including information about additional Open XDMoD capabilities provided as optional modules, please visit the Open XDMoD website.

Installation

Prebuilt packages of Open XDMoD are available as releases on GitHub. Packages for Open XDMoD modules are available as releases in their respective repositories.

See the installation instructions on the Open XDMoD website for additional information.

Contributing

Feedback is always welcome, and contributions are greatly appreciated! Before getting started, please see our contributing guidelines.

Developing

Development on Open XDMoD and its modules can be started using either Repo or Git. If you are unsure which to start with, try Repo, as it is easy to transition from a Repo workflow to a pure Git workflow. If you don't want to install yet another tool, using Git will work just fine.

Using Repo

To assist with initial setup and development across Open XDMoD and its modules, we support the use of Repo, a tool built by the Android development team to help manage multi-repository projects. We supply a Repo manifest repository that can be used to get started with Open XDMoD and first-party modules.

The steps below will get you started, but further documentation on using Repo can be found here. At any point, standard Git commands may be used in individual project directories, as the directories are simply standard Git repositories.

To clone Open XDMoD and first-party modules, run the following commands, substituting in the branch for the version you wish you base your work on (e.g. xdmod6.5):

repo init -u [email protected]:ubccr/xdmod-repo-manifest -b [branch]
repo sync

Note that unlike git clone, Repo does not automatically create a local branch tracking the initial branch that was checked out (although you can create these branches manually, if you wish, by running repo forall -c 'git checkout [branch]').

To add forks of the various projects to all repositories at once, run this command, substituting in your GitHub username:

repo forall -c 'git remote add origin [email protected]:[username]/$REPO_PROJECT'

To start a branch on one or more projects, use this command:

repo start [branch] [projects...]

Using Git

To get started on core Open XDMoD development, simply clone the Open XDMoD repository.

To work on an Open XDMoD module, one option is to clone the module repository directly inside of your Open XDMoD repository's open_xdmod/modules directory. If your module repository is named with the xdmod- prefix, remove it from the clone's directory name. Alternatively, you may clone the module repository elsewhere and create a symbolic link to it from open_xdmod/modules.

For example, to work on your fork of the SUPReMM module using a direct clone, run this command, substituting in your GitHub username and Open XDMoD repo location:

git clone [email protected]:[username]/xdmod-supremm [xdmod_repo]/open_xdmod/modules/supremm

To work on your fork of the SUPReMM module using an external clone and a symbolic link, run these commands, substituting in your GitHub username and the relevant paths:

git clone [email protected]:[username]/xdmod-supremm [supremm_repo]
ln -s [supremm_repo] [xdmod_repo]/open_xdmod/modules/supremm

Building

Dependencies

NOTE: Modules for Open XDMoD may have their own build dependencies.

Steps

The examples in the steps below apply to Open XDMoD, but similar procedures may be followed to build modules for Open XDMoD as well. Simply ensure that the modules (or symbolic links to the modules) are present in open_xdmod/modules and do not have the xdmod- prefix. For example, to build the SUPReMM module (which is stored in the repository xdmod-supremm), clone it or create a symbolic link to it at open_xdmod/modules/supremm.

Source

  1. Change directory to the root of the Open XDMoD repository.
  2. Install Composer dependencies for Open XDMoD. - composer install
  3. Run the package builder script. - open_xdmod/build_scripts/build_package.php --module xdmod - To build Open XDMoD modules, substitute xdmod with the name of a module's directory within open_xdmod/modules.

The resulting tarball will be located in open_xdmod/build.

RPM

This procedure assumes your rpmbuild directory is ~/rpmbuild. If it is not, substitute accordingly.

  1. Change directory to the root of the Open XDMoD repository.
  2. If you have not already, create a source tarball using the steps in the Source section.
  3. Copy the source tarball to the SOURCES directory in your rpmbuild directory. - cp open_xdmod/build/xdmod-x.y.z.tar.gz ~/rpmbuild/SOURCES
  4. Extract the .spec file from the source tarball into the SPECS directory in your rpmbuild directory. - tar -xOf ~/rpmbuild/SOURCES/xdmod-x.y.z.tar.gz xdmod-x.y.z/xdmod.spec >~/rpmbuild/SPECS/xdmod.spec
  5. Run rpmbuild. - rpmbuild -bb ~/rpmbuild/SPECS/xdmod.spec

The resulting RPM will be located in ~/rpmbuild/RPMS/noarch.

License

Open XDMoD is released under the GNU Lesser General Public License ("LGPL") Version 3.0. See the LICENSE file for details.

Open XDMoD includes several libraries that are licensed separately. See the license page on the Open XDMoD website for details.

Non-Commercial Licenses

Some software products used by Open XDMoD are not free for commercial use. See the license page on the Open XDMoD website for details.

xdmod's People

Contributors

xdmod avatar

Watchers

Steve Gallo 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.