https://github.com/craylabs/smartdashboard

SmartSim Dashboard Package.

https://github.com/craylabs/smartdashboard

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

SmartSim Dashboard Package.

Basic Info
  • Host: GitHub
  • Owner: CrayLabs
  • License: bsd-2-clause
  • Language: Python
  • Default Branch: develop
  • Size: 301 KB
Statistics
  • Stars: 6
  • Watchers: 4
  • Forks: 2
  • Open Issues: 2
  • Releases: 3
Created almost 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

[!CAUTION] The SmartDashboard project has been discontinued and this repository is no longer maintained by the SmartSim team.

SmartDashboard

SmartDashboard is an add-on to SmartSim that provides a dashboard to help users understand and monitor their SmartSim experiments in a visual way. Configuration, status, and logs are available for all launched entities within an experiment for easy inspection, along with memory and client data per shard for launched orchestrators.

A Telemetry Monitor is a background process that is launched alongside the experiment. It is responsible for generating the data displayed by SmartDashboard. The Telemetry Monitor can be disabled globally by adding export SMARTSIM_FLAG_TELEMETRY=0 as an environment variable. When disabled, SmartDashboard will not display entity status data. To re-enable, set the SMARTSIM_FLAG_TELEMETRY environment variable to 1 with export SMARTSIM_FLAG_TELEMETRY=1. For workflows involving multiple experiments, SmartSim provides the attributes Experiment.telemetry.enable and Experiment.telemetry.disable to manage the enabling or disabling of telemetry on a per-experiment basis.

Orchestrator memory and client data can be collected by enabling database telemetry. To do so, add Orchestrator.telemetry.enable after creating an Orchestrator within the driver script. Database telemetry is enabled per Orchestrator, so if there are multiple Orchestrators launched, they will each need to be enabled separately in the driver script.

```python

enabling telemetry example

from smartsim import Experiment

exp = Experiment("experiment", launcher="auto") exp.telemetry.enable()

db = exp.createdatabase(dbnodes=3) db.telemetry.enable()

exp.start(db, block=True) exp.stop(db) ```

Experiment metadata is stored in the .smartsim directory, a hidden folder used by the internal api and accessed by the dashboard. This folder can be found within the created experiment directory. Deletion of the experiment folder will remove all associated metadata.

Installation

It's important to note that SmartDashboard only works while using SmartSim, so SmartSim will need to be installed as well. SmartSim installation docs can be found here.

User Install

Run pip install smartdashboard to install SmartDashboard without cloning the repository.

Developer Install

Clone the SmartDashboard repository at https://github.com/CrayLabs/SmartDashboard.git

Once cloned, cd into the repository and run:

pip install -e .

Running SmartDashboard

After launching a SmartSim experiment, the dashboard can be launched using SmartSim's CLI.

smart dashboard --port <port number> --directory <experiment directory path>

The port can optionally be specified, otherwise the dashboard port will default to 8501. The directory must be specified and should be a relative or absolute path to the created experiment directory.

Example workflow:

```bash

directory before running experiment

├── hello_world.py ```

```python

hello_world.py

from smartsim import Experiment

exp = Experiment("helloworldexp", launcher="auto") exp.telemetry.enable() run = exp.createrunsettings(exe="echo", exeargs="Hello World!") run.settasks(60) run.settasksper_node(20)

model = exp.createmodel("helloworld", run) exp.start(model, block=True, summary=True) ```

```bash

in interactive terminal

python hello_world.py ```

```bash

directory after running experiment

├── helloworld.py └── helloworld_exp ```

By default, hello_world_exp is created in the directory of the driver script.

```bash

in a different interactive terminal

smart dashboard --port 8888 --directory helloworldexp ```

The dashboard will automatically open in a browser at port 8888 when smart dashboard ... is invoked locally.

If the dashboard is executed remotely, establishing port-forwarding to the remote machine will be necessary. This may be accomplished with ssh as follows:

```bash

using ssh to establish port forwarding

ssh -L [local-addr]::: @

example forwarding the remote port 8888 to localhost:8000

ssh -L localhost:8000:super1.my.domain.net:8888 smartdash@super1.my.domain.net ```

After establishing the port-forwarding, a local browser can be pointed at the appropriate URL, such as http://localhost:8000 for the example above.

The dashboard is also persistent, meaning that a user can still launch and use the dashboard even after the experiment has completed.

Using SmartDashboard

Once the dashboard is launched, a browser will open to http://localhost:<port>. SmartDashboard currently has two tabs on the left hand side.

Experiment Overview: This tab is where configuration information, statuses, and logs are located for each launched entity of the experiment. The Experiment section displays configuration information for the overall experiment and its logs. In the Applications section, also known as SmartSim Models, select a launched application to see its status, what it was configured with, and its logs. The Orchestrators section also provides configuration and status information, as well as logs per shard for a selected orchestrator. Finally, in the Ensembles section, select an ensemble to see its status and configuration. Then select any of its members to see its status, configuration, and logs.

Database Telemetry: This tab provides additional details about Orchestrators. The Orchestrator Summary section shows configuration and status information of the selected. The Memory section provides memory usage data per shard within the Orchestrator. The Clients section displays client data per shard within the Orchestrator.

Help: This tab links to SmartSim documentation and provides a SmartSim contact for support.

Owner

  • Name: Cray Labs
  • Login: CrayLabs
  • Kind: organization

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 33
  • Total Committers: 4
  • Avg Commits per committer: 8.25
  • Development Distribution Score (DDS): 0.515
Past Year
  • Commits: 33
  • Committers: 4
  • Avg Commits per committer: 8.25
  • Development Distribution Score (DDS): 0.515
Top Committers
Name Email Commits
Alyssa Cote 4****e 16
Amanda Richardson a****n@h****m 15
Alyssa Cote a****2@g****m 1
amandarichardsonn 3****n 1
Committer Domains (Top 20 + Academic)
hpe.com: 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 11
  • Total pull requests: 47
  • Average time to close issues: 25 days
  • Average time to close pull requests: 6 days
  • Total issue authors: 3
  • Total pull request authors: 7
  • Average comments per issue: 0.09
  • Average comments per pull request: 0.06
  • Merged pull requests: 44
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • billschereriii (4)
  • MattToast (4)
  • AlyssaCote (3)
Pull Request Authors
  • AlyssaCote (46)
  • amandarichardsonn (8)
  • ankona (6)
  • github-actions[bot] (2)
  • al-rigazzi (2)
  • billschereriii (1)
  • ashao (1)
Top Labels
Issue Labels
type: feature (6) type: refactor (2) area: telemetry (2) type: usability (2) bug: minor (2) Short task (1) area: docs (1) area: api (1) type: design (1)
Pull Request Labels
area: CI/CD (5) repo: smartdashboard (3) ignore-for-release (3) type: feature (2) area: docs (2) area: telemetry (1) area: build (1) type: chore (1) area: release (1) API break (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 25 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: smartdashboard

Visualize SmartSim Experiments

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 25 Last month
Rankings
Dependent packages count: 10.2%
Average: 38.6%
Dependent repos count: 67.0%
Maintainers (1)
Last synced: 11 months ago

Dependencies

.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/run_tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v3 composite
pyproject.toml pypi
  • pandas >=2.0.0
  • streamlit >=1.27.1
  • watchdog >=3.0.0