couler
covalent
couler | covalent | |
---|---|---|
1 | 4 | |
890 | 698 | |
1.2% | 2.5% | |
5.2 | 8.6 | |
20 days ago | 10 days ago | |
Python | Python | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
couler
-
(Not) to Write a Pipeline
author seems to be describing the kind of patterns you might make with https://argoproj.github.io/argo-workflows/ . or see for example https://github.com/couler-proj/couler , which is an sdk for describing tasks that may be submitted to different workflow engines on the backend.
it's a little confusing to me that the author seems to object to "pipelines" and then equate them with messaging-queues. for me at least, "pipeline" vs "workflow-engine" vs "scheduler" are all basically synonyms in this context. those things may or may not be implemented with a message-queue for persistence, but the persistence layer itself is usually below the level of abstraction that $current_problem is really concerned with. like the author says, eventually you have to track state/timestamps/logs, but you get that from the beginning if you start with a workflow engine.
i agree with author that message-queues should not be a knee-jerk response to most problems because the LoE for edge-cases/observability/monitoring is huge. (maybe reach for a queue only if you may actually overwhelm whatever the "scheduler" can handle.) but don't build the scheduler from scratch either.. use argowf, kubeflow, or a more opinionated framework like airflow, mlflow, databricks, aws lamda or step-functions. all/any of these should have config or api that's robust enough to express rate-limit/retry stuff. almost any of these choices has better observability out-of-the-box than you can easily get from a queue. but most importantly.. they provide idioms for handling failure that data-science folks and junior devs can work with. the right way to structure code is just much more clear and things like structuring messages/events, subclassing workers, repeating/retrying tasks, is just harder to mess up.
covalent
-
Remote execution of code
Pretty interesting request, if SSH is not used, i would try using something like dask which uses tcp to connect and execute assuming your workers are in another machine.I also think something like covalent can be used to extend your own custom plugin in their ecosystem to connect how you want. We have a very custom private plugin written on top of covalent's to have a custom protocol to connect our central on-prem GPU machines to our local laptops that is rpc based, mostly for high performance as well as some mandate security from where the GPU machines are. Once done it is pretty much something like
-
Prefect alternatives meant for Slurm (HPC)
Does anyone here have any suggestions of alternatives tailored for Slurm on HPC? I know Covalent is one option, but I'm curious about others as well. Ideally the platform should be Pythonic, have a GUI, and be reasonably active/well-maintained.
- Show HN: Covalent – distributed computing for ML, HPC and Quantum (open source)
-
Your strategies for offloading computation
Came across this new tool exactly for this - https://github.com/AgnostiqHQ/covalent
What are some alternatives?
soopervisor - ☁️ Export Ploomber pipelines to Kubernetes (Argo), Airflow, AWS Batch, SLURM, and Kubeflow.
SmartSim - SmartSim Infrastructure Library.
community - Information about the Kubeflow community including proposals and governance information.
kestra - Infinitely scalable, event-driven, language-agnostic orchestration and scheduling platform to manage millions of workflows declaratively in code.
argo - Workflow Engine for Kubernetes
cadence-python - Python framework for Cadence Workflow Service
awesome-argo - A curated list of awesome projects and resources related to Argo (a CNCF graduated project)
mlnotify - 🔔 No need to keep checking your training - just one import line and you'll know the second it's done.
hera - Hera is an Argo Python SDK. Hera aims to make construction and submission of various Argo Project resources easy and accessible to everyone! Hera abstracts away low-level setup details while still maintaining a consistent vocabulary with Argo. ⭐️ Remember to star!
dagster - An orchestration platform for the development, production, and observation of data assets.
elyra - Elyra extends JupyterLab with an AI centric approach.
bytehub - ByteHub: making feature stores simple