Skip to main content
IBM Quantum Platform

암시적 용매 모델을 사용한 전자 구조 시뮬레이션을 위한 Qiskit Function 템플릿을 구축하고 실행합니다

클리블랜드 클리닉과 협력하여 개발한 이 템플릿은 암시적 용매에서 분자의 기저 상태 에너지와 용해 자유 에너지를 계산하는 워크플로로 구성되어 있습니다 [1]. 이러한 시뮬레이션은 샘플 기반 양자 대각선화(SQD) 방법 [2-6 ]과 용매의 적분 방정식 형식주의 편광 가능 연속체 모델(IEF-PCM)을 기반으로 합니다 [7].

실제 예제를 통해 이 워크플로우를 단계별로 자세히 알아보려면 ‘ Qiskit Serverless 를 사용한 암시적 용매 계산’ 튜토리얼을 참조하십시오.

이 가이드에서는 전자 구조가 명시적으로 시뮬레이션된 메탄올 분자를 용질로, 물을 용매로 하여 연속 유전체 매체로 근사화한 템플릿을 활용합니다. 메탄올의 전자 상관 효과를 고려하는 동시에 계산 비용과 정확도 사이의 균형을 유지하기 위해 SQD IEF-PCM으로 시뮬레이션한 활성 공간에는 σ\sigma, σ\sigma^{*}, 외쌍 궤도만 포함했습니다. 이 궤도 선택은 C2s[,2p], O2s[,2p] 및 [H1s] 원자 궤도 성분을 사용하는 원자 원자가 활성 공간(AVAS) 방식으로 이루어지며, 그 결과 14개의 전자와 12개의 궤도가 활성 공간으로 구성됩니다( 14e,12o ). 기준 궤도는 cc-pvdz 기준 세트를 사용하여 닫힌 쉘 하트리 포크로 계산됩니다.


워크플로 소개

이 대화형 가이드는 이 함수 템플릿을 키스킷 서버리스에 업로드하고 예제 워크로드를 실행하는 방법을 보여줍니다. 템플릿은 4단계의 키스킷 패턴으로 구성되어 있습니다:

1. 입력을 수집하고 문제를 매핑한다

이 단계에서는 분자의 지오메트리, 선택된 활성 공간, 용해 모델, LUCJ 옵션 및 SQD 옵션을 입력으로 사용합니다. 그런 다음 하트트리-복(HF) IEF-PCM 데이터가 포함된 PySCF 체크포인트 파일을 생성합니다. 이 데이터는 워크플로우의 SQD 부분에서 사용됩니다. 워크플로우의 LUCJ 부분의 경우, 입력 섹션에서는 내부적으로 PySCF FCIDUMP 형식으로 저장되는 기체상 HF 데이터도 생성합니다.

HF 기체상 시뮬레이션의 정보와 활성 공간의 정의가 입력으로 사용됩니다. 중요한 것은 오류 억제, 샷 수, 회로 트랜스파일러 최적화 수준, 큐비트 레이아웃에 관한 입력 섹션의 사용자 정의 정보를 사용한다는 점입니다.

정의된 활성 공간 내에서 1전자 적분과 2전자 적분을 생성합니다. 그런 다음 적분을 사용하여 고전적인 CCSD 계산을 수행하여 t2 진폭을 반환하여 LUCJ 회로를 매개변수화하는 데 사용합니다.

2. 회로 최적화

그런 다음 LUCJ 회로는 대상 하드웨어를 위한 ISA 회로로 트랜스파일됩니다. 그런 다음 샘플러 프리미티브가 기본 오류 완화 옵션 세트로 인스턴스화되어 실행을 관리합니다.

3. 회로를 실행하십시오

LUCJ 계산은 각 측정에 대한 비트스트링을 반환하며, 이 비트스트링은 연구된 시스템의 전자 구성에 해당합니다. 그런 다음 비트스트링은 후처리를 위한 입력으로 사용됩니다.

4. SQD를 사용하여 후처리 수행

이 마지막 단계에서는 HF IEF-PCM 정보, LUCJ에서 예측한 전자 구성을 나타내는 비트스트링, 입력 섹션에서 선택한 사용자 정의 SQD 옵션이 포함된 PySCF 체크포인트 파일을 입력으로 사용합니다. 출력으로 최저 에너지 배치의 SQD IEF-PCM 총 에너지와 해당 용해 자유 에너지를 생성합니다.

옵션

이 템플릿의 경우 LUCJ 회로 생성 옵션과 SQD 실행 파라미터를 지정해야 합니다.

LUCJ 옵션

LUCJ 양자 회로가 실행되면 분자 시스템의 확률 분포에서 계산 기준 상태를 나타내는 샘플 세트가 생성됩니다. LUCJ 회로의 깊이와 표현성의 균형을 맞추기 위해 반대 스핀을 가진 스핀 궤도에 해당하는 큐비트는 단일 앙실라 큐비트를 통해 이웃하는 경우 두 큐비트 사이에 두 개의 큐비트 게이트가 적용됩니다. 이 접근 방식을 16진수 토폴로지를 가진 IBM 하드웨어에서 구현하려면, 동일한 스핀을 가진 스핀 궤도를 나타내는 큐비트는 대상 하드웨어의 16진수 연결성으로 인해 각 라인이 지그재그 모양을 이루는 라인 토폴로지를 통해 연결되고, 반대 스핀을 가진 스핀 궤도를 나타내는 큐비트는 4번째 큐비트마다만 연결이 이루어집니다.

  • 사용자는 이 지그재그 패턴을 만족하는 큐비트에 해당하는 initial_layout 배열을 SQD IEF-PCM 함수의 lucj_options 섹션에 제공해야 합니다. 메탄올의 SQD IEF-PCM ( 14e,12o )/cc-pvdz 시뮬레이션의 경우, Eagle R3 QPU의 주 대각선에 해당하는 초기 큐비트 레이아웃을 선택했습니다. 여기서 initial_layout 배열 [0, 14, 18, 19, 20, 33, 39, 40, 41, 53, 60, 61, ...] 의 처음 12개 요소는 알파 스핀 궤도에 해당합니다. 마지막 12개 요소 [... 2, 3, 4, 15, 22, 23, 24, 34, 43, 44, 45, 54] 는 베타 스핀 궤도에 해당합니다.

    중요한 것은 사용자가 LUCJ 회로의 측정 횟수에 해당하는 number_of_shots 을 결정해야 한다는 것입니다. S-CORE 절차의 첫 번째 단계는 지상 상태 점유 수 분포에 대한 초기 근사치를 얻기 위해 오른쪽 입자 섹터의 샘플에 의존하기 때문에 샷 수는 충분히 많아야 합니다.

    샷 수는 시스템 및 하드웨어에 따라 크게 달라지지만 비공유, 조각 기반 및 암시적 용매 SQD 연구에 따르면 이러한 지침을 따르면 화학적 정확도에 도달할 수 있습니다:

    • 분자 궤도가 16개(스핀 궤도 32개) 미만인 시스템의 경우 20,000 - 200,000회 촬영
    • 분자 궤도가 16~18인 시스템의 경우 200,000회 촬영 가능
    • 18개 이상의 분자 궤도를 가진 시스템의 경우 200,000 - 2,000,000회 촬영

    필요한 계산 횟수는 연구 대상 시스템의 스핀 궤도 수와, 해당 시스템 내에서 선택된 활성 공간에 대응하는 힐베르트 공간의 크기에 따라 달라진다. 일반적으로 힐베르트 공간이 더 작은 인스턴스는 더 적은 수의 샷만 필요합니다. LUCJ에서 사용할 수 있는 다른 옵션으로는 회로 트랜스파일러 최적화 수준오류 억제 옵션이 있습니다. 이러한 옵션은 필요한 촬영 횟수와 결과물의 정확도에도 영향을 미친다는 점을 유의하십시오.

SQD 옵션

