Git Product home page Git Product logo

openlorenz's Introduction


Welcome to OpenLorenz, the open source version of the Lorenz suite of tools
developed at Lawrence Livermore National Laboratory. The goal of Lorenz is to
use modern web technologies to make HPC easier.

Two of the tools in the suite are available in OpenLorenz -- the dashboard and
the job management tool. The dashboard provides a customizable, personalized
view of what's going on in the HPC center. The job management tool helps users
submit and manage their batch jobs.


Deploying Open Lorenz out-of-the-box (using the hardwired 'fake' data)
======================================================================

Apache httpd.conf mods:
--------------------------------------------------
Inside the relevant <Directory /> tag...
Options ExecCGI

Also, uncomment if necessary:
AddHandler cgi-script .cgi

Perl dependencies:
--------------------------------------------------
Install with 'cpan' utility preferably, with dependencies enabled:

Class::Delegator
Date::Format
HTML::Template
HTTP::BrowserDetect
JSON
Redis


Modify paths in the OpenLorenz code to match your site
------------------------------------------------------
Makefile		(Fix 2 variables)
mylc/mylc.cgi		(Fix path in begin block)
lora/lora.cgi		(Fix path in begin block)
server/lib/perl/Lorenz/DependencyManager.pm
			(Fix 3 paths)

Then...
--------------------------------------------------
untar into htdocs/lorenz
make fixperms

try loading:  http://<yourserver>/lorenz/mylc/mylc.cgi


Porting Overview
=============================

Once the default OpenLorenz instance is running, turning the fake data into real
data from your computer center is the next task.

One finds wide variability in how authentication, user data, resource
management, and all the other key information associated with a computer center
are handled. Lorenz was built to operate within the Livermore Computing center
at LLNL, but is structured to support porting to other sites. Lorenz features a
number of APIs, including a REST API upon which the web services are built. The
REST API is how the client (browser-based) code interacts with the web server
and ultimately the HPC resources. This API is called LORA, for LOrenz Rest Api,
and is conceptually based on the NERSC Web Toolkit, NEWT.

OpenLorenz is shipped with stubbed-out versions of these endpoints, which return
properly formatted but fake (hard-wired) data. This gives the porter an idea of
the expected data for each web service.

The main tasks for porting are:

(1) Go through all of the pertinent REST endpoints used by the dashboard and job
management tool, and replace the fake data with code that collects real data
from your site. In particular, this will include server/lib/perl/Lorenz/*.pm and
server/lib/perl/Lorenz/REST/*.pm. See the technical report "Lorenz APIs and LORA
REST Services" for more details.

(2) For each portlet in the dashboard, modify the displayed data and labels to
match what is used at your site.


Web Server Dependencies
=======================

At LLNL, Lorenz makes use of an Apache web server that is tightly integrated
with the rest of the Livermore Computer center. The web server shares a security
infrastructure with the HPC resources, meaning that CGI scripts run on the web
server have the ability to access other services and clusters on behalf of the
user. This is done by using an Apache module that creates Kerberos credentials
that are cached for each user when they authenticate with their one-time
password. The suexec module executes cgi scripts as each individual user, and
the scripts are run with the user's security credentials. Lorenz server code can
then make LDAP queries or ssh directly to HPC resources as the user, and launch
commands, retrieve data, and perform other actions for the user.

While suexec and Kerberos are not requirements for Lorenz to function at your
site, you do need to find a way to do something equivalent _if_ you want to
perform actions on behalf of the users. If you only want to show generic status
and other information in the dashboard, it's not necessary to integrate the web
server into your security and cluster environment.

Another useful capability is to have a storage area for each user. At LLNL we do
this by mounting the users' home directories on the web server, so that Lorenz
can store preferences, cached data, and temporary files there. A separate
filesystem or a database would also work for this purpose.

openlorenz's People

Contributors

jefflong6 avatar

Stargazers

Aleksandr Blekh avatar Ben Santos avatar Matt Belhorn avatar Aaron Zauner avatar Jon Bringhurst avatar

Watchers

Brian Behlendorf avatar Jharrod LaFon avatar Mark Grondona avatar Ben Santos avatar Ian Lee avatar James Cloos avatar Dong H. Ahn avatar  avatar Samuel K. Gutiérrez avatar Kento Sato avatar Adam Moody avatar Nathan Hjelm avatar Jeff Long avatar Matthew LeGendre avatar  avatar

Forkers

bhaavya

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.