주 콘텐츠로 건너뛰기
이 프로젝트는 베타 단계입니다. 버그를 발견하셨나요? GitHub 이슈 만들기. 질문이나 아이디어가 있으신가요? Discussions에서 질문하기 — 피드백을 기다립니다!
이 페이지의 번역 품질은 어떻습니까?

관리형 워크플로 소개

플랜 이용 가능 여부

Qiskit Functions와 관리형 워크플로는 Premium, Flex, On-Prem(IBM Quantum® Platform API를 통해) 플랜 사용자만 이용할 수 있는 베타 기능입니다.

관리형 워크플로는 IBM Quantum Platform이 대신 관리하는 고전 컴퓨트에서 사용자 정의 Python 코드를 실행합니다. 컴퓨트 인프라나 스토리지를 직접 관리하지 않고도 관리형 워크플로로 하이브리드 양자-고전 워크플로, 대규모 대각화, 장시간 병렬 작업을 실행하세요.

관리형 워크플로를 사용하는 경우​

작업을 처리하는 사전 구축된 Catalog Function이 없거나, 직접 만든 방법을 재사용 가능한 함수로 패키징하고 싶을 때 관리형 워크플로를 사용하세요. 다음을 하려는 경우 관리형 워크플로가 적합합니다.

  • 클라우드에서 장시간 작업을 실행하세요. 관리형 워크플로는 노트북을 닫아도 계속 실행되며, 나중에 작업에 다시 연결할 수 있습니다.

  • 대용량 메모리 및 GPU 노드를 사용하세요. 워크로드에 필요한 메모리, CPU, GPU 리소스를 선택할 수 있습니다.

  • 작업을 병렬로 실행하세요. 여러 단일 노드 작업을 동시에 시작할 수 있습니다.

워크플로 코드, 해당 종속성, 그리고 워크플로가 지원하는 컴퓨팅 크기를 제공합니다. 관리형 워크플로는 사용자의 패키지가 설치된 사전 구축 환경에서 IBM®가 관리하는 컴퓨팅 위에서 워크플로를 실행하고, 워크플로가 읽고 쓰는 파일을 위한 클라우드 스토리지를 제공합니다.

관리형 워크플로의 작동 방식​

워크플로를 한 번 업로드하면 필요한 만큼 작업을 실행할 수 있습니다. 모든 작업은 다음과 같이 동작합니다.

  • 작업은 로컬 디스크가 비어 있는 새 환경에서 시작됩니다. 관리형 워크플로는 작업이 끝나면 환경을 종료합니다.

  • 작업은 워크플로를 업로드할 때 정의한 컴퓨팅 크기 중 하나에서 실행됩니다. 실행할 때마다 다른 크기를 선택할 수 있습니다.

  • 작업은 워크플로의 파일 스토리지를 읽고 쓸 수 있습니다. 파일 스토리지의 파일은 작업이 끝난 후에도 유지됩니다.

각 작업은 로컬 디스크가 비어 있는 상태로 시작하므로, 이후 작업은 이전 작업이 파일 스토리지에 저장한 파일만 찾을 수 있습니다.

실행의 수명 주기​

각 작업은 최대 24시간 동안 비동기적으로 실행됩니다. 인스턴스에 할당량이 충분하면 동시에 최대 50개의 활성 작업을 가질 수 있습니다.

From your Python session, you call upload() one time to upload the workflow's code, packages, and compute profiles. No job exists yet. Each call to run(args) creates a job that moves through these stages: Queue, where it waits for allocation with status QUEUED; Start, where the managed workflow creates the environment with status INITIALIZING; Running, where your code can optionally set stages with update_status(): Mapping (RUNNING: MAPPING), Optimizing (RUNNING: OPTIMIZING_FOR_HARDWARE), Waiting for QPU (RUNNING: WAITING_FOR_QPU), Executing QPU (RUNNING: EXECUTING_QPU), and Post-processing (RUNNING: POST_PROCESSING); and Result, where the environment shuts down with status DONE, ERROR, or CANCELED. While running, the job reads and writes workflow file storage, which exists outside the job, is shared by all runs, and persists before and after each job. From your session, you can read status() from Queue onward, logs() from Running onward, and result() after the job reaches Result. All three remain available after the job ends.

다음 표는 다이어그램의 각 단계와 해당 단계에서 표시되는 작업 상태를 설명합니다.

단계동작작업 상태
업로드워크플로의 코드, 종속성, 크기를 업로드합니다. 잘못된 업로드는 작업이 실행되기 전에 워크플로가 거부합니다.없음(아직 작업 없음)
대기열run()을 호출합니다. 워크플로는 인스턴스에 할당량이 충분한지 확인하고, 컴퓨팅을 사용할 수 있게 되면 작업을 예약합니다.QUEUED
시작워크플로가 선택한 컴퓨팅 프로필로 환경을 만듭니다.INITIALIZING
실행워크플로의 진입점이 실행됩니다. 진입점은 update_status()로 진행 상황을 보고할 수 있으며, 실행 중에 logs()로 로그를 읽을 수 있습니다.RUNNING, 또는 RUNNING: WAITING_FOR_QPU와 같이 사용자가 설정한 단계
결과작업이 끝나고 워크플로는 결과와 로그를 유지한 채 환경을 종료합니다.DONE, ERROR 또는 CANCELED

