Skip to content

[FEAT] Introduce pasqal local (on-prem) setup#32

Open
MatthieuMoreau0 wants to merge 22 commits intomainfrom
mm/pasqal-local-setup
Open

[FEAT] Introduce pasqal local (on-prem) setup#32
MatthieuMoreau0 wants to merge 22 commits intomainfrom
mm/pasqal-local-setup

Conversation

@MatthieuMoreau0
Copy link
Collaborator

@MatthieuMoreau0 MatthieuMoreau0 commented Jan 23, 2026

Description of Change

Introduce a new implementation of the QRMI for Pasqal on-prem QPUs. This implementation is mostly inspired from the pasqal-cloud implementation with a few tweaks for authentication.

Munge

This implementation depends on munge to authenticate the user making HTTP calls to the middleware. The auth flow is described in the diagram below:

sequenceDiagram
    autonumber
    participant SpankPlugin as Spank plugin
    participant USER_ENV as User env
    participant Middleware
    SpankPlugin->>Middleware: Prolog - Create session (slurm munge token + user UID)
    Middleware-->>SpankPlugin: Session ID
    SpankPlugin->>USER_ENV: Inject session ID
    activate USER_ENV
    loop User script
        USER_ENV->>Middleware: Queue job (user munge token + session ID)
        Middleware->>QPU: Send job
        QPU-->>Middleware: Job results
        Middleware-->>USER_ENV: Job results
    end
    deactivate USER_ENV
    SpankPlugin->>Middleware: Epilog - Revoke session
Loading

This dependency to munge is unique to the pasqal-local setup, so we introduce a munge feature that can be optionally activated when compiling the qrmi:

cargo build --release --features munge

There is a linked open PR to optionally link munge to the spank_qrmi plugin using a dedicated flag: qiskit-community/spank-plugins#172

Checklist ✅

  • Have you included a description of this change?
  • Have you updated the relevant documentation to reflect this change?
  • Have you made sure CI is passing before requesting a review?

Ticket

  • Fixes #
  • Is Part of #

Copy link
Collaborator

@awennersteen awennersteen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Set-up of project looks OK to me :)

I noted down some small nits that we have to remember from the original init of the code base don the cloud version

@AurelienNober
Copy link
Collaborator

@MatthieuMoreau0 can you share how you acquire?

@MatthieuMoreau0 MatthieuMoreau0 force-pushed the mm/pasqal-local-setup branch from b3f854a to 576f9e1 Compare March 6, 2026 13:34
@MatthieuMoreau0 MatthieuMoreau0 marked this pull request as ready for review March 13, 2026 17:28
Comment on lines +64 to +65
//TODO: Define when this should return false
Ok(true)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe define a new endpoint in Warden and update this behavior within warden later ?

Copy link
Collaborator Author

@MatthieuMoreau0 MatthieuMoreau0 Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want us to define the expected behaviour properly, so I suggest we do this in a separate MR. OK for you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants