Fornecedor do IonQ
Importante
A IonQ aposentou seu computador quântico Harmony-2 a partir de 1º de setembro de 2024.
Gorjeta
Ao criar um espaço de trabalho do Azure Quantum, você obtém automaticamente US$ 500 gratuitos dos Créditos Quânticos do Azure para cada provedor de hardware quântico. Você pode usar os Créditos Quânticos do Azure para enviar seus primeiros programas quânticos para hardware quântico real.
Os computadores quânticos da IonQ realizam cálculos manipulando os estados de energia hiperfina dos íons 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, permitindo programas quânticos complexos sem serem impedidos pela conectividade física. Quer saber mais? Leia a visão geral da tecnologia de computador quântico de íons presos da IonQ.
- Editora: IonQ
- ID do fornecedor:
ionq
O seguinte targets está disponível neste provedor:
Target Designação | Target Identificação | Número de qubits | Description |
---|---|---|---|
Simulador quântico | ionq.simulador | 29 qubits | Simulador idealizado baseado na nuvem da IonQ. Sem custos. |
IonQ Aria 1 | ionq.qpu.aria-1 | 25 qubits | Computador quântico de íons armadilhados Aria da IonQ. |
IonQ Aria 2 | ionq.qpu.aria-2 | 25 qubits | Computador quântico de íons armadilhados Aria da IonQ. |
IonQ Forte | ionq.qpu.forte | 32 qubits | Computador quântico de íons armadilhados Forte da IonQ. Disponível apenas na Pré-visualização Privada. |
Os IonQ correspondem targets a um QIR Base perfil. Para obter mais informações sobre esse target perfil e suas limitações, consulte Noções básicas target sobre tipos de perfil no Azure Quantum.
Simulador quântico
Simulador idealizado acelerado por GPU que suporta até 29 qubits, usando o mesmo conjunto de portas que a IonQ fornece em seu hardware quântico — um ótimo lugar para comprovar trabalhos antes de executá-los em um computador quântico real.
- Tipo de trabalho:
Simulation
- Formato dos dados:
ionq.circuit.v1
- Target Identificação:
ionq.simulator
- Target Perfil de Execução: QIR Base
Computador quântico IonQ Aria
O IonQ Aria é o carro-chefe dos computadores quânticos de íons presos da IonQ, com um sistema de 25 qubits dinamicamente reconfigurável. Para obter mais informações, consulte IonQ Aria (ionq.com).
Importante
A distorção está habilitada nos sistemas Aria por padrão, e os trabalhos enviados estão sujeitos a preços baseados em distorção. Para obter mais informações sobre distorção e como desabilitar/habilitar o serviço, consulte Atenuação de erros.
- Tipo de trabalho:
Quantum Program
- Formato dos dados:
ionq.circuit.v1
- Target ID:
ionq.qpu.aria-1
,ionq.qpu.aria-2
- Target Perfil de Execução: QIR Base
Nome do Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
shots |
número inteiro | Não | Número de tiros experimentais. |
Cronometragem do sistema
Medida | Duração média |
---|---|
T1 | 10-100 s |
T2 | 1s |
Portão de qubit único | 135 μs |
Portão de dois qubits | 600 μs |
Fidelidade do sistema
Operação | Fidelidade média |
---|---|
Portão de qubit único | 99,95% (SPAM corrigido) |
Portão de dois qubits | 99,6% (não corrigido por SPAM) |
SPAM* | 99.61% |
* State Preparation and Measurement (SPAM): Esta medição determina com que precisão um computador quântico pode definir um qubit em seu estado inicial e, em seguida, medir o resultado no final.
O IonQ Aria está disponível através do plano Azure Quantum Credits e de um plano de faturação separado. Para obter mais informações, consulte Preços do Azure Quantum.
Computador quântico IonQ Forte
O IonQ Forte é o computador quântico de íons armadilhados de maior desempenho e disponível comercialmente da 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, consulte IonQ Forte (ionq.com).
Importante
A distorção está habilitada no sistema Forte por padrão, e os trabalhos enviados estão sujeitos a preços baseados em distorção. Para obter mais informações sobre distorção e como desabilitar/habilitar o serviço, consulte Atenuação de erros.
- Tipo de trabalho:
Quantum Program
- Formato dos dados:
ionq.circuit.v1
- Target Identificação:
ionq.qpu.forte
- Target Perfil de Execução: QIR Base
Nome do Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
shots |
número inteiro | Não | Número de tiros experimentais. |
Formato de entrada
Em Q#, a saída de uma medida quântica é um valor do tipo Result
, que só pode tomar os valores Zero
e One
. Quando você define uma operação Q#, ela só pode ser enviada ao 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 isso é porque o IonQ cria um histograma a partir dos valores retornados, portanto, ele restringe o tipo de retorno para Result
simplificar a criação desse histograma.
Os IonQ correspondem targets ao QIR Base profile. Este perfil não pode executar operações quânticas que exijam o uso dos resultados de medições de qubit para controlar o fluxo do programa.
Formato de saída
Quando você envia um programa quântico para o simulador IonQ, ele retorna o histograma criado pelas medições. O simulador IonQ não mostra a distribuição de probabilidade criada por um programa quântico, mas retorna a distribuição dimensionada para o número de disparos. Isso é mais evidente quando você envia um circuito de tiro único. Você verá vários resultados de medição no histograma para uma foto. Este comportamento é inerente ao simulador IonQ, enquanto IonQ QPU realmente executa o programa e agrega os resultados.
Capacidades adicionais
Recursos adicionais suportados pelo hardware IonQ estão listados aqui.
Capacidade | Description |
---|---|
Atenuação de erros | Use a distorção para minimizar o ruído e maximizar o desempenho algorítmico no hardware IonQ |
Suporte a portões nativos | Defina e execute circuitos diretamente em portas nativas de hardware IonQ |
Simulação de modelo de ruído | Simule o perfil de ruído que os circuitos encontrarão quando você executá-los em hardware IonQ diferente. |
Os usuários podem aproveitar esses recursos adicionais por meio de parâmetros de passagem nos provedores Azure Quantum Q# e Qiskit.
Atenuação de erros
O IonQ oferece a opção de habilitar a mitigação de erros quânticos ao enviar trabalhos para hardware IonQ. A mitigação de erros é um processo no nível do compilador que executa e executa várias variações simétricas de um circuito e, em seguida, agrega os resultados enquanto reduz o impacto de erros de hardware e decoerência de qubit. Ao contrário das técnicas de correção de erros quânticos, a mitigação de erros não requer uma grande sobrecarga de porta e qubit.
Debiasing é o processo de criar pequenas variações de um determinado circuito que deve ser idêntico em uma máquina ideal sem ruído, usando técnicas como diferentes atribuições de qubit, decomposições de porta e soluções de pulso, e então executar essas variações.
A nitidez e a média são opções para agregar os resultados das variações. A média é baseada igualmente em todos os resultados de variação, enquanto a nitidez filtra os resultados errados e pode ser mais confiável para certos tipos de algoritmos.
Para obter mais informações, consulte Debiasing and Sharpening. Para obter preços de mitigação de erros, consulte Preços IonQ.
Ativando a mitigação de erros
Nota
A distorção é ativada por padrão nos sistemas Aria e Forte.
No Azure Quantum, a atenuação de erros pode ser habilitada ou desabilitada para trabalhos enviados com Q# ou com Qiskit.
Para habilitar a atenuação de erros, adicione um parâmetro opcional para a target máquina:
option_params = {
"error-mitigation": {
"debias": True
}
}
Para desativar a atenuação de erros, defina o parâmetro como False
:
option_params = {
"error-mitigation": {
"debias": False
}
}
Nota
Se você também estiver usando a simulação de modelo de ruído do IonQ, esses parâmetros podem ser incluídos aqui, por exemplo:
option_params = {
"error-mitigation": {
"debias": False
},
"noise": {
"model": "aria-1",
"seed": 100
}
}
Para obter mais informações, consulte Simulação de modelo de ruído.
Executando um trabalho no Azure Quantum com mitigação de erros
Este exemplo usa 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
import Std.Measurement.*;
import Std.Arrays.*;
import Std.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()")
Conecte-se ao Azure Quantum, selecione a target máquina e configure os parâmetros de ruído para o emulador:
MyWorkspace = azure.quantum.Workspace(
resource_id = "",
location = ""
)
MyTarget = MyWorkspace.get_targets("ionq.qpu.aria-1")
Especificar a error-mitigation
configuração
option_params = {
"error-mitigation": {
"debias": True
}
}
Passe a configuração de mitigação de erros ao enviar o trabalho:
job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()
No Qiskit, você passa os parâmetros opcionais para a configuração da target máquina antes de enviar o trabalho:
circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)
Nota
Se você não passar o error-mitigation
parâmetro, a máquina usará sua configuração padrão, que está habilitada target para os sistemas Aria e Forte.
Suporte e uso de portões nativos
Por padrão, o IonQ permite especificar um circuito quântico usando um conjunto abstrato de portas quânticas, chamado qis
, que permite flexibilidade e portabilidade ao escrever um algoritmo sem se preocupar com a otimização para o hardware.
No entanto, em alguns casos de uso avançado, você pode querer definir um circuito diretamente em portões nativos para estar mais próximo do hardware e ignorar a otimização. O conjunto de portas nativo é o conjunto de portas quânticas que são fisicamente executadas no processador quântico, e elas mapeiam o circuito para aquelas como parte da execução.
Para obter mais informações, consulte Introdução aos portões nativos (ionq.com).
Para usar o conjunto de portas nativo ao enviar trabalhos 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.aria-1", gateset="native")
Nome do Parâmetro | Type | Obrigatório | Description |
---|---|---|---|
gateset |
string | Não | Especifica o conjunto de portas que serão usadas para definir um circuito. Um valor de corresponde às portas abstratas (comportamento padrão) e native às portas nativas do qis hardware IonQ. |
Para obter mais informações sobre trabalhos do Qiskit, consulte Enviar um circuito com o Qiskit.
Simulação de modelo de ruído
Mesmo o melhor do hardware quântico atual tem ruído inerente, e conhecer as características de ruído do seu target sistema pode ajudá-lo a refinar seus algoritmos e obter uma previsão mais realista dos resultados ao executar o circuito no hardware. O IonQ fornece uma simulação de modelo de ruído que introduz ruído no circuito usando uma "impressão digital de ruído" específica para o target hardware. Para obter mais informações, consulte Introdução à simulação de modelo de ruído de hardware.
Parâmetros do modelo de ruído
Nome do Parâmetro | Valores | Description |
---|---|---|
noise |
model , seed |
Permite a simulação do modelo de ruído |
model |
ideal , aria-1 |
Especifica o modelo de ruído para o target hardware.
|
seed |
Inteiro entre 1 e $2^{31}$ (2,147,483,648) | Permite especificar um valor de semente para ruído pseudoaleatório e amostragem de disparos, criando resultados ruidosos reproduzíveis. Se o parâmetro não for especificado, um valor aleatório seed será criado. |
Consciência do tiro
A simulação de modelo de ruído reconhece tiros, ou seja, coleta amostras de medições do estado de saída com base no número de disparos fornecidos. No Azure Quantum, o shots
parâmetro é enviado com o trabalho e é necessário para aria-1
modelos de ruído. Se nenhum shot
valor for especificado, um valor padrão de 1000
será usado. Se o ideal
modelo de ruído for usado, o shots
parâmetro será ignorado.
Capacidade de Qubit
Enquanto o ideal
modelo de ruído permite simular até 29 qubits com o simulador quântico IonQ, os modelos de ruído específicos do hardware são limitados à capacidade real de qubit do hardware, que é de 25 qubits para o aria-1
modelo de target ruído.
Habilitando a simulação de modelo de ruído
No Azure Quantum, a simulação de modelo de ruído pode ser habilitada ou desabilitada para trabalhos enviados com Q# ou com Qiskit.
Para habilitar a simulação de modelo de ruído, adicione um parâmetro opcional para a target máquina, por exemplo:
option_params = {
"noise": {
"model": "aria-1", # targets the Aria quantum computer
"seed" : 1000 # If seed isn't specified, a random value is used
}
}
Nota
Se você também estiver usando 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": "aria-1",
"seed": 1000
}
}
Para obter mais informações, consulte Atenuação de erros.
Executando um trabalho com simulação de modelo de ruído
Você pode usar o mesmo programa de exemplo mostrado anteriormente na mitigação de erros e adicionar ou substituir a configuração do modelo de ruído em option_params
;
option_params = {
"error-mitigation": {
"debias": True
},
"noise": {
"model": "aria",
"seed": 1000
}
}
Em seguida, passe os parâmetros opcionais ao enviar o trabalho:
job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()
No Qiskit, você passa os parâmetros opcionais para a configuração da target máquina antes de enviar o trabalho:
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 cobrança IonQ, visite Preços do Azure Quantum.
Limites e quotas
As cotas IonQ são rastreadas com base na unidade de uso QPU, que é qubit-gate-shot (QGS). A utilização do recurso é creditada na sua conta.
Cada programa quântico consiste em portas lógicas quânticas de $N$ de um ou mais qubits, e é executado para um certo número de disparos. O número de gate-shots é calculado pela seguinte fórmula:
$$ QGS = N · C $$
onde:
- $N$ é o número de portas de um ou dois qubits enviadas
- $C$ é o número de tiros de execução solicitados
As cotas são baseadas na seleção do plano e podem ser aumentadas com um tíquete de suporte. Para ver seus limites e cotas atuais, vá para a folha Créditos e cotas e selecione a guia Cotas do seu espaço de trabalho no portal do Azure. Para obter mais informações, consulte Cotas do Azure Quantum.
Nota
Se estiver a utilizar um plano Azure Quantum Credits, e não um plano de faturação, as informações de quotas são mapeadas para os créditos atribuídos. Nesse caso, a cota lista o número total de créditos recebidos.
Estado IonQ
Para obter informações sobre atrasos no processamento do trabalho IonQ QPU, consulte a página de status do IonQ.
Gráfico de práticas recomendadas e conectividade IonQ
Para ver as práticas recomendadas para a QPU IonQ, consulte Práticas recomendadas IonQ (ionq.com).