Introducing Covalent v0.232.0
We’re excited to unveil Covalent v0.232.0, a transformative update focused on efficiency, memory optimizations, and simplified resource deployment flow. This release includes extensive improvements that refine memory utilization, and introduce useful abstractions like the Covalent deploy commands.
pip install covalent --upgrade
🌟 Key Features and Enhancements
1. Deploy cloud plugins with a single command
In our pursuit of making cloud computing more accessible, we’re excited to announce a game-changer in Covalent’s functionality: direct resource deployment right from Covalent. Until now, despite having abstracted access to compute resources, Covalent users needed to manually set up services like AWS/GCP/Azure Batch in the cloud console for networking and storage. This not only required toggling between the console and Covalent but also a fair amount of cloud knowledge. You can now manage your entire cloud computing setup directly from your local laptop, with Covalent handling the underlying complexity. This means less time jumping between tools and more time focusing on what you do best.
Get ready to deploy complex networking, storage, and compute resources effortlessly with just a command: covalent deploy up <resource>
. This feature is designed to reduce your workload significantly by automatically provisioning and configuring the necessary resources. Initially available for major cloud providers like AWS, GCP, and Azure Batch, we’re committed to expanding this functionality to additional platforms in the future.
Dive deeper into this feature and discover how it can transform your workflow in our documentation.
Key Features of Covalent Deploy:
- Simplified Resource Provisioning: Execute commands like
covalent deploy up awsbatch
to effortlessly initiate resource provisioning, contingent on pre-requisites like AWS CLI installation and credentials. - Configuration Management: With the deployment command, Covalent auto-configures the necessary settings.
Note: While the Covalent deploy functionality is fully operational, UX enhancements are underway to elevate user experience further.
2. Memory Usage Optimizations
In a bid to optimize memory utilization, Covalent has undergone substantial enhancements. Previously, the dispatcher would load the entire result object into memory, even for minor modifications—a process that proved inefficient, especially for expansive workflows.
With v0.232.0, we’ve overhauled this approach:
- Optimized Memory Usage: The dispatcher now accommodates a significantly higher upper limit for the number of electrons in a workflow, liberating it from RAM constraints.
- Efficient Asset Handling: Rather than loading hefty assets into memory unnecessarily, Covalent employs references, ensuring optimal resource allocation.
These refinements are complemented by several auxiliary features, including asset concepts, multipart dispatch mechanisms, task grouping, and an array of RESTful API endpoints.
Note: This is an opt-in mechanism for plugins to utilize this new feature. So if you are a plugin developer, we will soon be releasing a sample plugin utilizing these primitives to help transfer large files in an abstracted manner between tasks.
3. Revamped Documentation Website
Continuing our journey towards enhanced user experience, Covalent proudly introduces a revamped documentation website. The new documentation site is structured to provide a seamless navigation experience, making it easier for users to find exactly what they need, when they need it, for example all the Open-source documentation are now self contained in the Open-Source section. Improvements include an overhaul of How-to guides and tutorial section. A new page on covalent patterns have been introduced as well.
🤩 Other Features and Enhancements
- File Transfer Strategy for GCP Storage : Introducing a new GCP file transfer strategy that allows users to transfer files to and from Google Cloud buckets seamlessly. learn more
- File Transfer Strategy for Azure Blob Storage: We’ve rolled out a new Azure file transfer strategy enabling users to effortlessly transfer files before and after a task from Azure Blob. learn more
- Efficient Dispatching: Optimized dispatching for workflows (greatly useful for >1000 nodes) through a custom efficient serialization format, reducing the number of transferred files, especially those with zero size, leading to significantly faster dispatch speeds.
- Reset Executors post electron creation: The
executor
property has been added to theElectron
class, allowing dynamic updates of the executor post electron function definition, which is crucial for resource management flexibility. Further UX improvements are planned for upcoming releases. - Hide Post-Processing Electrons: Post-processing electrons in the UI are now hidden by default, revealing only in case of errors. A UI toggle has been added for optional visibility.
- Workdir Specification for Local and Dask Executors: Introducing the ability to specify a
workdir
forlocal
anddask
executors, along with acreate_unique_workdir
option for each electron/node, enabling users to maintain previous files without overwriting. - SQLiteTrigger in Triggers Module: The new
SQLiteTrigger
class in thetriggers
module allows for task triggering based on SQL database events, facilitating event-driven workflows. learn more
🔧 Key Fixes and Changes
- Transition to Pydantic 2 🌟 : Covalent has successfully transitioned to Pydantic 2, ensuring compatibility and enhanced functionality with this major update.
- Sublattices with Workflow Executor: Sublattices are now built using a specified
workflow_executor
, allowing for independent dependency management and enhanced computational capability for intensive graph construction. - Rsync Command Enhancement: The Rsync command has been fixed to recursively copy files when using SSH, enhancing file transfer reliability and efficiency.
- Filelock for Config File Locking: Adopting the
filelock
package for cross-platform file locking of the config file, addressing test failures and improving Windows compatibility.
📚 Full List of Features & Fixes in v0.232.0
For a detailed breakdown of all additions, modifications, and fixes, refer to the exhaustive list available in our change log.
🚀 Update today with pip install covalent --upgrade
and delve into our enriched documentation to harness the full potential of these groundbreaking features.
Happy dispatching with Covalent v0.232.0!
🤝 Join the Covalent Community
Your feedback fuels our evolution. Engage with our community forums or connect on Slack to share insights, report issues, or explore collaborative opportunities.