# 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.
A ``Telemetry Monitor`` is a background process that is launched along with the experiment
that produces the data displayed by SmartDashboard. The ``Telemetry Monitor`` can be disabled by
adding ``export SMARTSIM_TELEMETRY_ENABLE=0`` as an environment variable. When disabled, SmartDashboard
will not display any data. To re-enable, set the ``SMARTSIM_TELEMETRY_ENABLE`` environment variable to ``1``
with ``export SMARTSIM_TELEMETRY_ENABLE=1``.
Experiment metadata is also stored in the ``.smartsim`` directory, a hidden folder for internal api use and used by the dashboard.
Deletion of the experiment folder will remove all experiment 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](https://www.craylabs.org/docs/installation_instructions/basic.html).
### 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("hello_world_exp", launcher="auto")
run = exp.create_run_settings(exe="echo", exe_args="Hello World!")
run.set_tasks(60)
run.set_tasks_per_node(20)
model = exp.create_model("hello_world", run)
exp.start(model, block=True, summary=True)
```
```bash
# in interactive terminal
python hello_world.py
```
```bash
# directory after running experiment
├── hello_world.py
└── hello_world_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 hello_world_exp
```
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]:<local-port>:<remote-addr>:<remote-port> <user-id>@<remote-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.
`Help:` This tab links to SmartSim documentation and provides a SmartSim contact for support.
Raw data
{
"_id": null,
"home_page": "",
"name": "smartdashboard",
"maintainer": "",
"docs_url": null,
"requires_python": "<3.11,>=3.8",
"maintainer_email": "",
"keywords": "scientific,ai,workflow,hpc,analysis",
"author": "",
"author_email": "\"CrayLabs: a Hewlett Packard Enterprise OSS Organization\" <craylabs@hpe.com>",
"download_url": "https://files.pythonhosted.org/packages/22/46/43c8ce48df7830c6448046f023c6061d5c17736708e660cd74fb06eecfc7/smartdashboard-0.0.3.tar.gz",
"platform": null,
"description": "# SmartDashboard\n\nSmartDashboard 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.\n\nA ``Telemetry Monitor`` is a background process that is launched along with the experiment\nthat produces the data displayed by SmartDashboard. The ``Telemetry Monitor`` can be disabled by\nadding ``export SMARTSIM_TELEMETRY_ENABLE=0`` as an environment variable. When disabled, SmartDashboard\nwill not display any data. To re-enable, set the ``SMARTSIM_TELEMETRY_ENABLE`` environment variable to ``1``\nwith ``export SMARTSIM_TELEMETRY_ENABLE=1``.\n\nExperiment metadata is also stored in the ``.smartsim`` directory, a hidden folder for internal api use and used by the dashboard.\nDeletion of the experiment folder will remove all experiment metadata.\n\n## Installation\n\nIt's important to note that SmartDashboard only works while using SmartSim, so SmartSim will need to be installed as well.\nSmartSim installation docs can be found [here](https://www.craylabs.org/docs/installation_instructions/basic.html).\n\n### User Install\n\nRun `pip install smartdashboard` to install SmartDashboard without cloning the repository.\n\n### Developer Install\n\nClone the `SmartDashboard` repository at https://github.com/CrayLabs/SmartDashboard.git\n\nOnce cloned, `cd` into the repository and run:\n\n```pip install -e .```\n\n## Running SmartDashboard\n\nAfter launching a SmartSim experiment, the dashboard can be launched using SmartSim's CLI.\n \n```smart dashboard --port <port number> --directory <experiment directory path>```\n \nThe port can optionally be specified, otherwise the dashboard port will default to `8501`.\nThe directory must be specified and should be a relative or absolute path to the created experiment directory.\n\nExample workflow:\n\n```bash\n# directory before running experiment\n\u251c\u2500\u2500 hello_world.py\n```\n\n```python\n# hello_world.py\nfrom smartsim import Experiment\n\nexp = Experiment(\"hello_world_exp\", launcher=\"auto\")\nrun = exp.create_run_settings(exe=\"echo\", exe_args=\"Hello World!\")\nrun.set_tasks(60)\nrun.set_tasks_per_node(20)\n\nmodel = exp.create_model(\"hello_world\", run)\nexp.start(model, block=True, summary=True)\n```\n\n```bash\n# in interactive terminal\npython hello_world.py\n```\n\n```bash\n# directory after running experiment\n\u251c\u2500\u2500 hello_world.py\n\u2514\u2500\u2500 hello_world_exp\n```\n\nBy default, `hello_world_exp` is created in the directory of the driver script.\n\n```bash\n# in a different interactive terminal\nsmart dashboard --port 8888 --directory hello_world_exp\n```\n\nThe dashboard will automatically open in a browser at port 8888 when `smart dashboard ...` \nis invoked locally.\n\n> If the dashboard is executed remotely, establishing port-forwarding to the\n> remote machine will be necessary. This may be accomplished with ssh as follows:\n>\n> ```bash\n> # using ssh to establish port forwarding \n> ssh -L [local-addr]:<local-port>:<remote-addr>:<remote-port> <user-id>@<remote-addr>\n> # example forwarding the remote port 8888 to localhost:8000\n> ssh -L localhost:8000:super1.my.domain.net:8888 smartdash@super1.my.domain.net\n> ```\n>\n> After establishing the port-forwarding, a local browser can be pointed at the appropriate \n> URL, such as `http://localhost:8000` for the example above.\n\nThe dashboard is also persistent, meaning that a user can still launch and use the dashboard even after the experiment has completed.\n\n## Using SmartDashboard\n\nOnce the dashboard is launched, a browser will open to `http://localhost:<port>`. SmartDashboard currently has two tabs on the left hand side.\n \n`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.\n \n`Help:` This tab links to SmartSim documentation and provides a SmartSim contact for support.\n",
"bugtrack_url": null,
"license": "BSD 2-Clause License",
"summary": "Visualize SmartSim Experiments",
"version": "0.0.3",
"project_urls": {
"Documentation": "https://github.com/CrayLabs/SmartDashboard",
"Homepage": "https://www.craylabs.org",
"Repository": "https://github.com/CrayLabs/SmartDashboard"
},
"split_keywords": [
"scientific",
"ai",
"workflow",
"hpc",
"analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "784ffcc155731ab026eaf2b02c6ae9570c1a7c05d052e6fdd267ab1b9dc2561b",
"md5": "4a1da07a5a505842bf842fe125e7f6ae",
"sha256": "0a4244dc5498c08bc4b759bae29e289c42da5abf13365bf513975b37babfc439"
},
"downloads": -1,
"filename": "smartdashboard-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4a1da07a5a505842bf842fe125e7f6ae",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.11,>=3.8",
"size": 51211,
"upload_time": "2024-02-15T18:46:09",
"upload_time_iso_8601": "2024-02-15T18:46:09.608377Z",
"url": "https://files.pythonhosted.org/packages/78/4f/fcc155731ab026eaf2b02c6ae9570c1a7c05d052e6fdd267ab1b9dc2561b/smartdashboard-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "224643c8ce48df7830c6448046f023c6061d5c17736708e660cd74fb06eecfc7",
"md5": "f92dd718ec3218c5c5b0b0a0854ef4c2",
"sha256": "5c3956a660073bea1032748ce6a6afdc09a0e7f58af418161aacb1b023592c04"
},
"downloads": -1,
"filename": "smartdashboard-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "f92dd718ec3218c5c5b0b0a0854ef4c2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.11,>=3.8",
"size": 40866,
"upload_time": "2024-02-15T18:46:11",
"upload_time_iso_8601": "2024-02-15T18:46:11.506887Z",
"url": "https://files.pythonhosted.org/packages/22/46/43c8ce48df7830c6448046f023c6061d5c17736708e660cd74fb06eecfc7/smartdashboard-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-15 18:46:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CrayLabs",
"github_project": "SmartDashboard",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "smartdashboard"
}