Fornecedor IonQ
Dica
Os utilizadores pela primeira vez recebem automaticamente 500 USD (USD)Créditos do Azure Quantum gratuitos para utilização com cada fornecedor de hardware quântico participante. Se tiver consumido todos os créditos e precisar de mais, pode aplicar-se ao programa créditos do Azure Quantum.
Os computadores quânticos do IonQ executam cálculos ao manipular os estados energéticos hiperfinidos dos iões Ytterbium com lasers. Os átomos são qubits da natureza — cada qubit é idêntico dentro e entre programas. As operações lógicas também podem ser executadas em qualquer par arbitrário de qubits, o que permite programas quânticos complexos sem entraves à conectividade física. Quer saber mais? Leia a descrição geral da tecnologia do computador quântico de iões presos do IonQ.
- Publisher: IonQ
- ID do Fornecedor:
ionq
O seguinte targets está disponível neste fornecedor:
Nome do destino | ID de Destino | Número de qubits | Description |
---|---|---|---|
Simulador quântico | ionq.simulator | 29 qubits | Simulador idealizado baseado na cloud do IonQ. Sem custos. |
Harmonia IonQ | ionq.qpu | 11 qubits | O computador quântico de iões presos do IonQ. |
IonQ Aria 1 | ionq.qpu.aria-1 | 25 qubits | O computador quântico Aria trapped-ion da IonQ. |
IonQ Aria 2 | ionq.qpu.aria-2 | 25 qubits | O computador quântico Aria trapped-ion da IonQ. |
IonQ Forte | ionq.qpu.forte | 32 qubits | O computador quântico Forte trapped-ion da IonQ. Disponível apenas na Pré-visualização Privada. |
Os IonQ targets correspondem a um No Control Flow perfil. Para obter mais informações sobre este target perfil e as suas limitações, veja Compreender target os tipos de perfil no Azure Quantum.
Simulador quântico
O simulador idealizado acelerado por GPU que suporta até 29 qubits, com o mesmo conjunto de portas que o IonQ fornece no seu hardware quântico, um ótimo local para realizar trabalhos de verificação prévia antes de os executar num computador quântico real.
- Tipo de tarefa:
Simulation
- Formato de Dados:
ionq.circuit.v1
- ID de Destino:
ionq.simulator
- Perfil de Execução de Destino: No Control Flow
Computador quântico IonQ Harmony
O IonQ Harmony é um computador quântico de iões preso e é dinamicamente reconfigurável no software para utilizar até 11 qubits. Todos os qubits estão totalmente ligados, o que significa que pode executar uma porta de dois qubits entre qualquer par.
- Tipo de tarefa:
Quantum Program
- Formato de Dados:
ionq.circuit.v1
- ID de Destino:
ionq.qpu
- Perfil de Execução de Destino: No Control Flow
Nome do Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
shots |
int | No | Número de injecções experimentais. A predefinição é 500. |
Temporização do sistema
Medir | Duração média do tempo (μs) |
---|---|
T1 | >10^7 |
T2 | 200,000 |
Porta de qubit único | 10 |
Porta de dois qubits | 210 |
Leitura | 100 |
Registar reposição | 25 |
Tempo de coerência/duração da porta | 1667 |
Fidelidade do sistema
Operação | Fidelidade média |
---|---|
Porta de qubit único | 99,35% (SPAM corrigido) |
Porta de dois qubits | 96,02% (não corrigido por SPAM) |
SPAM* | 99.3 - 99.8% |
Operação média geométrica | 98.34% |
* Preparação e Medição do Estado (SPAM): esta medição determina a precisão com que um computador quântico pode definir um qubit no estado inicial e, em seguida, medir o resultado no final.
Computador quântico do IonQ Aria
O IonQ Aria é o principal dos computadores quânticos de iões presos da IonQ, com um sistema reconfigurável dinamicamente de 25 qubits. Para obter mais informações, veja IonQ Aria (ionq.com).
Importante
A debiasing está ativada nos sistemas Aria por predefinição e as tarefas submetidas estão sujeitas a preços baseados em debiasing. Para obter mais informações sobre o desbiasing e como desativar/ativar o serviço, veja Mitigação de erros.
- Tipo de tarefa:
Quantum Program
- Formato de Dados:
ionq.circuit.v1
- ID de destino:
ionq.qpu.aria-1
,ionq.qpu.aria-2
- Perfil de Execução de Destino: No Control Flow
Nome do Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
shots |
int | No | Número de fotografias experimentais. |
Temporização do sistema
Medir | Duração média do tempo |
---|---|
T1 | 10-100 s |
T2 | 1 s |
Porta de qubit único | 135 μs |
Porta de dois qubits | 600 μs |
Fidelidade do sistema
Operação | Fidelidade média |
---|---|
Porta de qubit único | 99,95% (SPAM corrigido) |
Porta de dois qubits | 99,6% (não foi corrigido spam) |
SPAM* | 99.61% |
* Preparação e Medição de Estado (SPAM): esta medição determina com que precisão um computador quântico pode definir um qubit no estado inicial e, em seguida, medir o resultado no final.
O IonQ Aria está disponível através do plano de Créditos Quânticos do Azure e de um plano de faturação separado. Para obter mais informações, veja Preços do Azure Quantum.
Computador quântico IonQ Forte
O IonQ Forte é o computador quântico com maior desempenho e disponibilidade comercial do IonQ. Com um sistema configurável por software de 32 qubits, o IonQ Forte está disponível na Pré-visualização Privada no Azure Quantum. Para obter mais informações, veja IonQ Forte (ionq.com).
Importante
Por predefinição, a debiasing está ativada no sistema Forte e os trabalhos submetidos estão sujeitos a preços baseados em debiasing. Para obter mais informações sobre o desarmaamento e como desativar/ativar o serviço, veja Mitigação de erros.
- Tipo de tarefa:
Quantum Program
- Formato de Dados:
ionq.circuit.v1
- ID de destino:
ionq.qpu.forte
- Perfil de Execução de Destino: No Control Flow
Nome do Parâmetro | Tipo | Necessário | Descrição |
---|---|---|---|
shots |
int | No | Número de fotografias experimentais. |
Formato de entrada
Em Q#, a saída de uma medição quântica é um valor do tipo Result
, que só pode utilizar os valores Zero
e One
. Quando define uma operação Q#, esta só pode ser submetida para hardware IonQ se o tipo de retorno for uma coleção de Result
s, ou seja, se a saída da operação for o resultado de uma medição quântica. A razão para tal deve-se ao facto de o IonQ criar um histograma a partir dos valores devolvidos, pelo que restringe o tipo de retorno para Result
simplificar a criação deste histograma.
O IonQ targets corresponde ao No Control Flow profile. Este perfil não pode executar operações quânticas que exijam a utilização dos resultados das medições de qubit para controlar o fluxo do programa.
Nota
Atualmente, não pode submeter programas quânticos que apliquem operações em qubits medidos no No Control Flowtargets, mesmo que não utilize os resultados para controlar o fluxo do programa. Ou seja, No Control Flowtargets não permita medições a meio do circuito.
Por exemplo, o seguinte código não pode ser executado num No Control Flowtarget:
operation MeasureQubit(q : Qubit) : Result {
return M(q);
}
operation SampleMeasuredQubit(q : Qubit) : Result {
H(MeasureQubit(q));
return M(MeasureQubit(q));
}
Formato de saída
Quando submete um programa quântico ao simulador IonQ, este devolve o histograma criado pelas medições. O simulador IonQ não amostra a distribuição de probabilidade criada por um programa quântico, mas devolve a distribuição dimensionada para o número de capturas. Isto é mais evidente quando submete um único circuito de tiro. Verá vários resultados de medição no histograma para uma captura. Este comportamento é inerente ao simulador IonQ, enquanto o IonQ QPU executa o programa e agrega os resultados.
Capacidades Adicionais
Estão listadas aqui capacidades adicionais suportadas pelo hardware IonQ.
Funcionalidade | Description |
---|---|
Mitigação de erros | Utilizar o desbiasing para minimizar o ruído e maximizar o desempenho algorítmico no hardware IonQ |
Suporte de portas nativas | Definir e executar circuitos diretamente em portas nativas de hardware do IonQ |
Simulação de modelos de ruído | Simular o perfil de ruído que os circuitos encontrarão quando os executar em hardware IonQ diferente. |
Os utilizadores podem tirar partido destas capacidades adicionais através de parâmetros pass-through nos fornecedores de Q# e Qiskit do Azure Quantum.
Mitigação de erros
O IonQ fornece a opção para ativar a mitigação de erros quânticos ao submeter tarefas para hardware IonQ. A mitigação de erros é um processo ao nível do compilador que executa e executa múltiplas variações simétricas de um circuito e, em seguida, agrega os resultados ao mitigar o impacto dos erros de hardware e da decoherência do qubit. Ao contrário das técnicas de correção de erros quânticos , a mitigação de erros não requer sobrecarga de porta grande e qubit.
A debiasing é o processo de criação de ligeiras variações de um determinado circuito que deve ser idêntico numa máquina sem ruído ideal, utilizando técnicas como diferentes atribuições de qubits, decomposições de porta e soluções de impulso e, em seguida, executar essas variações.
Afiação e Média são opções para agregar os resultados das variações. A média baseia-se igualmente em todos os resultados de variação, enquanto o Sharpening filtra os resultados erróneos e pode ser mais fiável para determinados tipos de algoritmos.
Para obter mais informações, veja Debiasing and Sharpening (Debiasing e Sharpening). Para obter preços de mitigação de erros, veja Preços do IonQ.
Ativar a mitigação de erros
Nota
A debiasing está ativada por predefinição nos sistemas Aria e Forte e desativada por predefinição nos sistemas Harmony.
No Azure Quantum, a mitigação de erros pode ser ativada ou desativada para tarefas submetidas com Q# ou com Qiskit.
Para ativar a mitigação de erros, adicione um parâmetro opcional para o target computador:
option_params = {
"error-mitigation": {
"debias": True
}
}
Para desativar a mitigação de erros, defina o parâmetro como False
:
option_params = {
"error-mitigation": {
"debias": False
}
}
Nota
Se também estiver a utilizar a simulação do modelo de ruído do IonQ, esses parâmetros podem ser incluídos aqui, por exemplo:
option_params = {
"error-mitigation": {
"debias": False
},
"noise": {
"model": "harmony",
"seed": 100
}
}
Para obter mais informações, veja Simulação de modelos de ruído.
Executar uma tarefa no Azure Quantum com mitigação de erros
Este exemplo utiliza um gerador de números aleatórios simples.
Primeiro, importe os pacotes necessários e inicie o perfil base:
import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)
Em seguida, defina a função.
%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;
operation GenerateRandomBit() : Result {
use target = Qubit();
// Apply an H-gate and measure.
H(target);
return M(target);
}
and compile the operation:
```python
MyProgram = qsharp.compile("GenerateRandomBit()")
Ligue-se ao Azure Quantum, selecione a target máquina e configure os parâmetros irrelevantes para o emulador:
MyWorkspace = azure.quantum.Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("ionq.qpu")
Especificar a error-mitigation
configuração
option_params = {
"error-mitigation": {
"debias": True
}
}
Transmita a configuração de mitigação de erros ao submeter a tarefa:
job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()
No Qiskit, transmite os parâmetros opcionais à configuração do target computador antes de submeter a tarefa:
circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)
Nota
Se não transmitir o parâmetro, a máquina irá utilizar a error-mitigation
target predefinição: ativada para sistemas Aria e Forte e desativada para sistemas Harmony.
Suporte e utilização de portas nativas
Por predefinição, o IonQ permite-lhe especificar um circuito quântico com um conjunto abstrato de portas quânticas, denominado qis
, que permite flexibilidade e portabilidade ao escrever um algoritmo sem se preocupar com a otimização do hardware.
No entanto, em alguns casos de utilização avançada, poderá querer definir um circuito diretamente nas portas nativas para estar mais próximo do hardware e ignorar a otimização. O conjunto de portas nativas é o conjunto de portas quânticas que são executadas fisicamente no processador quântico e mapeiam o circuito para as que fazem parte da execução.
Para obter mais informações, veja Introdução With Native Gates (ionq.com).
Para utilizar a porta nativa definida ao submeter tarefas do Qiskit para o Azure Quantum, especifique o gateset
parâmetro ao inicializar o back-end como no exemplo abaixo:
# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Nome do Parâmetro | Tipo | Necessário | Description |
---|---|---|---|
gateset |
cadeia (de carateres) | No | Especifica o conjunto de portas que será utilizado para definir um circuito. Um valor de qis corresponde às portas abstratas (comportamento predefinido) e native às portas nativas de hardware IonQ. |
Para obter mais informações sobre as tarefas do Qiskit, veja Submit a circuit with Qiskit (Submeter um circuito com o Qiskit).
Simulação de modelos de ruído
Mesmo o melhor do hardware quântico atual tem ruído inerente e conhecer as características irrelevantes do seu target sistema pode ajudá-lo a refinar os algoritmos e obter uma predição mais realista de resultados ao executar o circuito em hardware. O IonQ fornece uma simulação de modelo de ruído que introduz dados irrelevantes no circuito através de uma "impressão digital de ruído" específica do target hardware. Para obter mais informações, veja Introdução à Simulação de Modelos de Ruído de Hardware.
Parâmetros do modelo de dados irrelevantes
Nome do Parâmetro | Valores | Descrição |
---|---|---|
noise |
model , seed |
Ativa a simulação do modelo de dados irrelevantes |
model |
ideal , harmony , aria-1 |
Especifica o modelo de dados irrelevantes para o target hardware.
|
seed |
Número inteiro entre 1 e $2^{31}$ (2.147.483.648) | Permite-lhe especificar um valor de seed para dados irrelevantes pseudo-aleatórios e amostragem de imagens, criando resultados irrelevantes reproduzíveis. Se o parâmetro não for especificado, é criado um valor aleatório seed . |
Consciência de tiro
A simulação de modelos de dados irrelevantes tem suporte para capturas; ou seja, mostra as medições do estado de saída com base no número de capturas fornecidas. No Azure Quantum, o shots
parâmetro é submetido com a tarefa e é necessário para harmony
modelos de dados aria-1
irrelevantes. Se não for especificado nenhum shot
valor, é utilizado um valor predefinido de 1000
. Se o ideal
modelo de dados irrelevantes for utilizado, o shots
parâmetro é ignorado.
Capacidade de qubit
Embora o ideal
modelo de dados irrelevantes lhe permita simular até 29 qubits com o simulador quântico IonQ, os modelos de dados irrelevantes específicos do hardware estão limitados à capacidade de qubit real do target hardware: 11 qubits para o harmony
modelo de dados irrelevantes e 25 qubits para o aria-1
modelo de dados irrelevantes.
Ativar a simulação de modelos de dados irrelevantes
No Azure Quantum, a simulação de modelos de dados irrelevantes pode ser ativada ou desativada para tarefas submetidas com Q# ou com Qiskit.
Para ativar a simulação de modelos de dados irrelevantes, adicione um parâmetro opcional para a target máquina, por exemplo:
option_params = {
"noise": {
"model": "harmony", # targets the Harmony quantum computer
"seed" : 1000 # If seed isn't specified, a random value is used
}
}
Nota
Se também estiver a utilizar a mitigação de erros do IonQ, esses parâmetros podem ser incluídos aqui, por exemplo:
option_params = {
"error-mitigation": {
"debias": False
},
"noise": {
"model": "harmony",
"seed": 1000
}
}
Para obter mais informações, veja Mitigação de erros.
Executar uma tarefa com simulação de modelo de dados irrelevantes
Pode utilizar o mesmo programa de exemplo mostrado anteriormente na mitigação de erros e adicionar ou substituir a configuração do modelo de dados irrelevantes em option_params
;
option_params = {
"error-mitigation": {
"debias": True
},
"noise": {
"model": "aria",
"seed": 1000
}
}
Em seguida, transmita os parâmetros opcionais quando submeter a tarefa:
job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()
No Qiskit, transmite os parâmetros opcionais à configuração do target computador antes de submeter a tarefa:
circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)
Preços
Para ver o plano de faturação do IonQ, veja Preços do Azure Quantum.
Limites e quotas
As quotas do IonQ são controladas com base na unidade de utilização QPU, que é qubit-gate-shot (QGS). A utilização de recursos é creditada na sua conta.
Cada programa quântico consiste em $N$ portas lógicas quânticas de um ou mais qubits e é executado para um determinado número de capturas. O número de gate-shots é calculado pela seguinte fórmula:
$$ QGS = N · C $$
em que:
- $N$ é o número de portas de um ou dois qubits submetidas
- $C$ é o número de capturas de execução pedidas
As quotas baseiam-se na seleção do plano e podem ser aumentadas com um pedido de suporte. Para ver os limites e quotas atuais, aceda ao painel Créditos e quotas e selecione o separador Quotas da área de trabalho no portal do Azure. Para obter mais informações, veja Quotas do Azure Quantum.
Nota
Se estiver a utilizar um plano de Créditos do Azure Quantum e não um plano de faturação, as informações de quotas mapeiam para os créditos alocados. Nesse caso, a quota lista o número total de créditos que recebeu.
Estado do IonQ
Para obter informações sobre os atrasos no processamento de tarefas QPU do IonQ, veja a página de estado do IonQ.
Gráfico de melhores práticas e conectividade do IonQ
Para ver as melhores práticas recomendadas para a QPU do IonQ, veja Melhores Práticas do IonQ (ionq.com).
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários