Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
This repository was archived by the owner on Jan 12, 2024. It is now read-only.

HalfMoon example on Quantum Hardware #764

@wadeschulz

Description

@wadeschulz

Describe the bug
We are trying to get the Azure Quantum ML classifier with the HalfMoon example running on quantum hardware/Azure simulator, but are running into issues with the job submission using the Python host file. Trying to determine if we're just doing something incorrectly in the submission or if running this on the remote system is not possible. Same error occurs with other Quantum targets, but works fine with the simulate command locally.

To Reproduce
Steps to reproduce the behavior:

  1. Clone or copy the HalfMoon classifier code
  2. Change the "simulate" calls to the HalfMoon objectives to:
qsharp.azure.execute(
      TrainHalfMoonModel,
      trainingVectors=data['TrainingData']['Features'],
      trainingLabels=data['TrainingData']['Labels'],
      initialParameters=parameter_starting_points,
      shots=1000,
      jobName=f"Train half moon model"
   )
  1. Attempt to run on IonQ simulator target
  2. See error
{'text/plain': 'Connecting to Azure Quantum...', 'application/x-qsharp-data': '"Connecting to Azure Quantum..."'}
Connected to Azure Quantum workspace refactorquantum in location eastus.
Loading package Microsoft.Quantum.Providers.IonQ and dependencies...
Active target is now ionq.simulator
The Q# operation Microsoft.Quantum.Samples.TrainHalfMoonModel could not be compiled as an entry point for job execution.
Invalid snippet code
fail: Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator[0]
      QS6235 (/entrypoint.qs:Microsoft.VisualStudio.LanguageServer.Protocol.Range): Multi-dimensional arrays are not supported in entry point arguments.
fail: Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator[0]
      QS6235 (/entrypoint.qs:Microsoft.VisualStudio.LanguageServer.Protocol.Range): Multi-dimensional arrays are not supported in entry point arguments.
fail: Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator[0]
      QS5027 (/entrypoint.qs:Microsoft.VisualStudio.LanguageServer.Protocol.Range): The callable TrainHalfMoonModel requires runtime capabilities which are not supported by the target ionq.simulator.
      Result Opacity: Transparent
      Classical Capability: Full
fail: Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator[0]
      QS6238 ((null):Microsoft.VisualStudio.LanguageServer.Protocol.Range): Missing entry point. Execution on a quantum processor requires that a Q# entry point is defined using the @EntryPoint() attribute. Any C# driver code should be defined in a separate project.
fail: Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator[0]
      Error compiling entry point for operation Microsoft.Quantum.Samples.TrainHalfMoonModel.
fail: Microsoft.Quantum.IQSharp.AzureClient.AzureClient[0]
      The Q# operation Microsoft.Quantum.Samples.TrainHalfMoonModel could not be compiled as an entry point for job execution.
      Microsoft.Quantum.IQSharp.Common.CompilationErrorsException: Invalid snippet code
         at Microsoft.Quantum.IQSharp.AzureClient.EntryPointGenerator.Generate(String operationName, String executionTarget, TargetCapability capability, Boolean generateQir) in D:\a\1\s\submodules\iqsharp\src\AzureClient\EntryPoint\EntryPointGenerator.cs:line 166
         at Microsoft.Quantum.IQSharp.AzureClient.AzureClient.SubmitOrExecuteJobAsync(IChannel channel, AzureSubmissionContext submissionContext, Boolean execute, CancellationToken cancellationToken) in D:\a\1\s\submodules\iqsharp\src\AzureClient\AzureClient.cs:line 435
/entrypoint.qs(5,69): error QS6235: Multi-dimensional arrays are not supported in entry point arguments.
/entrypoint.qs(5,125): error QS6235: Multi-dimensional arrays are not supported in entry point arguments.
/entrypoint.qs(7,32): error QS5027: The callable TrainHalfMoonModel requires runtime capabilities which are not supported by the target ionq.simulator.
Result Opacity: Transparent
Classical Capability: Full
(1,1): error QS6238: Missing entry point. Execution on a quantum processor requires that a Q# entry point is defined using the @EntryPoint() attribute. Any C# driver code should be defined in a separate project.
Traceback (most recent call last):
  File "run_remote.py", line 47, in <module>
    (parameters, bias) = qsharp.azure.execute(
  File "/Users/***/miniconda3/envs/quantum/lib/python3.9/site-packages/qsharp/azure.py", line 161, in execute
    if "error_code" in result: raise AzureError(result)
qsharp.azure.AzureError: {'error_code': 1010, 'error_name': 'InvalidEntryPoint', 'error_description': 'The specified Q# operation cannot be used as an entry point for Azure Quantum job submission.'}

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions