Top Related Projects
A Python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Train a quantum computer the same way as a neural network.
A Python library for quantum programming using Quil.
Quick Overview
Covalent is an open-source Pythonic workflow orchestration tool for high-performance computing and machine learning. It allows users to build and run complex, distributed workflows on various backends, including local machines, clusters, and cloud platforms. Covalent aims to simplify the process of scaling up computations and managing resources efficiently.
Pros
- Flexible and scalable: Supports various execution backends and can handle complex, distributed workflows
- Pythonic interface: Easy to use for Python developers, integrating seamlessly with existing code
- Visualization tools: Provides built-in tools for visualizing and monitoring workflows
- Reproducibility: Ensures reproducible results across different environments
Cons
- Learning curve: May require some time to understand the concepts and best practices
- Limited language support: Primarily focused on Python, which may not suit all use cases
- Dependency management: Can be challenging to manage dependencies across different execution environments
- Documentation: While improving, some areas of documentation may still need expansion
Code Examples
- Defining a simple task:
import covalent as ct
@ct.electron
def add_numbers(a: int, b: int) -> int:
return a + b
- Creating a workflow:
@ct.lattice
def simple_workflow(x: int, y: int) -> int:
result = add_numbers(x, y)
return result
- Executing the workflow:
dispatch_id = ct.dispatch(simple_workflow)(5, 3)
result = ct.get_result(dispatch_id, wait=True)
print(f"Result: {result.result}")
Getting Started
To get started with Covalent:
- Install Covalent:
pip install covalent
- Start the Covalent server:
covalent start
- Create a Python script with your workflow:
import covalent as ct
@ct.electron
def task(x):
return x * 2
@ct.lattice
def workflow(input_value):
return task(input_value)
dispatch_id = ct.dispatch(workflow)(5)
result = ct.get_result(dispatch_id, wait=True)
print(f"Result: {result.result}")
- Run the script and view results in the Covalent UI at
http://localhost:48008
Competitor Comparisons
A Python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Pros of Cirq
- More mature and widely adopted in the quantum computing community
- Extensive documentation and examples for various quantum algorithms
- Strong integration with other Google quantum computing tools
Cons of Cirq
- Steeper learning curve for beginners in quantum computing
- Less focus on workflow management and distributed computing
Code Comparison
Cirq example:
import cirq
# Create a qubit
qubit = cirq.GridQubit(0, 0)
# Create a circuit
circuit = cirq.Circuit(
cirq.H(qubit), # Hadamard gate
cirq.measure(qubit, key='m') # Measurement
)
# Run the circuit
simulator = cirq.Simulator()
result = simulator.run(circuit, repetitions=1000)
print(result.histogram(key='m'))
Covalent example:
import covalent as ct
@ct.electron
def quantum_task():
# Quantum computation logic here
return result
@ct.lattice
def workflow():
result = quantum_task()
return result
dispatch_id = ct.dispatch(workflow)()
result = ct.get_result(dispatch_id, wait=True)
While Cirq focuses on quantum circuit construction and simulation, Covalent emphasizes workflow management and distributed computing for quantum and classical tasks.
Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
Pros of Qiskit
- More comprehensive quantum computing framework with broader functionality
- Larger and more active community, resulting in frequent updates and extensive documentation
- Supports a wider range of quantum hardware providers and simulators
Cons of Qiskit
- Steeper learning curve for beginners due to its extensive feature set
- Can be resource-intensive for complex quantum simulations
Code Comparison
Qiskit example:
from qiskit import QuantumCircuit, execute, Aer
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
backend = Aer.get_backend('qasm_simulator')
job = execute(qc, backend, shots=1000)
result = job.result()
Covalent example:
import covalent as ct
@ct.electron
def my_task():
return "Hello, Covalent!"
@ct.lattice
def my_workflow():
result = my_task()
return result
dispatch_id = ct.dispatch(my_workflow)()
While Qiskit focuses on quantum circuit creation and execution, Covalent provides a workflow management system for distributed computing. Qiskit offers more quantum-specific functionality, whereas Covalent is designed for general-purpose distributed task execution and workflow orchestration.
PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Train a quantum computer the same way as a neural network.
Pros of PennyLane
- Focused on quantum machine learning and quantum-classical hybrid algorithms
- Extensive library of quantum operations and built-in quantum devices
- Seamless integration with popular machine learning frameworks like PyTorch and TensorFlow
Cons of PennyLane
- Steeper learning curve for users without quantum computing background
- Limited to quantum computing applications, less versatile for general workflow management
- May require more computational resources for complex quantum simulations
Code Comparison
PennyLane example:
import pennylane as qml
dev = qml.device('default.qubit', wires=2)
@qml.qnode(dev)
def quantum_circuit(params):
qml.RX(params[0], wires=0)
qml.RY(params[1], wires=1)
return qml.expval(qml.PauliZ(0))
Covalent example:
import covalent as ct
@ct.electron
def task1(x):
return x * 2
@ct.lattice
def workflow(x):
result = task1(x)
return result
The code examples highlight the different focus areas of the two libraries. PennyLane is designed for quantum computing tasks, while Covalent is geared towards general workflow management and distributed computing.
A Python library for quantum programming using Quil.
Pros of pyquil
- Focused specifically on quantum computing and Rigetti hardware
- More mature project with longer development history
- Extensive documentation and examples for quantum programming
Cons of pyquil
- Limited to quantum computing applications
- Requires specialized knowledge of quantum algorithms
- Less flexible for general-purpose workflow management
Code Comparison
pyquil:
from pyquil import Program
from pyquil.gates import H, CNOT
p = Program()
p += H(0)
p += CNOT(0, 1)
Covalent:
import covalent as ct
@ct.electron
def my_function(x, y):
return x + y
@ct.lattice
def workflow(a, b):
result = my_function(a, b)
return result
Summary
pyquil is a specialized library for quantum computing, particularly suited for Rigetti hardware. It offers deep integration with quantum systems but has a narrower focus. Covalent, on the other hand, is a more general-purpose workflow management tool that can be applied to various computational tasks, including but not limited to quantum computing. While pyquil provides more quantum-specific features, Covalent offers greater flexibility for diverse computational workflows.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Covalent Design System
Covalent is Teradata's design system used to create Teradata branded experiences. This space is intended to be used to support developers creating coded experiences for Teradata products. Currently we are only supporting angular and a library of web components.
Vision: To build an atomic, reusable component platform for Teradata to consume, while collaborating in an open source model.
Setup
- Ensure you have Node 18.12.0+
- Install Node packages
npm ci
- Run local build
npm run start
- Getting Started
- Contributing Guidelines
- Developer Guide
- Upgrading
- Releasing
- Changelog
- StackBlitz Template
- Plunker Template
Angular Support
Certain covalent version are meant for certain angular versions, and here is the matrix:
Covalent | Angular |
---|---|
2.X | 8.X |
3.X | 9.X / 10.X / 11.x |
4.X | 12.X / 13.X |
5.X | 14.X |
6.X | 15.X |
7.X | 16.X |
8.X | 17.X |
Browser Support
Covalent is built on a CSS Flexbox layout and all layouts and components heavily rely up that support, so the current browsers are supported in order or recommendation:
Current version - 1 for the following:
Chrome | Firefox | Safari | Edge | Mobile Chrome | Mobile Safari | |
---|---|---|---|---|---|---|
Supported | â | â | â | â | ~ | ~ |
~ Indicates limited testing & lower priority
Running Chromatic
npx chromatic --project-token=${CHROMATIC_PROJECT_TOKEN}
Top Related Projects
A Python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
PennyLane is a cross-platform Python library for quantum computing, quantum machine learning, and quantum chemistry. Train a quantum computer the same way as a neural network.
A Python library for quantum programming using Quil.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot