Smartsim

Latest version: v0.6.2

Safety actively analyzes 623704 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.6.2

Released on 16 February, 2024

Description

- Patch SmartSim dependency version

Detailed Notes

- A critical performance concern was identified and addressed in SmartRedis. A patch fix was deployed, and SmartSim was updated to ensure users do not inadvertently pull the unpatched version of SmartRedis. ([SmartSim-PR493](https://github.com/CrayLabs/SmartSim/pull/493))

0.6.1

Released on 15 February, 2024

Description

- Duplicate for DBModel/Script prevented
- Update license to include 2024
- Telemetry monitor is now active by default
- Add support for Mac OSX on Apple Silicon
- Remove Torch warnings during testing
- Validate Slurm timing format
- Expose Python Typehints
- Fix test_logs to prevent generation of directory
- Fix Python Typehint for colocated database settings
- Python 3.11 Support
- Quality of life <span class="title-ref">smart validate</span> improvements
- Remove Cobalt support
- Enrich logging through context variables
- Upgrade Machine Learning dependencies
- Override sphinx-tabs background color
- Add concurrency group to test workflow
- Fix index when installing torch through smart build

Detailed Notes

- Modify the <span class="title-ref">git clone</span> for both Redis and RedisAI to set the line endings to unix-style line endings when using MacOS on ARM. ([SmartSim-PR482](https://github.com/CrayLabs/SmartSim/pull/482))
- Separate install instructions are now provided for Mac OSX on x64 vs ARM64 ([SmartSim-PR479](https://github.com/CrayLabs/SmartSim/pull/479))
- Prevent duplicate ML model and script names being added to an Ensemble member if the names exists. ([SmartSim-PR475](https://github.com/CrayLabs/SmartSim/pull/475))
- Updates <span class="title-ref">Copyright (c) 2021-2023</span> to <span class="title-ref">Copyright (c) 2021-2024</span> in all of the necessary files. ([SmartSim-PR485](https://github.com/CrayLabs/SmartSim/pull/485))
- Bug fix which prevents the expected behavior when the <span class="title-ref">SMARTSIM_LOG_LEVEL</span> environment variable was set to <span class="title-ref">developer</span>. ([SmartSim-PR473](https://github.com/CrayLabs/SmartSim/pull/473))
- Sets the default value of the "enable telemetry" flag to on. Bumps the output <span class="title-ref">manifest.json</span> version number to match that of <span class="title-ref">smartdashboard</span> and pins a watchdog version to avoid build errors. ([SmartSim-PR477](https://github.com/CrayLabs/SmartSim/pull/477))
- Refactor logic of <span class="title-ref">Manifest.has_db_objects</span> to remove excess branching and improve readability/maintainability. ([SmartSim-PR476](https://github.com/CrayLabs/SmartSim/pull/476))
- SmartSim can now be built and used on platforms using Apple Silicon (ARM64). Currently, only the PyTorch backend is supported. Note that libtorch will be downloaded from a CrayLabs github repo. ([SmartSim-PR465](https://github.com/CrayLabs/SmartSim/pull/465))
- Tests that were saving Torch models were emitting warnings. These warnings were addressed by updating the model save test function. ([SmartSim-PR472](https://github.com/CrayLabs/SmartSim/pull/472))
- Validate the timing format when requesting a slurm allocation. ([SmartSim-PR471](https://github.com/CrayLabs/SmartSim/pull/471))
- Add and ship <span class="title-ref">py.typed</span> marker to expose inline type hints. Fix type errors related to SmartRedis. ([SmartSim-PR468](https://github.com/CrayLabs/SmartSim/pull/468))
- Fix the <span class="title-ref">test_logs.py::test_context_leak</span> test that was erroneously creating a directory named <span class="title-ref">some value</span> in SmartSim's root directory. ([SmartSim-PR467](https://github.com/CrayLabs/SmartSim/pull/467))
- Add Python type hinting to colocated settings. ([SmartSim-PR462](https://github.com/CrayLabs/SmartSim/pull/462))
- Add github actions for running black and isort checks. ([SmartSim-PR464](https://github.com/CrayLabs/SmartSim/pull/464))
- Relax the required version of <span class="title-ref">typing_extensions</span>. ([SmartSim-PR459](https://github.com/CrayLabs/SmartSim/pull/459))
- Addition of Python 3.11 to SmartSim. ([SmartSim-PR461](https://github.com/CrayLabs/SmartSim/pull/461))
- Quality of life <span class="title-ref">smart validate</span> improvements such as setting <span class="title-ref">CUDA_VISIBLE_DEVICES</span> environment variable within <span class="title-ref">smart validate</span> prior to importing any ML deps to prevent false negatives on multi-GPU systems. Additionally, move SmartRedis logs from standard out to dedicated log file in the validation temporary directory as well as suppress <span class="title-ref">sklearn</span> deprecation warning by pinning <span class="title-ref">KMeans</span> constructor argument. Lastly, move TF test to last as TF may reserve the GPUs it uses. ([SmartSim-PR458](https://github.com/CrayLabs/SmartSim/pull/458))
- Some actions in the current GitHub CI/CD workflows were outdated. They were replaced with the latest versions. ([SmartSim-PR446](https://github.com/CrayLabs/SmartSim/pull/446))
- As the Cobalt workload manager is not used on any system we are aware of, its support in SmartSim was terminated and classes such as <span class="title-ref">CobaltLauncher</span> have been removed. ([SmartSim-PR448](https://github.com/CrayLabs/SmartSim/pull/448))
- Experiment logs are written to a file that can be read by the dashboard. ([SmartSim-PR452](https://github.com/CrayLabs/SmartSim/pull/452))
- Updated SmartSim's machine learning backends to PyTorch 2.0.1, Tensorflow 2.13.1, ONNX 1.14.1, and ONNX Runtime 1.16.1. As a result of this change, there is now an available ONNX wheel for use with Python 3.10, and wheels for all of SmartSim's machine learning backends with Python 3.11. ([SmartSim-PR451](https://github.com/CrayLabs/SmartSim/pull/451)) ([SmartSim-PR461](https://github.com/CrayLabs/SmartSim/pull/461))
- The sphinx-tabs documentation extension uses a white background for the tabs component. A custom CSS for those components to inherit the overall theme color has been added. ([SmartSim-PR453](https://github.com/CrayLabs/SmartSim/pull/453))
- Add concurrency groups to GitHub's CI/CD workflows, preventing multiple workflows from the same PR to be launched concurrently. ([SmartSim-PR439](https://github.com/CrayLabs/SmartSim/pull/439))
- Torch changed their preferred indexing when trying to install their provided wheels. Updated the <span class="title-ref">pip install</span> command within <span class="title-ref">smart build</span> to ensure that the appropriate packages can be found. ([SmartSim-PR449](https://github.com/CrayLabs/SmartSim/pull/449))

0.6.0

Released on 18 December, 2023

Description

- Conflicting directives in the SmartSim packaging instructions were
fixed
- <span class="title-ref">sacct</span> and
<span class="title-ref">sstat</span> errors are now fatal for
Slurm-based workflow executions
- Added documentation section about ML features and TorchScript
- Added TorchScript functions to Online Analysis tutorial
- Added multi-DB example to documentation
- Improved test stability on HPC systems
- Added support for producing & consuming telemetry outputs
- Split tests into groups for parallel execution in CI/CD pipeline
- Change signature of
<span class="title-ref">Experiment.summary()</span>
- Expose first_device parameter for scripts, functions, models
- Added support for MINBATCHTIMEOUT in model execution
- Remove support for RedisAI 1.2.5, use RedisAI 1.2.7 commit
- Add support for multiple databases

Detailed Notes

- Several conflicting directives between the
<span class="title-ref">setup.py</span> and the
<span class="title-ref">setup.cfg</span> were fixed to mitigate
warnings issued when building the pip wheel.
([SmartSim-PR435](https://github.com/CrayLabs/SmartSim/pull/435))
- When the Slurm functions <span class="title-ref">sacct</span> and
<span class="title-ref">sstat</span> returned an error, it would be
ignored and SmartSim's state could become inconsistent. To prevent
this, errors raised by <span class="title-ref">sacct</span> or
<span class="title-ref">sstat</span> now result in an exception.
([SmartSim-PR392](https://github.com/CrayLabs/SmartSim/pull/392))
- A section named *ML Features* was added to documentation. It
contains multiple examples of how ML models and functions can be
added to and executed on the DB. TorchScript-based post-processing
was added to the *Online Analysis* tutorial
([SmartSim-PR411](https://github.com/CrayLabs/SmartSim/pull/411))
- An example of how to use multiple Orchestrators concurrently was
added to the documentation
([SmartSim-PR409](https://github.com/CrayLabs/SmartSim/pull/409))
- The test infrastructure was improved. Tests on HPC system are now
stable, and issues such as non-stopped
<span class="title-ref">Orchestrators</span> or experiments created
in the wrong paths have been fixed
([SmartSim-PR381](https://github.com/CrayLabs/SmartSim/pull/381))
- A telemetry monitor was added to check updates and produce events
for SmartDashboard
([SmartSim-PR426](https://github.com/CrayLabs/SmartSim/pull/426))
- Split tests into <span class="title-ref">group_a</span>,
<span class="title-ref">group_b</span>,
<span class="title-ref">slow_tests</span> for parallel execution in
CI/CD pipeline
([SmartSim-PR417](https://github.com/CrayLabs/SmartSim/pull/417),
[SmartSim-PR424](https://github.com/CrayLabs/SmartSim/pull/424))
- Change <span class="title-ref">format</span> argument to
<span class="title-ref">style</span> in
<span class="title-ref">Experiment.summary()</span>, this is an API
break
([SmartSim-PR391](https://github.com/CrayLabs/SmartSim/pull/391))
- Added support for first_device parameter for scripts, functions, and
models. This causes them to be loaded to the first num_devices
beginning with first_device
([SmartSim-PR394](https://github.com/CrayLabs/SmartSim/pull/394))
- Added support for MINBATCHTIMEOUT in model execution, which caps the
delay waiting for a minimium number of model execution operations to
accumulate before executing them as a batch
([SmartSim-PR387](https://github.com/CrayLabs/SmartSim/pull/387))
- RedisAI 1.2.5 is not supported anymore. The only RedisAI version is
now 1.2.7. Since the officially released RedisAI 1.2.7 has a bug
which breaks the build process on Mac OSX, it was decided to use
commit
[634916c](https://github.com/RedisAI/RedisAI/commit/634916c722e718cc6ea3fad46e63f7d798f9adc2)
from RedisAI's GitHub repository, where such bug has been fixed.
This applies to all operating systems.
([SmartSim-PR383](https://github.com/CrayLabs/SmartSim/pull/383))
- Add support for creation of multiple databases with unique
identifiers.
([SmartSim-PR342](https://github.com/CrayLabs/SmartSim/pull/342))

0.5.1

What's Changed
* Refactor smart cli into subparsers by ankona in https://github.com/CrayLabs/SmartSim/pull/308
* Fix Frontier code block in doc by ashao in https://github.com/CrayLabs/SmartSim/pull/321
* Update, Apply, and Automate Python Linting by ankona in https://github.com/CrayLabs/SmartSim/pull/311
* Avoid using `shell=True` by ankona in https://github.com/CrayLabs/SmartSim/pull/327
* fix for incorrect logging message format/args by ankona in https://github.com/CrayLabs/SmartSim/pull/330
* Alter launchers to pass env when starting a local step by ankona in https://github.com/CrayLabs/SmartSim/pull/329
* Raise error for inconsistent add_ml_model and add_script parameters by juliaputko in https://github.com/CrayLabs/SmartSim/pull/324
* Raising error for reserved keywords under function parameter options in get_allocation by juliaputko in https://github.com/CrayLabs/SmartSim/pull/325
* Fix bug in logging msg format string by ankona in https://github.com/CrayLabs/SmartSim/pull/332
* Log sacct failures by ankona in https://github.com/CrayLabs/SmartSim/pull/331
* Added PR324 and PR325 to changelog by juliaputko in https://github.com/CrayLabs/SmartSim/pull/333
* Add more tests for RAI_PATH and lib path interactions by ankona in https://github.com/CrayLabs/SmartSim/pull/328
* Enable mypy generic-related checks by ankona in https://github.com/CrayLabs/SmartSim/pull/338
* Fix colocated db preparation bug when using `JsrunSettings` by ankona in https://github.com/CrayLabs/SmartSim/pull/339
* Ensemble documentation update by billschereriii in https://github.com/CrayLabs/SmartSim/pull/322
* Mitigate suppressed protected-access errors from pylint by ankona in https://github.com/CrayLabs/SmartSim/pull/341
* Apply typehints to `smartsim._core.launcher.step.*` by ankona in https://github.com/CrayLabs/SmartSim/pull/334
* Add missing changelog entries by ankona in https://github.com/CrayLabs/SmartSim/pull/345
* Add support for Slurm heterogeneous jobs by al-rigazzi in https://github.com/CrayLabs/SmartSim/pull/346
* Remove ensemble generation from DB Object tests by al-rigazzi in https://github.com/CrayLabs/SmartSim/pull/349
* Integrate PalsMpiexecSettings into Experiment factory methods by MattToast in https://github.com/CrayLabs/SmartSim/pull/343
* Smart Info by MattToast in https://github.com/CrayLabs/SmartSim/pull/350
* `smart validate` should not hang when error in TF process by MattToast in https://github.com/CrayLabs/SmartSim/pull/351
* Print attached files by al-rigazzi in https://github.com/CrayLabs/SmartSim/pull/352
* Update documentation surrounding contributions by ashao in https://github.com/CrayLabs/SmartSim/pull/344
* Remove references in docs to nonexistent CLI flag by MattToast in https://github.com/CrayLabs/SmartSim/pull/358
* Pretty print error message when onnx wheel not available by MattToast in https://github.com/CrayLabs/SmartSim/pull/359
* Update `cibuildwheel` version by MattToast in https://github.com/CrayLabs/SmartSim/pull/360
* Update changelog for release by MattToast in https://github.com/CrayLabs/SmartSim/pull/361
* Version Bump by MattToast in https://github.com/CrayLabs/SmartSim/pull/362


**Full Changelog**: https://github.com/CrayLabs/SmartSim/compare/v0.5.0...v0.5.1

0.5.0

Released on 6 July 2023

Description

A full list of changes and detailed notes can be found below:

- Update SmartRedis dependency to v0.4.1
- Fix tests for db models and scripts
- Fix add_ml_model() and add_script() documentation, tests, and code
- Remove ``requirements.txt`` and other places where
dependencies were defined
- Replace ``limit_app_cpus`` with
``limit_db_cpus`` for co-located orchestrators
- Remove wait time associated with Experiment launch summary
- Update and rename Redis conf file
- Migrate from redis-py-cluster to redis-py
- Update full test suite to not require a TF wheel at test time
- Update doc strings
- Remove deprecated code
- Relax the coloredlogs version
- Update Fortran tutorials for SmartRedis
- Add support for multiple network interface binding in Orchestrator
and Colocated DBs
- Add typehints and static analysis

Detailed notes

- Updates SmartRedis to the most current release ([PR316](https://github.com/CrayLabs/SmartSim/pull/316))
- Fixes and enhancements to documentation ([PR317](https://github.com/CrayLabs/SmartSim/pull/317), [PR314](https://github.com/CrayLabs/SmartSim/pull/314), [PR287](https://github.com/CrayLabs/SmartSim/pull/287))
- Various fixes and enhancements to the test suite
([PR315](https://github.com/CrayLabs/SmartSim/pull/314), [PR312](https://github.com/CrayLabs/SmartSim/pull/312), [PR310](https://github.com/CrayLabs/SmartSim/pull/310), [PR302](https://github.com/CrayLabs/SmartSim/pull/302), [PR283](https://github.com/CrayLabs/SmartSim/pull/283))
- Fix a defect in the tests related to database models and scripts
that was causing key collisions when testing on workload managers ([PR313](https://github.com/CrayLabs/SmartSim/pull/313))
- Remove ``requirements.txt`` and other places where
dependencies were defined. ([PR307](https://github.com/CrayLabs/SmartSim/pull/307))
- Fix defect where dictionaries used to create run settings can be
changed unexpectedly due to copy-by-ref ([PR305](https://github.com/CrayLabs/SmartSim/pull/305))
- The underlying code for Model.add_ml_model() and Model.add_script()
was fixed to correctly handle multi-GPU configurations. Tests were
updated to run on non-local launchers. Documentation was updated and
fixed. Also, the default testing interface has been changed to lo
instead of ipogif. ([PR304](https://github.com/CrayLabs/SmartSim/pull/304))
- Typehints have been added. A makefile target ``make check-mypy``
executes static analysis with mypy. ([PR295](https://github.com/CrayLabs/SmartSim/pull/295), [PR301].
(https://github.com/CrayLabs/SmartSim/pull/301), [PR303](https://github.com/CrayLabs/SmartSim/pull/303))
- Replace ``limit_app_cpus`` with
``limit_db_cpus`` for co-located orchestrators. This
resolves some incorrect behavior/assumptions about how the
application would be pinned. Instead, users should directly specify
the binding options in their application using the options
appropriate for their launcher ([PR306](https://github.com/CrayLabs/SmartSim/pull/306))
- Simplify code in [random_permutations]{.title-ref} parameter
generation strategy ([PR300](https://github.com/CrayLabs/SmartSim/pull/300))
- Remove wait time associated with Experiment launch summary ([PR298](https://github.com/CrayLabs/SmartSim/pull/298))
- Update Redis conf file to conform with Redis v7.0.5 conf file ([PR293](https://github.com/CrayLabs/SmartSim/pull/293))
- Migrate from redis-py-cluster to redis-py for cluster status checks ([PR292](https://github.com/CrayLabs/SmartSim/pull/292))
- Update full test suite to no longer require a tensorflow wheel to be available at test time. ([PR291](https://github.com/CrayLabs/SmartSim/pull/291))
- Correct spelling of colocated in doc strings ([PR290](https://github.com/CrayLabs/SmartSim/pull/290))
- Deprecated launcher-specific orchestrators, constants, and ML
utilities were removed. ([PR289](https://github.com/CrayLabs/SmartSim/pull/289))
- Relax the coloredlogs version to be greater than 10.0 ([PR288](https://github.com/CrayLabs/SmartSim/pull/288))
- Update the Github Actions runner image from
``macos-10.15`` to ``macos-12``. The former
began deprecation in May 2022 and was finally removed in May 2023. ([PR285](https://github.com/CrayLabs/SmartSim/pull/285))
- The Fortran tutorials had not been fully updated to show how to
handle return/error codes. These have now all been updated. ([PR284](https://github.com/CrayLabs/SmartSim/pull/284))
- Orchestrator and Colocated DB now accept a list of interfaces to
bind to. The argument name is still ``interface`` for
backward compatibility reasons. ([PR281](https://github.com/CrayLabs/SmartSim/pull/281))
- Typehints have been added to public APIs. A makefile target to
execute static analysis with mypy is available ``make
check-mypy`` ([PR295](https://github.com/CrayLabs/SmartSim/pull/295))

0.4.2

Released on April 12, 2023

Description

This release of SmartSim had a focus on polishing and extending exiting
features already provided by SmartSim. Most notably, this release
provides support to allow users to colocate their models with an
orchestrator using Unix domain sockets and support for launching models
as batch jobs.

Additionally, SmartSim has updated its tool chains to provide a better
user experience. Notably, SmarSim can now be used with Python 3.10,
Redis 7.0.5, and RedisAI 1.2.7. Furthermore, SmartSim now utilizes
SmartRedis\'s aggregation lists to streamline the use and extension of
ML data loaders, making working with popular machine learning frameworks
in SmartSim a breeze.

A full list of changes and detailed notes can be found below:

- Add support for colocating an orchestrator over UDS
- Add support for Python 3.10, deprecate support for Python 3.7 and
RedisAI 1.2.3
- Drop support for Ray
- Update ML data loaders to make use of SmartRedis\'s aggregation
lists
- Allow for models to be launched independently as batch jobs
- Update to current version of Redis to 7.0.5
- Add support for RedisAI 1.2.7, pyTorch 1.11.0, Tensorflow 2.8.0,
ONNXRuntime 1.11.1
- Fix bug in colocated database entrypoint when loading PyTorch models
- Fix test suite behavior with environment variables

Detailed Notes

- Running some tests could result in some SmartSim-specific
environment variables to be set. Such environment variables are now
reset after each test execution. Also, a warning for environment
variable usage in Slurm was added, to make the user aware in case an
environment variable will not be assigned the desired value with
[\--export]{.title-ref}.
([PR270](https://github.com/CrayLabs/SmartSim/pull/270))
- The PyTorch and TensorFlow data loaders were update to make use of
aggregation lists. This breaks their API, but makes them easier to
use. ([PR264](https://github.com/CrayLabs/SmartSim/pull/264))
- The support for Ray was dropped, as its most recent versions caused
problems when deployed through SmartSim. We plan to release a
separate add-on library to accomplish the same results. If you are
interested in getting the Ray launch functionality back in your
workflow, please get in touch with us!
([PR263](https://github.com/CrayLabs/SmartSim/pull/263))
- Update from Redis version 6.0.8 to 7.0.5.
([PR258](https://github.com/CrayLabs/SmartSim/pull/258))
- Adds support for Python 3.10 without the ONNX machine learning
backend. Deprecates support for Python 3.7 as it will stop receiving
security updates. Deprecates support for RedisAI 1.2.3. Update the
build process to be able to correctly fetch supported dependencies.
If a user attempts to build an unsupported dependency, an error
message is shown highlighting the discrepancy.
([PR256](https://github.com/CrayLabs/SmartSim/pull/256))
- Models were given a [batch_settings]{.title-ref} attribute. When
launching a model through [Experiment.start]{.title-ref} the
[Experiment]{.title-ref} will first check for a non-nullish value at
that attribute. If the check is satisfied, the
[Experiment]{.title-ref} will attempt to wrap the underlying run
command in a batch job using the object referenced at
[Model.batch_settings]{.title-ref} as the batch settings for the
job. If the check is not satisfied, the [Model]{.title-ref} is
launched in the traditional manner as a job step.
([PR245](https://github.com/CrayLabs/SmartSim/pull/245))
- Fix bug in colocated database entrypoint stemming from uninitialized
variables. This bug affects PyTorch models being loaded into the
database. ([PR237](https://github.com/CrayLabs/SmartSim/pull/237))
- The release of RedisAI 1.2.7 allows us to update support for recent
versions of PyTorch, Tensorflow, and ONNX
([PR234](https://github.com/CrayLabs/SmartSim/pull/234))
- Make installation of correct Torch backend more reliable according
to instruction from PyTorch
- In addition to TCP, add UDS support for colocating an orchestrator
with models. Methods [Model.colocate_db_tcp]{.title-ref} and
[Model.colocate_db_uds]{.title-ref} were added to expose this
functionality. The [Model.colocate_db]{.title-ref} method remains
and uses TCP for backward compatibility
([PR246](https://github.com/CrayLabs/SmartSim/pull/246))

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.