SQD 시뮬레이션의 중요한 옵션으로는 sqd_iterations, number_of_batches, samples_per_batch 이 있습니다. 일반적으로 배치당 샘플 수가 적을수록 더 많은 배치(number_of_batches)와 더 많은 S-CORE 반복(sqd_iterations)으로 대응할 수 있습니다. 배치가 많으면 구성 하위 공간의 더 많은 변형을 샘플링할 수 있습니다. 시스템의 기저 상태 에너지에 대한 솔루션으로 가장 낮은 에너지 배치가 사용되므로, 배치가 많을수록 더 나은 통계를 통해 결과를 개선할 수 있습니다. S-CORE를 추가로 반복하면 올바른 파티클 섹터의 샘플 수가 적은 경우 원래 LUCJ 분포에서 더 많은 구성을 복구할 수 있습니다. 이렇게 하면 배치당 샘플 수를 줄일 수 있습니다.

  • 다른 전략은 배치당 더 많은 샘플을 사용하는 것인데, 이는 올바른 입자 공간에서 대부분의 초기 LUCJ 샘플이 S-CORE 절차 중에 사용되도록 하고 개별 하위 공간은 충분히 다양한 전자 구성을 캡슐화합니다. 결과적으로 배치당 샘플 수가 충분히 많은 경우 SQD를 두세 번만 반복하면 되므로 필요한 S-CORE 단계의 수가 줄어듭니다. 그러나 배치당 샘플 수가 많을수록 각 대각선화 단계의 계산 비용이 높아집니다. 따라서 sqd_iterations, number_of_batches, samples_per_batch 을 최적으로 선택하면 SQD 시뮬레이션의 정확도와 계산 비용 간의 균형을 맞출 수 있습니다.

    SQD IEF-PCM 연구에 따르면 S-CORE를 세 번 반복할 경우 이 가이드라인을 따르면 화학적 정확도에 도달할 수 있는 것으로 나타났습니다:

    • 메탄올 SQD IEF-PCM ( 14e,12o ) 시뮬레이션에서 배치당 600개 샘플 분석
    • 메틸아민 SQD IEF-PCM ( 14e,13o ) 시뮬레이션에서 배치당 1,500개 샘플
    • 물에서 배치당 6000개 샘플 SQD IEF-PCM ( 8e,23o ) 시뮬레이션
    • 에탄올 SQD IEF-PCM ( 20e,18o ) 시뮬레이션에서 배치당 16,000개 샘플

    LUCJ에서 필요한 샷 수와 마찬가지로, S-CORE 절차에서 사용되는 배치당 필요한 샘플 수는 시스템 및 하드웨어에 따라 크게 달라집니다. 위의 예는 배치당 필요한 샘플 수의 벤치마크에 대한 초기 지점을 추정하는 데 사용할 수 있습니다. 배치당 필요한 샘플 수를 체계적으로 벤치마크하는 방법에 대한 튜토리얼은 여기에서 확인할 수 있습니다.


템플릿 SQD IEF-PCM 기능을 배포하고 실행하십시오

인증

qiskit-ibm-catalog 을 사용하여 IBM 퀀텀 플랫폼 대시보드에서 찾을 수 있는 API 키(토큰)로 QiskitServerless 에 인증하세요. 이를 통해 서버리스 클라이언트를 인스턴스화하여 선택한 기능을 업로드하거나 실행할 수 있습니다:

from qiskit_ibm_catalog import QiskitServerless

serverless = QiskitServerless(
    channel="ibm_quantum_platform",
    instance="INSTANCE_CRN",
    # For `token`, use the 44-character API_KEY you created
    # and saved from the IBM Quantum Platform Home dashboard
    token="YOUR_API_KEY"
)

선택 사항으로 save_account() 을 사용하여 로컬 환경에 자격 증명을 저장할 수 있습니다( IBM Cloud 계정 설정 가이드 참조). 이렇게 하면 자격 증명이 다음과 같은 파일에 기록됩니다 QiskitRuntimeService.save_account():

QiskitServerless.save_account(token="YOUR_API_KEY",
    channel="ibm_quantum_platform", instance="INSTANCE_CRN")

정이 저장된 경우, 인증을 위해 토큰을 제공할 필요가 없습니다:

from qiskit_ibm_catalog import QiskitServerless

serverless = QiskitServerless()

템플릿 업로드

사용자 지정 키스킷 함수를 업로드하려면 먼저 함수 소스 코드를 정의하는 QiskitFunction 객체를 인스턴스화해야 합니다. 제목을 통해 원격 클러스터에 있는 기능을 식별할 수 있습니다. 주요 진입점은 if __name__ == "__main__" 파일이 포함된 파일입니다. 워크플로에 추가 소스 파일이 필요한 경우 엔트리 포인트와 함께 업로드할 작업 디렉터리를 정의할 수 있습니다.

from qiskit_ibm_catalog import QiskitFunction

