Get Started
Aqarios Luna is a platform to make quantum computing accessible and impactful for individuals, academia and businesses. From initial concept to deployment, Luna supports every step in creating quantum-powered solutions, with a primary focus on tackling complex optimization challenges.
While quantum computing holds immense promise, developing and implementing quantum applications can be a barrier. Luna simplifies this process, offering an intuitive interface that grants easy access to quantum algorithms and hardware, allowing users to focus on solving real-world problems without requiring deep quantum expertise. For advanced users, Luna also provides extensive customization options to tailor workflows and delve into any details as needed.
Luna Platform Services
Luna offers three closely related products designed to meet diverse needs: LunaSolve, LunaBench, and LunaQ. Each service is tailored to cater to specific requirements.
LunaSolve offers end-to-end solutions for tackling complex optimization challenges, providing tailored software, flexible algorithm options, and seamless hardware integration.
LunaBench automates your entire benchmarking process, managing algorithm integration, backend orchestration, and performance analysis to streamline algorithm evaluation.
LunaQ provides easy access to leading quantum hardware, simplifying the execution of quantum programs and enabling compatibility across multiple platforms.
Access Luna
For information about Luna's different access tiers and for requesting access, please visit our website: Luna Platform.
The Luna SDK is publicly available on PyPI and can be easily installed with:
pip3 install luna-quantum
Luna API Token
After registration, you will receive an API token used to authorize access to the platform. Simply provide this token when logging in to the platform. For step-by-step guidance, please refer to the tutorials for LunaSolve and LunaQ.
Luna Encryption
Luna supports custom encryption keys through the Bring Your Own Key (BYOK) paradigm. This ensures the security and privacy of your data. By using your own encryption key, you maintain full control over your data and can store the encryption keys in a secure location of your choice. This ensures that your data and QPU tokens are encrypted, preventing unauthorized access. Only those with the encryption key can decrypt and access this information.
Before using Luna, you must generate an encryption key. We recommend setting the encryption key as an environment variable called LUNA_ENCRYPTION_KEY
. You could also just pass your encryption key manually every time you define one of the above defined transactions. However, this is not recommended as you have private information openly displayed in your code.
First, start to generate your encryption key below before setting the key as an environment variable.
To generate the key, you can use the form below:
Please press generate key button
Alternatively, you can generate the encryption key using, for example, the following Python code:
from cryptography.fernet import Fernet
Fernet.generate_key()
You can set environment variables using the command line, terminal, or directly in your Python code. Below are examples of how to set these environment variables. Note that variables set this way are only available for the current session of the terminal, command line, or Python program.
Windows
set LUNA_ENCRYPTION_KEY="<ENCRYPTION_KEY>"
Linux/MacOS
export LUNA_ENCRYPTION_KEY="<ENCRYPTION_KEY>"
Python
import os
os.environ["LUNA_ENCRYPTION_KEY"] = "<ENCRYPTION_KEY>"
Alternatively, you can set persistent environment variables that are stored and available for any program or script in any terminal session without needing to be configured again. Here are the instructions for setting persistent environment variables:
Windows
- Open the System Control Panel.
- Select "System".
- Select "Advanced System Settings".
- Go to the "Advanced" tab.
- Select "Environment Variables..."
- Create a new entry named
LUNA_ENCRYPTION_KEY
with the value<ENCRYPTION_KEY>
. - Save your changes.
Linux/MacOS
- Open your shell-specific initialization files. This could be
~/.bashrc
forbash
or~/.zshrc
forzsh
. - At the end of the file, add the following line with the variable name and value:
export LUNA_ENCRYPTION_KEY="<ENCRYPTION_KEY>"
- Save your changes.
- Apply the changes by either restarting the terminal window or running:
source ~/.bashrc
Once you set the LUNA_ENCRYPTION_KEY
environment variable, this key will be used for all the following transactions:
- Storing QPU tokens
- Creating solutions for optimizations via LunaSolve
- Sending quantum circuits via LunaQ
- Retrieving solutions via LunaQ
- Retrieving LunaBench solutions via LunaSolve solvers
For more details on QPU tokens and their usage in Luna, please refer to the QPU tokens documentation.
Note: If you prefer not to set an environment variable, you can also manually enter your encryption key each time you define one of the transactions mentioned above. This provides flexibility if you prefer not to store the key in your environment settings.
# Example for setting encryption environment variable manually
solution = ls.solution.create(
optimization_id=opt.id,
solver_name='SA',
provider='dwave',
solver_parameters={},
qpu_tokens = None,
encryption_key = "<YOUR_ENCRYPTION_KEY>"
)
Start Using Luna
To begin using Luna, simply import the packages you've installed, and you can start immediately. The way you interact with Luna will vary depending on the service you are using. For more detailed information on how each service operates, practical demonstrations can be found on each service's respective page:
For a deeper exploration of features, consult our User Guide, discover pre-implemented use cases in the Use Case Library, find a list of pre-implemented quantum, hybrid, and classical Solvers & Algorithms.