Skip to navigationSkip to main contentSkip to footerScaleway Docs HomepageAsk our AI
Ask our AI

Program Quandela QPUs

Quandela is a European leader in photonic quantum computing. Their technology relies on manipulating light (single photons) through linear optical components to perform quantum calculations.

Unlike superconducting qubits or cold atoms, Quandela's photonic approach uses "qumodes" and photons that circulate in optical circuits at room temperature (although emitters and detectors require cooling). This offers a promising path towards a modular and scalable quantum computer.

To control these processors (QPUs) and run advanced simulations, Quandela develops Perceval, a reference open-source SDK.

See the Quandela processors information page for more details.

Access Quandela via Perceval

Before you start

To complete the actions presented below, you must have:

  • A Scaleway account with a valid Project ID
  • A Scaleway API key (secret key)
  • Python installed
  1. Install Quandela Perceval (External link).

    pip install perceval-quandela
  2. Create a file with the following script to create a session, define a simple circuit, and run it. Replace $SCW_PROJECT_ID and $SCW_SECRET_KEY with your Scaleway Project ID and secret key.

    Tip

    Scaleway Quantum Computing provides privileged access to Quandela's physical QPUs and high-performance emulators optimized for GPUs hardware. Integration is done directly via the perceval.providers.scaleway module.

    import perceval as pcvl
    import perceval.providers.scaleway as scw
    
    # The session handles resource allocation and billing
    session = scw.Session(
        platform_name="QPU-ASCELLA-6PQ",  # Example of a Ascella photonic platform
        project_id="$SCW_PROJECT_ID",
        token="$SCW_SECRET_KEY"
    )
    
    try:
        # Starts the session (provisions the resource, as it is a real QPU without booking, you will be billing on circuit & shot count)
        session.start()
    
        # Create the Remote Processor
        processor = session.build_remote_processor()
    
        # Define the Circuit (Simple Example: Hong-Ou-Mandel Interference)
        # Using a 50:50 Beam Splitter (Hadamard)
        circuit = pcvl.Circuit(2) // pcvl.BS.H()
    
        processor.set_circuit(circuit)
        processor.with_input(pcvl.BasicState("|1,1>")) # Input: 1 photon in each mode
        processor.min_detected_photons_filter(2)       # Keep only 2-photon events
    
        # Execution (Sampling)
        sampler = pcvl.algorithm.Sampler(processor, max_shots_per_call=10000)
        job = sampler.samples(1000) # Request 1000 shots
    
        print("Sampling results:")
        print(job['results'])
    
    finally:
        session.stop() # Stops the session
  3. Save the script. In this example, we save it as quandela.py.

  4. Run the script.

    python quandela.py
Tip

Manage a session using a context manager

You can use with scw.Session(...) as session to automatically handle starting and stopping a session, ensuring you do not forget to stop it.

Still need help?

Create a support ticket
No Results