Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, büyük programlar için çalışma sürelerini iyileştirmek için Q# kullanmayı öğreneceksiniz.
Kaynak tahmin aracını çalıştırma hakkında bilgi için bkz. Kaynak tahmin aracısını çalıştırmanın farklı yolları.
Önkoşullar
- Visual Studio Code'un (VS Code) en son sürümü veya Web için VS Code'un açılması.
- Microsoft Quantum Development Kit (QDK) uzantısının en son sürümü. Yükleme ayrıntıları için bkz. QDK'yi ayarlama.
VS Code'da Python kullanmak istiyorsanız, aşağıdakileri de yapmanız gerekir:
VS Code'da Python ve Jupyter uzantılarının en son sürümlerini yükleyin.
Python kitaplığının en son sürümünü
qdkyükleyin.python -m pip install --upgrade qdk
Q# programlarla manuel önbelleğe alma
Kaynak tahmin aracına bir kaynak tahmin işi gönderdiğinizde, kaynak tahmin aracı tahminleri hesaplamak için kuantum programınızın tamamını değerlendirir. Programınız Q# aynı işlemi, örneğin çok yinelemeli bir döngüde birçok kez çağırırsa, kaynak tahmin işi çalışma süresi çok uzun olabilir. Bu tür programların uzun çalışmasını azaltmak için, maliyetleri hesaplamak ve önbelleğe almak için işlemi bir kez çalıştırabilir ve ardından önbelleğe alınan verileri işleme yapılan sonraki çağrılarda kullanabilirsiniz. Bu teknik el ile önbelleğe alma olarak adlandırılır.
Kaynak tahmin aracı target , el ile önbelleğe alma gerçekleştirmek için iki Q# işlevi destekler: BeginEstimateCaching ve EndEstimateCaching.
BeginEstimateCaching işlevi aşağıdaki girişleri alır:
| Giriş parametresi | Türü | Description |
|---|---|---|
name |
Dize | Maliyetleri önbelleğe almak istediğiniz kod parçasının benzersiz adı |
variant |
Int | Aynı kod parçası için maliyetin değişkenini gösterir |
Not
İki özel işlemdir BeginEstimateCaching ve EndEstimateCaching kaynak tahmin aracı için iç işlemlerdir. Programınız Q# bu işlemlerden birini içeriyorsa, programınız diğer simülatörde veya donanımda targetsçalışamaz.
Örneğin, programınızda birçok kez çağrılan Q# adlı bir ExpensiveOperation işleminiz olduğunu varsayalım. Toplam kaynak tahmini çalışma süresini azaltmak için çalıştırılacak ExpensiveOperation maliyet tahminini önbelleğe alın:
operation ExpensiveOperation(c: Int, b : Bool): Unit {
if BeginEstimateCaching("MyNamespace.ExpensiveOperation", SingleVariant()) {
// Code block to be cached
EndEstimateCaching();
}
}
İşlev BeginEstimateCaching, programınız tarafından her çağrıldığında ExpensiveOperation çağırma işlemi gerçekleşir. İlk kez çağrıldığında BeginEstimateCaching, true döndürülür ve ExpensiveOperation için maliyet verilerini biriktirmeye başlar. Bu, kodunuzun pahalı kod parçasının yürütülmesine devam etmesine neden olur. Çağrıldığında EndEstimateCaching , maliyet verileri gelecekteki kullanım için depolanır ve programınızın genel maliyetine eklenir.
İkinci kez çağrıldığında ExpensiveOperation (ve daha sonra), kaynak tahmin aracı depolanan (önbelleğe alınmış) maliyet verilerini bulur, bunu programın genel maliyetine ekler ve döndürür false. Bu, kaynak tahmin aracının pahalı kod parçasının sonraki çalıştırmalarını atlamasına neden olur. Önbelleğe alma işleminin düzgün çalışması için EndEstimateCaching öğesini koşulun sonuna yerleştirin ve BeginEstimateCaching ile EndEstimateCaching arasında yer alan bölgeleri iç içe geçirin.
bağımsız değişkeni, SingleVariant() ilk çalıştırmasında toplanan maliyet verilerinin ExpensiveOperation kod parçasının sonraki tüm çalıştırmalarında yeniden kullanılabilmesini gösterir. Her zaman böyle olmayabilir. Örneğin, kodunuzun bir değişkeninin ctek ve çift değerleri için farklı maliyetleri varsa, bir variant değer sağlayabilirsiniz:
operation ExpensiveOperation(c: Int, b : Bool): Unit {
if BeginEstimateCaching("MyNamespace.ExpensiveOperation", c % 2) {
// Some code
EndEstimateCaching();
}
}
Bu durumda, c'un tek ve çift değerleri için önbellek farklıdır. Başka bir deyişle, çift değerler için c toplandığında, bu veriler yalnızca çift değerler için c tekrar kullanılır ve aynı durum tek değerler için c de geçerlidir.
Not
Kaynak tahmin aracıyla çalışırken sorunlarla karşılaşırsanız Sorun giderme sayfasına bakın veya ile iletişime geçin AzureQuantumInfo@microsoft.com.