-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Doc] Reworking README, adding LICENSE
- Loading branch information
Showing
2 changed files
with
51 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
PASQAL OPEN-SOURCE SOFTWARE LICENSE AGREEMENT (MIT-derived) | ||
|
||
The author of the License is: | ||
Pasqal, a Société par Actions Simplifiée (Simplified Joint Stock Company) registered under number 849 441 522 at the Registre du commerce et des sociétés (Trade and Companies Register) of Evry – France, headquartered at 7 rue Leonard de Vinci – 91300 – Massy – France, duly represented by its Président, M. Georges-Olivier REYMOND, | ||
|
||
Hereafter referred to as « the Licensor » | ||
|
||
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software (the “Licensee”) and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. The Software is “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise arising from, out of or in connection with the Software or the use or other dealings in the Software. | ||
|
||
- If use of the Software leads to the necessary use of any patent of the Licensor and/or any of its Affiliates (defined as a company owned or controlled by the Licensor), the Licensee is granted a royalty-free license, in any country where such patent is in force, to use the object of such patent; or use the process covered by such patent, | ||
|
||
- Such a patent license is granted for internal research or academic use of the Licensee's, which includes use by employees and students of the Licensee, acting on behalf of the Licensee, for research purposes only. | ||
|
||
- The License is governed by the laws of France. Any dispute relating to the License, notably its execution, performance and/or termination shall be brought to, heard and tried by the Tribunal Judiciaire de Paris, regardless of the rules of jurisdiction in the matter. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,110 +4,64 @@ | |
# Emu-MPS | ||
</div> | ||
|
||
**EMU-MPS** is a Pulser backend, designed to **EMU**late the dynamics of programmable arrays of neutral atoms, with matrix product states (**MPS**). It allows users to increase the number of qubits and reduce computation time. | ||
**EMU-MPS** is a backend for the [Pulser low-level Quantum Programming toolkit](https://pulser.readthedocs.io). EMU-MPS lets you transparently run Quantum Algorithms on a simulated device, using GPU acceleration if available. More in depth, EMU-MPS is designed to **EMU**late the dynamics of programmable arrays of neutral atoms, with matrix product states (**MPS**). This design makes it faster and more memory-efficient than previous generations of quantum emulators, which means that you can emulate systems with larger number of qubits, faster. | ||
|
||
Join us on [Slack](https://pasqalworkspace.slack.com/archives/C07MUV5K7EU) or by [e-mail](mailto:[email protected]) to give us feedback about how you plan to use Emu-MPS or if you require specific feature-upgrades. | ||
|
||
|
||
## Getting started | ||
|
||
You can install from source, or download the package from the private pypi registry that pasqal maintains in gitlab. | ||
For developers, we recommend installing from source, for users we recommend installing from the registry. | ||
## Installation | ||
|
||
**Warning:** installing emu-mps will update pulser-core | ||
|
||
We always recommend using a virtual environment. | ||
|
||
<details> | ||
<summary>Click me to see how it is done</summary> | ||
|
||
#### Create a virtual environment using python | ||
|
||
``` | ||
python -m venv .venv | ||
``` | ||
|
||
Or | ||
|
||
``` | ||
python -m venv /path/to/new/virtual/environment | ||
``` | ||
|
||
Replace `/path/to/new/virtual/environment` with your desired directory path. | ||
|
||
Then activate the environment On linux or MacOS | ||
### Using `hatch`, `uv` or any pyproject-compatible Python manager | ||
|
||
``` | ||
source /path/to/new/virtual/environment/bin/activate | ||
``` | ||
Edit file `pyproject.toml` to add the line | ||
|
||
While on Windows it's | ||
|
||
``` | ||
C:\> /path/to/new/virtual/environment/Scripts/activate | ||
``` | ||
```toml | ||
"emu-mps" | ||
``` | ||
|
||
Remember to replace `/path/to/new/virtual/environment` with the actual path to your virtual environment. Once the environment is activated, you can clone emu_mps and install it using | ||
to the list of `dependencies`. | ||
|
||
</details> | ||
|
||
### installing from the registry | ||
### Using `pip` or `pipx` | ||
To install the `pipy` package using `pip` or `pipx` | ||
|
||
When pip is configured to know about the pasqal registry, Emu-MPS installs as | ||
1. Create a `venv` if that's not done yet | ||
|
||
```bash | ||
pip install emu-mps | ||
``` | ||
When pip is not already configured, the easiest way to do so, is to add a file `~/.config/pip/pip.conf` containing: | ||
```sh | ||
$ python -m venv venv | ||
|
||
``` | ||
[global] | ||
extra-index-url=https://gitlab.pasqal.com/api/v4/projects/597/packages/pypi/simple | ||
possible.other.urls | ||
``` | ||
|
||
As this shows, it is also possible to have multiple extra repositories configured. Note that the order is not important. | ||
|
||
It is also possible to add the `extra-index-url` to the `pip install` command directly, if you somehow don't want to create a `pip.conf` file. | ||
2. Enter the venv | ||
|
||
### installing from source | ||
git clone this [repository ](https://gitlab.pasqal.com/emulation/rydberg-atoms/emu-ct) or download | ||
If you're running Unix: | ||
|
||
|
||
Then, `cd` into the root folder of the repo and type | ||
|
||
```bash | ||
pip install -e . | ||
```sh | ||
$ . venv/bin/activate | ||
``` | ||
|
||
<details> | ||
<summary>Guidelines for developers </summary> | ||
We recommend using an environment, git clone the repository, then inside the `emu_mps` folder | ||
If you're running Windows: | ||
|
||
```bash | ||
pip install -e . | ||
```sh | ||
C:\> /path/to/new/virtual/environment/Scripts/activate | ||
``` | ||
|
||
Also, the installation of pytest, nbmake, pre-commit. | ||
3. Install the package | ||
|
||
Do not forget to run the unit test suite by simply running `pytest` command. | ||
```sh | ||
$ pip install emu-mps | ||
# or | ||
$ pipx install emu-mps | ||
``` | ||
|
||
Another way can be using hatch. | ||
|
||
#### virtual environment with `hatch` | ||
Join us on [Slack](https://pasqalworkspace.slack.com/archives/C07MUV5K7EU) or by [e-mail](mailto:[email protected]) to give us feedback about how you plan to use Emu-MPS or if you require specific feature-upgrades. | ||
|
||
```bash | ||
python -m pip install hatch | ||
python -m hatch -v shell | ||
``` | ||
## Usage | ||
|
||
When inside the shell with development dependencies, install first the pre-commit hook: | ||
``` | ||
pre-commit install | ||
``` | ||
</details> | ||
For the time being, the easiest way to learn how to use this package is to look | ||
at the [examples](examples/emu_mps_examples). | ||
|
||
## Check the tutorial notebooks and example scripts | ||
See also the [full API documentation](https://pqs.pages.pasqal.com/emu_mps/). | ||
|
||
For more information, you can check the tutorials and examples located in the [examples folder](https://gitlab.pasqal.com/emulation/rydberg-atoms/emu-ct/-/tree/main/examples?ref_type=heads) | ||
|
||
|
@@ -116,4 +70,8 @@ For more information, you can check the tutorials and examples located in the [e | |
Please check the [documentation](./docs/index.md) page for more info about contributing, the API, benchmarks, etc. | ||
|
||
|
||
![Code Coverage](https://img.shields.io/badge/Coverage-95%25-brightgreen.svg) | ||
## Getting in touch | ||
|
||
- [Pasqal Community Portal](https://community.pasqal.com/) (forums, chat, tutorials, examples, code library). | ||
- [GitHub Repository](https://github.com/pasqal-io/quantum-evolution-kernel) (source code, issue tracker). | ||
- [Professional Support](https://www.pasqal.com/contact-us/) (if you need tech support, custom licenses, a variant of this library optimized for your workload, your own QPU, remote access to a QPU, ...) |