template = QiskitFunction(
    title="sqd_pcm_template",
    entrypoint="sqd_pcm_entrypoint.py",
    # all files in `working_dir` will be uploaded
    working_dir="./source_files/",
    dependencies=[
        "ffsim==0.0.54",
        "pyscf==2.9.0",
        "qiskit_addon_sqd==0.10.0",
    ],
)
print(template)

Output:

QiskitFunction(sqd_pcm_template)

인스턴스가 준비되면 서버리스에 업로드합니다:

serverless.upload(template)

Output:

QiskitFunction(sqd_pcm_template)

프로그램이 성공적으로 업로드되었는지 확인하려면 serverless.list() 을 사용하세요:

serverless.list()

Output:

[QiskitFunction(sqd_pcm_template),
 QiskitFunction(hamiltonian_simulation_template)]

템플릿을 원격으로 로드하고 실행하십시오

함수 템플릿이 업로드되었으므로 키스킷 서버리스에서 원격으로 실행할 수 있습니다. 먼저 템플릿을 이름으로 로드합니다:

template = serverless.load("sqd_pcm_template")
print(template)

Output:

QiskitFunction(sqd_pcm_template)

그런 다음 SQD-IEF PCM에 대한 도메인 수준 입력으로 템플릿을 실행합니다. 이 예제에서는 메탄올 기반 워크로드를 지정합니다.

molecule = {
    "atom": """
    O -0.04559 -0.75076 -0.00000;
    C -0.04844 0.65398 -0.00000;
    H 0.85330 -1.05128 -0.00000;
    H -1.08779 0.98076 -0.00000;
    H 0.44171 1.06337 0.88811;
    H 0.44171 1.06337 -0.88811
    """,  # Must be specified
    "basis": "cc-pvdz",  # default is "sto-3g"
    "spin": 0,  # default is 0
    "charge": 0,  # default is 0
    "verbosity": 0,  # default is 0
    "number_of_active_orb": 12,  # Must be specified
    "number_of_active_alpha_elec": 7,  # Must be specified
    "number_of_active_beta_elec": 7,  # Must be specified
    "avas_selection": [
        "%d O %s" % (k, x) for k in [0] for x in ["2s", "2px", "2py", "2pz"]
    ]
    + ["%d C %s" % (k, x) for k in [1] for x in ["2s", "2px", "2py", "2pz"]]
    + ["%d H 1s" % k for k in [2, 3, 4, 5]],  # default is None
}

solvent_options = {
    # See https://manual.q-chem.com/5.4/topic_pcm-em.html for all methods
    "method": "IEF-PCM",  # other available methods are COSMO, C-PCM, SS(V)PE
    "eps": 78.3553,  # value for water
}

lucj_options = {
    "initial_layout": [
        0,
        14,
        18,
        19,
        20,
        33,
        39,
        40,
        41,
        53,
        60,
        61,
        2,
        3,
        4,
        15,
        22,
        23,
        24,
        34,
        43,
        44,
        45,
        54,
    ],
    "dynamical_decoupling_choice": True,
    "twirling_choice": True,
    "number_of_shots": 200000,
    "optimization_level": 2,
}

sqd_options = {
    "sqd_iterations": 3,
    "number_of_batches": 10,
    "samples_per_batch": 1000,
    "max_davidson_cycles": 200,
}

backend_name = "ibm_sherbrooke"
job = template.run(
    backend_name=backend_name,
    molecule=molecule,
    solvent_options=solvent_options,
    lucj_options=lucj_options,
    sqd_options=sqd_options,
)
print(job.job_id)

Output:

39f8fb70-79b2-43ca-b723-84e6b6135821

작업의 자세한 상태를 확인합니다:

import time

t0 = time.time()
status = job.status()
if status == "QUEUED":
    print(f"time = {time.time()-t0:.2f}, status = QUEUED")
while True:
    status = job.status()
    if status == "QUEUED":
        continue
    print(f"time = {time.time()-t0:.2f}, status = {status}")
    if status == "DONE" or status == "ERROR":
        break

Output:

time = 2.35, status = DONE

작업이 실행되는 동안 logger.info 출력에서 생성된 로그를 가져올 수 있습니다. 이는 SQD IEF-PCM 워크플로우의 진행 상황에 대한 실행 가능한 정보를 제공할 수 있습니다. 예를 들어, 동일한 스핀 궤도 연결 또는 하드웨어에서 실행하기 위한 최종 ISA 회로의 2쿼비트 깊이가 있습니다.

