이 문서에서는 Azure Quantum 리소스 추정기를 사용하여 대규모 프로그램의 실행 시간을 최적화하는 방법을 알아봅니다.
리소스 추정기를 실행하는 방법에 대한 자세한 내용은 리소스 추정기를 실행하는 다양한 방법을 참조하세요.
필수 조건
- 최신 버전의 Visual Studio Code를 설치하거나 웹에서 VS Code를 엽니다.
- 최신 Quantum Development Kit 확장판 버전. 설치 세부 정보는 QDK 확장설정을 참조하세요.
VS Code에서 Python을 사용하려면 다음도 필요합니다.
최신
qdkPython 패키지입니다.python -m pip install --upgrade qdk
Q# 프로그램을 사용하여 수동 캐싱
자원 예측 작업에 리소스 예측 작업을 제출하면 양자 프로그램이 완전히 평가되어 리소스 예측값을 추출합니다. 여러 번 호출되는 작업의 리소스 Q# 를 예측하려는 경우(예: 반복이 많은 루프에서) 리소스 예측 작업의 실행에 시간이 오래 걸릴 수 있습니다. 긴 실행 시간을 줄이는 한 가지 방법은 작업을 한 번 실행하고, 비용을 계산 및 캐시하고, 후속 호출 시 데이터를 사용하는 것입니다. 이 기술을 수동 캐싱이라고 합니다.
리소스 추정기는 target 두 가지Q# 수동 캐싱 기능을 지원합니다: BeginEstimateCaching(name: String, variant: Int): Bool 및 EndEstimateCaching(): Unit.
BeginEstimateCaching 함수는 비용을 캐시하고자 하는 코드 조각의 고유 이름을 입력으로 받고, 동일한 조각에 대해 다양한 비용 변형을 구분하는 정수 name을(를) 입력으로 받습니다.
참고
두 가지 특수 작업 BeginEstimateCaching과 EndEstimateCaching은 리소스 예측기에서 사용하는 기본 작업입니다. 다른 실행 targets에서 지원되지 않습니다.
예를 들어, 반복에서 여러 번 호출되는 Q#이라는 작업 ExpensiveOperation이 있다고 가정해 보겠습니다. 캐싱을 사용하여 예상 시간을 줄일 수 있습니다.
operation ExpensiveOperation(c: Int, b : Bool): Unit {
if BeginEstimateCaching("MyNamespace.ExpensiveOperation", SingleVariant()) {
// Code block to be cached
EndEstimateCaching();
}
}
반복적으로 ExpensiveOperation가 사용되는 경우, BeginEstimateCaching이 매번 호출됩니다.
BeginEstimateCaching이 처음 호출되면 true을 반환하고 비용 데이터의 누적을 시작합니다. 이렇게 하면 코드가 비용이 많이 드는 코드 조각의 실행을 계속합니다. 호출 시 EndEstimateCaching는 비용 데이터를 향후 사용을 위해 저장하고 프로그램의 전체 비용에 통합합니다.
ExpensiveOperation가 두 번째 및 그 이후 호출될 때, Resource Estimator는 저장된(캐시된) 비용 데이터를 찾아 프로그램의 전체 비용에 통합하고 false을 반환합니다. 이로 인해 비용이 많이 드는 코드 조각을 건너뛰므로 리소스 추정기가 프로그램을 더 빠르게 실행합니다.
EndEstimateCaching는 조건의 끝에 배치되어야 하며, BeginEstimateCaching-EndEstimateCaching로 둘러싸인 영역은 중첩될 수 있습니다.
SingleVariant()는 첫 번째 실행에서 수집된 비용 데이터를 코드 조각의 모든 후속 실행에서 다시 사용할 수 있음을 나타냅니다. 항상 그렇지는 않을 수도 있습니다. 예를 들어, 코드에서 'c' 변수의 홀수 값과 짝수 값에 대해 서로 다른 비용이 있는 경우, variant 값을 제공할 수 있습니다.
operation ExpensiveOperation(c: Int, b : Bool): Unit {
if BeginEstimateCaching("MyNamespace.ExpensiveOperation", c % 2) {
// Some code
EndEstimateCaching();
}
}
이 경우, c의 홀수 값과 짝수 값에 대해 캐시가 다릅니다. 즉, 짝수 값 c에 대해 수집된 데이터는 짝수 값 c에만 다시 사용되며, 홀수 값 c에 대해서도 동일하게 적용됩니다.
참고
리소스 예측 도구로 작업하는 동안 문제가 발생하면 문제 해결 페이지를 확인하거나 AzureQuantumInfo@microsoft.com로 문의하세요.
관련 콘텐츠
- 리소스 추정기 결과를 검색합니다.
- 리소스 추정기 실행의 다양한 방법
- target 매개 변수 사용자 지정