실행 중인 작업이 접근할 수 있는 항목​

각 작업은 격리된 환경에서 실행됩니다. 다음 다이어그램과 표는 실행 중인 작업이 사용할 수 있는 리소스를 보여 줍니다.

You call run() with arguments from your Python session and receive status, logs, and the result. Inside the managed workflow, each run executes in an isolated job environment with access to its compute (CPU, RAM, and optionally GPU), your code and packages, and its arguments. The job produces outputs with save_result(), logs, and update_status(), and submits QPU jobs that run on your instance. File storage and your instance, which provides access and cost management, are shared across all managed workflow jobs and persist after the job ends. The job has no internet access.

리소스작업이 사용할 수 있는 항목
컴퓨팅작업에 대해 선택한 컴퓨팅 프로필의 CPU, 메모리, GPU입니다.
코드 및 패키지워크플로와 함께 업로드한 파일과 환경에 설치된 지원되는 패키지입니다.
인수run()에 전달한 인수입니다. get_arguments()로 읽을 수 있습니다.
QPU 액세스run()을 호출할 때 사용한 자격 증명과 인스턴스입니다. 워크플로가 제출하는 QPU 작업은 사용자의 인스턴스에서 실행되며 사용량에 포함됩니다.
출력작업이 save_result()로 저장하는 결과, 작업이 출력하는 로그, 작업이 update_status()로 설정하는 상태 업데이트입니다.
파일 스토리지워크플로의 모든 실행이 공유하는 파일입니다. 파일은 작업이 끝난 후에도 스토리지에 유지됩니다.
인터넷접근할 수 없습니다. 작업은 외부로 나가는 연결을 만들 수 없습니다. 워크플로를 업로드할 때 패키지를 선언하고, 데이터는 인수나 파일로 제공하세요.

보안 및 격리​

관리형 워크플로는 각 작업을 다른 작업으로부터 격리하고 그 안에서 실행되는 코드의 권한을 제한합니다. 앞의 표에 있는 접근 경계도 이 격리의 일부입니다. 관리형 워크플로는 다음과 같은 보호 기능도 적용합니다.

  • 작업 격리. 다른 어떤 작업도 사용자 작업의 환경에서 실행되지 않습니다. 여기에는 다른 사용자의 작업과 동시에 실행되는 사용자 본인의 작업이 포함됩니다.

  • 결과, 로그, 스토리지. 작업을 실행한 사용자만 해당 결과와 로그를 읽을 수 있습니다.

  • 자격 증명. 관리형 워크플로는 작업이 사용하는 자격 증명(API 토큰 포함)을 저장할 때 암호화합니다. 워크플로 코드는 작업이 실행되는 동안 이러한 자격 증명을 읽을 수 있습니다.

  • 권한. 관리형 워크플로는 진입점이 시작되기 전에 환경에서 관리자 수준 권한을 제거합니다.

온프레미스 HPC와 비교​

관리형 워크플로는 컴퓨팅 시간을 확보하는 방법, 소프트웨어를 설정하는 방법, 작업을 제출하는 방법에서 온프레미스 HPC 클러스터와 다릅니다. 다음 표는 일반적인 작업을 비교합니다.

작업온프레미스 HPC 클러스터관리형 워크플로
컴퓨팅 시간 확보클러스터 관리자에게 할당 또는 예약을 요청합니다.IBM Quantum 인스턴스의 할당량을 사용합니다. run()을 호출하면 워크플로가 각 작업을 대기열에 넣습니다.
시스템 접근SSH로 로그인 노드에 연결합니다.로컬 컴퓨터에서 Python 클라이언트를 사용합니다. 관리형 워크플로는 로그인 노드를 제공하지 않습니다.
소프트웨어 설치소프트웨어를 빌드하거나 모듈을 로드하거나 관리자에게 패키지 설치를 요청합니다.모든 환경에 설치된 지원 패키지를 사용하거나 다른 패키지는 wheel을 업로드합니다.
작업 제출배치 스크립트를 작성하여 스케줄러에 제출합니다.작업 인수와 함께 run()을 호출합니다.
리소스 요청노드, CPU, 메모리, GPU를 요청합니다.워크플로에 정의된 컴퓨팅 크기 중 하나를 선택합니다. 각 작업은 단일 노드에서 실행됩니다.
파라미터 스윕 실행작업 배열을 제출합니다.인수 세트마다 run()을 한 번씩 호출합니다.
공유 파일 저장공유 스크래치 파일 시스템에 씁니다.워크플로의 파일 스토리지에 씁니다.
실행 시간 제한월 클록 시간 제한을 설정합니다.워크플로는 24시간이 지나면 작업을 취소합니다.
장시간 작업 체크포인트스크래치 스토리지에 체크포인트를 씁니다.중간 결과를 파일 스토리지에 저장합니다.
실패한 작업 재실행작업을 다시 제출합니다.run()을 다시 호출합니다. 워크플로는 실패한 작업을 자동으로 재시도하지 않습니다.
작업 모니터링로그인 노드에서 대기열과 로그 파일을 확인합니다.로컬 Python 세션에서 각 작업의 상태, 로그, 결과를 확인합니다.

다음 단계​

권장 사항