print(job.logs())

작업 결과를 호출하면 결과가 나올 때까지 나머지 프로그램이 차단됩니다. 작업이 완료되면 결과를 검색할 수 있습니다. 여기에는 용해 자유 에너지뿐만 아니라 최저 에너지 배치, 최저 에너지 값 및 총 솔버 지속 시간과 같은 기타 유용한 정보가 포함됩니다.

result = job.result()

result

Output:

{'total_energy_hist': array([[-115.14768518, -115.1368396 , -114.19181692, -115.13745429,
         -115.1445012 , -114.19673326, -115.1547003 , -114.20563866,
         -115.13748344, -115.14764974],
        [-115.15768392, -115.15850126, -115.15857275, -115.15770916,
         -115.15801684, -115.15822125, -115.15833521, -115.15844051,
         -115.15735538, -115.15862354],
        [-115.15795148, -115.15847925, -115.15856677, -115.15811156,
         -115.15815602, -115.15785171, -115.1583672 , -115.1585533 ,
         -115.15833528, -115.15808791]]),
 'spin_squared_value_hist': array([[5.37327508e-03, 1.32981759e-02, 1.36214922e-02, 8.84413615e-03,
         7.26723578e-03, 1.94875195e-02, 3.03153152e-03, 6.07543106e-03,
         1.04951849e-02, 5.36529204e-03],
        [6.39397528e-04, 1.36814350e-04, 9.09054260e-05, 5.99361358e-04,
         3.64261739e-04, 2.54905866e-04, 2.32540370e-04, 1.53181990e-04,
         7.23519739e-04, 6.80737671e-05],
        [4.53776416e-04, 1.63043449e-04, 1.05317263e-04, 3.82912836e-04,
         3.41047803e-04, 5.18620393e-04, 2.06819142e-04, 1.17086537e-04,
         2.32357159e-04, 4.26071537e-04]]),
 'solvation_free_energy_hist': array([[-0.00725018, -0.00743955, -0.01132905, -0.0073377 , -0.00722221,
         -0.01136705, -0.00719279, -0.01072829, -0.00733404, -0.00725961],
        [-0.00719252, -0.00718315, -0.00718074, -0.00719325, -0.00717703,
         -0.00718391, -0.00718354, -0.00717928, -0.00719887, -0.0071801 ],
        [-0.00719351, -0.00718255, -0.00718198, -0.00718429, -0.00718349,
         -0.00718329, -0.0071882 , -0.00718363, -0.00718549, -0.00718814]]),
 'occupancy_hist': [[array([0.99712298, 0.99278936, 0.99083163, 0.97328469, 0.98959809,
          0.98922134, 0.720333  , 0.25683194, 0.01939338, 0.02840332,
          0.00946988, 0.0327204 ]),
   array([0.99712298, 0.99278936, 0.99083163, 0.97328469, 0.98959809,
          0.98922134, 0.720333  , 0.25683194, 0.01939338, 0.02840332,
          0.00946988, 0.0327204 ])],
  [array([0.9959042 , 0.9922607 , 0.99018862, 0.99265843, 0.98927447,
          0.9900833 , 0.99403876, 0.00989025, 0.01120814, 0.01137717,
          0.01152871, 0.01158725]),
   array([0.9959042 , 0.9922607 , 0.99018862, 0.99265843, 0.98927447,
          0.9900833 , 0.99403876, 0.00989025, 0.01120814, 0.01137717,
          0.01152871, 0.01158725])],
  [array([0.99590079, 0.99222193, 0.99016753, 0.99265045, 0.98927264,
          0.99007179, 0.99407207, 0.00986684, 0.01125181, 0.01141439,
          0.01150733, 0.01160243]),
   array([0.99590079, 0.99222193, 0.99016753, 0.99265045, 0.98927264,
          0.99007179, 0.99407207, 0.00986684, 0.01125181, 0.01141439,
          0.01150733, 0.01160243])]],
 'lowest_energy_batch': 2,
 'lowest_energy_value': -115.1585667736213,
 'solvation_free_energy': -0.007181981952470838,
 'sci_solver_total_duration': 493.997501373291,
 'metadata': {'resources_usage': {'RUNNING: MAPPING': {'CPU_TIME': 6.080063343048096},
   'RUNNING: OPTIMIZING_FOR_HARDWARE': {'CPU_TIME': 1.999896764755249},
   'RUNNING: WAITING_FOR_QPU': {'CPU_TIME': 6.2850868701934814},
   'RUNNING: EXECUTING_QPU': {'QPU_TIME': 21.639373540878296},
   'RUNNING: POST_PROCESSING': {'CPU_TIME': 495.40831995010376}},
  'num_iterations_executed': 3}}

