Description
Description
SmartSim's two-step install process (a 'pip install' followed by the smart build
step) can inadvertently change versions of packges that exist in already established conda or Python virtual environments. This is particularly a problem in the smart build
step where we rely on fixed versions of the ML backends for compatibility with RedisAI. While we currently allow users the option to specify a path to tensorflow and torch installations, smart build
will currently attempt to install the torch package.
During the pip install phase, these ML packages are only installed if the [ml]
extras is specified. The default SmartSim install thus has a minimal number of dependencies, but the documentation needs to be updated to explain the SmartSim capabilities that are enabled by the different variants of both the pip install and smart build.
Justification
Give the users guidance and control over what python packages are installed during the SmartSim install. Users will thus more likely be able to incorporate SmartSim into existing python environments and reduce the potential for dependency conflicts. This is particularly pertinent for users who may have compiled custom versions of python or ML libraries optimized for their systems and hardware.
Implementation Strategy
- Include
smart build
option to never install Python packages, but issue a warning that this may lead to undesirable behavior - Add documentation to describe what each of the 'extra' options installs during the
pip install
phase - Describe the steps needed to enable a specific functionality of SmartSim (i.e.
pip install smartsim
will allow users to launch experiments and the orchestrator, but not allow for ML models to be loaded or run from the database)