Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/CrayLabs/SmartDashboard
Browse files Browse the repository at this point in the history
…into release-notes
  • Loading branch information
amandarichardsonn committed Apr 26, 2024
2 parents 671adf9 + 2e43fde commit 1b42ddb
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 16 deletions.
38 changes: 30 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
# 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.
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 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``.
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.

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.
`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.create_database(db_nodes=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

Expand Down Expand Up @@ -49,6 +70,7 @@ Example workflow:
from smartsim import Experiment

exp = Experiment("hello_world_exp", launcher="auto")
exp.telemetry.enable()
run = exp.create_run_settings(exe="echo", exe_args="Hello World!")
run.set_tasks(60)
run.set_tasks_per_node(20)
Expand Down
52 changes: 52 additions & 0 deletions doc/changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Changelog
=========

Development branch
------------------

Description

- Add database telemetry documentation. (SmartDashboard-PR52_)
- Auto-post release PR to develop from master (SmartDashboard-PR53_)
- Decrease the pinned version of Pydantic (SmartDashboard-PR51_)
- Bump version to 0.0.4, exclude streamlit version 1.31.X (SmartDashboard-PR50_)
- Drop Python 3.8 support, add 3.11 support. (SmartDashboard-PR49_)
- Add Database Telemetry page. (SmartDashboard-PR38_)
- Add Github Actions workflow that checks if changelog is edited
on pull requests into develop. (SmartDashboard-PR47_)
- Add manifest file tracking. (SmartDashboard-PR46_)

.. _SmartDashboard-PR52: https://github.com/CrayLabs/SmartDashboard/pull/52
.. _SmartDashboard-PR53: https://github.com/CrayLabs/SmartDashboard/pull/53
.. _SmartDashboard-PR51: https://github.com/CrayLabs/SmartDashboard/pull/51
.. _SmartDashboard-PR50: https://github.com/CrayLabs/SmartDashboard/pull/50
.. _SmartDashboard-PR49: https://github.com/CrayLabs/SmartDashboard/pull/49
.. _SmartDashboard-PR38: https://github.com/CrayLabs/SmartDashboard/pull/38
.. _SmartDashboard-PR47: https://github.com/CrayLabs/SmartDashboard/pull/47
.. _SmartDashboard-PR46: https://github.com/CrayLabs/SmartDashboard/pull/46


0.0.3
-----

Released on 15 February 2024

Description

- Added defined schemas for entity objects. (SmartDashboard-PR31_)
- Added experiment level logs to the dashboard. (SmartDashboard-PR37_)

.. _SmartDashboard-PR31: https://github.com/CrayLabs/SmartDashboard/pull/31
.. _SmartDashboard-PR37: https://github.com/CrayLabs/SmartDashboard/pull/37



0.0.2
-----

Released on 14 December 2023

Description

- The initial release of SmartDashboard includes capabilities for viewing
experiment entity properties and statuses.
37 changes: 29 additions & 8 deletions doc/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,38 @@ 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.
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 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``.
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.

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.
``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.

.. code-block:: python
# enabling telemetry example
from smartsim import Experiment
exp = Experiment("experiment", launcher="auto")
exp.telemetry.enable()
db = exp.create_database(db_nodes=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
Expand Down

0 comments on commit 1b42ddb

Please sign in to comment.