결과 메타데이터에는 리소스 사용량 요약이 포함되어 있어 각 워크로드에 필요한 QPU 및 CPU 시간을 더 잘 추정할 수 있습니다(이 예제는 더미 기기에서 실행되었으므로 실제 리소스 사용 시간은 다를 수 있습니다).

작업이 완료되면 전체 로깅 출력을 사용할 수 있습니다.

print(job.logs())

Output:

2025-06-27 08:42:41,358	INFO job_manager.py:531 -- Runtime env is setting up.
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:45,015: Starting runtime service
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:45,621: Backend: ibm_sherbrooke
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:46,809: Initializing molecule object
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:51,599: Performing CCSD
Parsing /tmp/ray/session_2025-06-27_08-42-13_898146_1/runtime_resources/working_dir_files/_ray_pkg_4bc93dcc58c04b91/output_sqd_pcm/2025-06-27_08-42-45.fcidump.txt
Overwritten attributes  get_ovlp get_hcore  of <class 'pyscf.scf.hf_symm.SymAdaptedRHF'>
/usr/local/lib/python3.11/site-packages/pyscf/gto/mole.py:1293: UserWarning: Function mol.dumps drops attribute energy_nuc because it is not JSON-serializable
  warnings.warn(msg)
/usr/local/lib/python3.11/site-packages/pyscf/gto/mole.py:1293: UserWarning: Function mol.dumps drops attribute intor_symmetric because it is not JSON-serializable
  warnings.warn(msg)
converged SCF energy = -115.049680672847
E(CCSD) = -115.1519910037652  E_corr = -0.1023103309180226
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:51,694: Same spin orbital connections: [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (10, 11)]
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:51,694: Opposite spin orbital connections: [(0, 0), (4, 4), (8, 8)]
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:53,718: Optimization level: 2, ops: OrderedDict([('rz', 2438), ('sx', 1496), ('ecr', 766), ('x', 185), ('measure', 24), ('barrier', 1)]), depth: 391
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:53,736: Two-qubit gate depth: 94
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:53,737: Submitting sampler job
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:54,273: Job ID: d1f5j3lqbivc73ebqpj0
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:42:54,313: Job Status: QUEUED
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,813: Starting configuration recovery iteration 0
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,841: Batch 0 subspace dimension: 531441
2025-06-27 08:43:24,844	INFO worker.py:1588 -- Using address 172.17.16.124:6379 set in the environment variable RAY_ADDRESS
2025-06-27 08:43:24,847	INFO worker.py:1723 -- Connecting to existing Ray cluster at address: 172.17.16.124:6379...
2025-06-27 08:43:24,876	INFO worker.py:1908 -- Connected to Ray cluster. View the dashboard at http://172.17.16.124:8265 
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,945: Batch 1 subspace dimension: 519841
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,950: Batch 2 subspace dimension: 543169
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,955: Batch 3 subspace dimension: 532900
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,960: Batch 4 subspace dimension: 534361
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,964: Batch 5 subspace dimension: 531441
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,969: Batch 6 subspace dimension: 540225
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,974: Batch 7 subspace dimension: 524176
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,979: Batch 8 subspace dimension: 537289
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:43:24,983: Batch 9 subspace dimension: 540225
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:09,006: Lowest energy batch: 6
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:09,007: Lowest energy value: -115.15470029849135
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:09,007: Corresponding g_solv value: -0.0071927910374866375
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:09,007: -----------------------------------
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:09,007: Starting configuration recovery iteration 1
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,564: Batch 0 subspace dimension: 413449
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,572: Batch 1 subspace dimension: 399424
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,578: Batch 2 subspace dimension: 438244
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,583: Batch 3 subspace dimension: 422500
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,589: Batch 4 subspace dimension: 409600
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,596: Batch 5 subspace dimension: 404496
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,601: Batch 6 subspace dimension: 410881
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,605: Batch 7 subspace dimension: 442225
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,611: Batch 8 subspace dimension: 409600
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:48:40,618: Batch 9 subspace dimension: 405769
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:49:54,917: Lowest energy batch: 9
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:49:54,917: Lowest energy value: -115.15862353596414
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:49:54,917: Corresponding g_solv value: -0.0071800982859467006
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:49:54,918: -----------------------------------
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:49:54,918: Starting configuration recovery iteration 2
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,501: Batch 0 subspace dimension: 399424
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,508: Batch 1 subspace dimension: 412164
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,514: Batch 2 subspace dimension: 432964
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,519: Batch 3 subspace dimension: 400689
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,524: Batch 4 subspace dimension: 432964
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,529: Batch 5 subspace dimension: 418609
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,533: Batch 6 subspace dimension: 418609
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,538: Batch 7 subspace dimension: 425104
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,543: Batch 8 subspace dimension: 404496
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:50:25,548: Batch 9 subspace dimension: 429025
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:51:37,900: Lowest energy batch: 2
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:51:37,900: Lowest energy value: -115.1585667736213
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:51:37,901: Corresponding g_solv value: -0.007181981952470838
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:51:37,901: -----------------------------------
sqd_pcm_entrypoint.run_function:INFO:2025-06-27 08:51:37,901: SCI_solver totally takes: 493.997501373291 seconds


