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.
Oturumlar, birden çok kuantum bilgi işlem işini birlikte gruplandırmanıza olanak sağlayan hibrit kuantum bilişiminin önemli bir özelliğidir. Oturum, tek bir target öğesine gönderdiğiniz bir veya daha fazla işin mantıksal gruplandırılmasıdır. Her oturumun, bu oturumdaki her işe eklenmiş benzersiz bir kimliği vardır. Oturumlar, birden çok kuantum bilgi işlem işini sırayla çalıştırmak ve kuantum işleri arasında klasik kod çalıştırmak istediğinizde kullanışlıdır.
Bu makalede hibrit kuantum bilişimindeki oturumların mimarisi ve 'de Azure Quantumyeni bir oturumun nasıl oluşturulacağı açıklanmaktadır.
Önkoşullar
Oturum oluşturmak için aşağıdaki önkoşullara ihtiyacınız vardır:
Etkin aboneliği olan bir Azure hesabı. Azure hesabınız yoksa ücretsiz kaydolun ve kullandıkça öde aboneliğine kaydolun.
Çalışma Azure Quantum alanı. Daha fazla bilgi için bkz. Çalışma alanı oluşturmaAzure Quantum.
Python ortamının kurulmuş ve Python ile Pip'in yüklü olduğu bir ortam.
En son Visual Studio CodeVS Code) sürümü, QDK, Python ve Jupyter yüklü.
Kitaplık
qdkPython . Qiskit ve Cirq programlarını göndermek içinazure,qiskitvecirqekstralarını yükleyin.pip install --upgrade "qdk[azure,qiskit,cirq]"
Oturum nedir?
Oturumlarda, daha düşük gecikme süresi ve kuantum programınızı farklı parametrelerle birden çok kez çalıştırabilmek için istemci işlem kaynağını buluta taşıyabilirsiniz. İşleri mantıksal olarak tek bir oturumda gruplandırabilir ve bu oturumdaki işlerin önceliğini oturum dışı işlere göre ayarlayabilirsiniz. Kubit durumları işler arasında kalıcı olmaz, ancak bir oturumdaki işler daha kısa kuyruk sürelerine sahiptir. Daha kısa kuyruk süreleri, tek tek kuantum bilgi işlem işlerinizi daha iyi düzenlemek ve izlemek için karmaşık algoritmalar çalıştırmanızı sağlar.
Oturumlar, bir kuantum bilişim işinin çıktısının bir sonraki kuantum bilişim işi için giriş parametrelerini tanımlamak için kullanıldığı parametreleştirilmiş kuantum algoritmaları için kullanışlıdır. Bu algoritma türünün en yaygın örnekleri şunlardır Variational Quantum Eigensolvers : (VQE) ve Quantum Approximate Optimization Algorithms (QAOA).
Desteklenen donanım
Oturumlar tüm kuantum bilgi işlem donanım sağlayıcılarında desteklenir. Bazı durumlarda, bir oturum içinde gönderilen işler, bu targetkuyruğunda önceliklendirilir. Daha fazla bilgi için bkz . Hedef davranışı.
Oturum oluşturma
Oturum oluşturmak için şu adımları izleyin:
Bu örnek, Q# içindeki bir Jupyter not defterinde VS Code satır içi kodla bir oturum nasıl oluşturulacağını gösterir.
Not
Oturumlar, Python ile, satır içi kod çalıştırılırken bile Q# yönetilir.
içinde VS CodeGörünüm menüsünü açın ve Komut Paleti'ni seçin.
Yeni oluşturun: Jupyter Notebook yazın ve seçin.
Sağ üst köşede, VS Code not defteri için seçilen sanal Python ortamını ve Python sürümünü algılar ve görüntüler. Birden çok Python ortamınız varsa, sağ üstteki çekirdek seçiciyi kullanarak bir çekirdek seçmeniz gerekebilir. Eğer herhangi bir envanter algılanmadıysa, kurulum bilgileri için Jupyter Notebook'ya bakın.VS Code.
Not defterinin ilk hücresinde aşağıdaki kodu çalıştırın:
from qdk.azure import Workspace workspace = Workspace(resource_id="") # add your resource IDNot defterine yeni bir hücre ekleyin ve paketi içeri aktarın
qsharpPython :from qdk import qsharpKuantumunuzu targetseçin. Bu örnekte, targetIonQ simülatörüdür.
target = workspace.get_targets("ionq.simulator")target profilinin yapılandırmalarını seçin; ya
Base,Adaptive_RIveyaUnrestricted.qsharp.init(target_profile=qsharp.TargetProfile.Base)Not
Adaptive_RItarget profil işleri şu anda Quantinuum üzerinde desteklenmektedir targets. Daha fazla bilgi için bkz . Tümleşik hibrit kuantum bilişimi.Programınızı Q# yazın. Örneğin, aşağıdaki Q# program rastgele bir bit oluşturur. Giriş bağımsız değişkenlerinin kullanımını göstermek için, bu program giriş olarak bir tamsayı,
nve bir açıangledizisi alır.%%qsharp import Std.Measurement.*; import Std.Arrays.*; operation GenerateRandomBits(n: Int, angle: Double[]) : Result[] { use qubits = Qubit[n]; // n parameter as the size of the qubit array for q in qubits { H(q); } R(PauliZ, angle[0], qubits[0]); // arrays as entry-points parameters R(PauliZ, angle[1], qubits[1]); let results = MeasureEachZ(qubits); ResetAll(qubits); return results; }Ardından bir oturum oluşturacaksınız. İşlemi
GenerateRandomBitüç kez çalıştırmak istediğinizi varsayalım; bu nedenletarget.submitişlemi Q# verilerle birliktetargetgöndermek için kullanırsınız ve bu kodu üç kez yinelersiniz. Gerçek bir dünya senaryosunda, aynı kodu tekrarlamak yerine farklı programlar göndermek isteyebilirsiniz.angle = [0.0, 0.0] with target.open_session(name="Q# session of three jobs") as session: target.submit(input_data=qsharp.compile(f"GenerateRandomBits(2, {angle})"), name="Job 1", shots=100) # First job submission angle[0] += 1 target.submit(input_data=qsharp.compile(f"GenerateRandomBits(2, {angle})"), name="Job 2", shots=100) # Second job submission angle[1] += 1 target.submit(input_data=qsharp.compile(f"GenerateRandomBits(2, {angle})"), name="Job 3", shots=100) # Third job submission session_jobs = session.list_jobs() [session_job.details.name for session_job in session_jobs]Önemli
Bağımsız değişkenleri işe parametre olarak geçirdiğinizde, bağımsız değişkenler çağrıldığında Q# ifadeye
qsharp.compilebiçimlendirilir. Bu, bağımsız değişkenlerinizi nesne olarak Q# biçimlendirmeniz gerektiği anlamına gelir. Bu örnekte, Python içindeki diziler zaten[item0, item1, ...]olarak yazdırılmış olduğundan, giriş bağımsız değişkenleri Q# biçimlendirmesiyle eşleşir. Diğer Python veri yapılarında, içine eklenen Q# dize değerlerini uyumlu bir şekilde almak için daha fazla işlemeye ihtiyacınız olabilir.Oturum oluşturduktan sonra, oturumdaki tüm işlerin listesini almak için kullanabilirsiniz
workspace.list_session_jobs. Daha fazla bilgi için bkz . Oturumları yönetme.
Hedef davranış
Her kuantum donanım sağlayıcısı, bir oturumdaki işlerin öncelik belirlemesini en iyi şekilde yönetmek için kendi buluşsal yöntemlerini tanımlar.
Quantinuum
Bir oturumdaki işleri Quantinuum'a targetgöndermeyi seçerseniz, işleri bir dakika içinde sıraya aldığınız sürece oturumunuzun donanıma özel erişimi olur. Bundan sonra işleriniz kabul edilir ve standart kuyruğa alma ve öncelik belirleme mantığıyla işlenir.