Package: smartdashboard
SmartDashboardSmartDashboard 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.ATelemetry Monitoris a background process that is launched along with the experiment
that produces the data displayed by SmartDashboard. TheTelemetry Monitorcan be disabled by
addingexport SMARTSIM_TELEMETRY_ENABLE=0as an environment variable. When disabled, SmartDashboard
will not display any data. To re-enable, set theSMARTSIM_TELEMETRY_ENABLEenvironment variable to1withexport SMARTSIM_TELEMETRY_ENABLE=1.Experiment metadata is also stored in the.smartsimdirectory, a hidden folder for internal api use and used by the dashboard.
Deletion of the experiment folder will remove all experiment metadata.InstallationIt'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 foundhere.User InstallRunpip install smartdashboardto install SmartDashboard without cloning the repository.Developer InstallClone theSmartDashboardrepository athttps://github.com/CrayLabs/SmartDashboard.gitOnce cloned,cdinto the repository and run:pip install -e .Running SmartDashboardAfter 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 to8501.
The directory must be specified and should be a relative or absolute path to the created experiment directory.Example workflow:# directory before running experiment├──hello_world.py# hello_world.pyfromsmartsimimportExperimentexp=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)# in interactive terminalpythonhello_world.py# directory after running experiment├──hello_world.py
└──hello_world_expBy default,hello_world_expis created in the directory of the driver script.# in a different interactive terminalsmartdashboard--port8888--directoryhello_world_expThe dashboard will automatically open in a browser at port 8888 whensmart 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:# using ssh to establish port forwardingssh-L[local-addr]:<local-port>:<remote-addr>:<remote-port><user-id>@<remote-addr># example forwarding the remote port 8888 to localhost:8000ssh-Llocalhost:8000:super1.my.domain.net:8888smartdash@super1.my.domain.netAfter establishing the port-forwarding, a local browser can be pointed at the appropriate
URL, such ashttp://localhost:8000for 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 SmartDashboardOnce the dashboard is launched, a browser will open tohttp://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. TheExperimentsection displays configuration information for the overall experiment and its logs. In theApplicationssection, also known as SmartSimModels, select a launched application to see its status, what it was configured with, and its logs. TheOrchestratorssection also provides configuration and status information, as well as logs per shard for a selected orchestrator. Finally, in theEnsemblessection, 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.