이 프로젝트 인용하기

연구에 SQD IEF-PCM 템플릿을 사용하시는 경우, 자세한 인용 정보는 저장 소를 참조해 주시기 바랍니다.


다음 단계

권장사항
  • 이 워크플로우의 실제 적용 예시를 보려면 ‘ Qiskit Serverless 를 활용한 암시적 용매 계산’ 튜토리얼을 참고하세요
  • 해밀턴 시뮬레이션을 위한 함수 템플릿 구축 가이드를 확인해 보세요
  • 이 템플릿의 소스 파일은 다음에서 확인하세요 GitHub

참조

[1] Danil Kaliakin, Akhil Shajan, Fangchun Liang 및 Kenneth M. Merz Jr. 암시적 용매 샘플 기반 양자 대각선화, 물리 화학 저널 B, 2025, DOI: 10.1021/acs.jpcb.5c01030

[2] 하비에르 로블레도-모레노 외.., 양자 중심 슈퍼컴퓨터에서 정확한 솔루션을 넘어선 화학, arXiv:2405.05068 [quant-ph].

[3] 제프리 유 외., 샘플 기반 크릴로프 대각선화를 위한 양자 중심 알고리즘, arXiv:2501.09702 [quant-ph].

[4] 케이타 칸노 외.., 양자 선택 구성 상호 작용: 양자 컴퓨터로 선택한 하위 공간에서 해밀턴의 고전적 대각선화, arXiv:2302.11320 [quant-ph].

[5] 스기사키 겐지 외.., 양자 컴퓨터로 대규모 전자 구조 계산을 위한 해밀턴 시뮬레이션 기반 양자 선택 구성 상호 작용( arXiv:2412.07218 [quant-ph] ).

[6] Mathias Mikkelsen, Yuya O. Nakagawa, 양자 선택 구성과 시간 진화 상태의 상호작용, arXiv:2412.13839 [quant-ph].

[7] Herbert, John M. 양자 화학을 위한 유전체 연속체 방법. 와이어스 전산 분자 과학, 2021, 11, 1759-0876.

[8] 사키, A. A.; Barison, S.; 풀러, B.; Garrison, J. R.; Glick, J. R.; Johnson, C.; 메자카포, A.; Robledo-Moreno, J.; Rossmannek, M.; 슈바이거트, P. et al. 키스킷 애드온: 샘플 기반 양자 대각선화, 2024년; https://github.com/Qiskit/qiskit-addon-sqd

[9] 아순, Q.; Zhang, X.; Banerjee, S.; Bao, P.; Barbry, M.; Blunt, N. S.; Bogdanov, N. A.; Booth, G. H.; Chen, J.; Cui, Z.-H. PySCF: Python -기반 화학 프레임워크 시뮬레이션, 2025; https://github.com/pyscf/pyscf

[10] Kevin J. Sung; et al, FFSIM: 페르미온 양자 회로의 더 빠른 시뮬레이션, 2024년. https://github.com/qiskit-community/ffsim

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.