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 paket, QuantumJobClient için bir isomorphic SDK içerir.
Azure Quantum, kuantum bilişim programlarını çalıştırmak veya buluttaki iyileştirme sorunlarını çözmek için kullanabileceğiniz bir Microsoft Azure hizmetidir. Azure Quantum araçlarını ve SDK'larını kullanarak kuantum programları oluşturabilir ve bunları farklı kuantum simülatörleri ve makinelerde çalıştırabilirsiniz. İstemci kitaplığını @azure/quantum-jobs kullanarak aşağıdakileri yapabilirsiniz:
Kuantum işleri oluşturma, listeleme ve iptal etme
Sağlayıcı durumunu ve kotalarını listeleme
Kaynak kodu | API başvuru belgeleri | Ürün belgeleri | Örnekleri
Başlarken
Bu bölüm, bir geliştiricinin ilk istemci bağlantısını çok hızlı bir şekilde yüklemek ve oluşturmak için ihtiyaç duyduğu her şeyi içerir.
Paketi yükleme
ile npmJavascript için Azure Quantum Jobs istemci kitaplığını yükleyin:
npm install @azure/quantum-jobs
Önkoşullar
- Node.js sürüm 8.x.x veya üzeri
- Azure aboneliği
- Azure Quantum Çalışma Alanı
İstemcinin kimliğini doğrulama
Hizmetle kimlik doğrulaması yapmak için kitaplıktan @azure/identityDefaultAzureCredential kullanabilirsiniz. Bu, ortama (örneğin Ortam Değişkenleri, ManagedIdentity, CachedTokens) bağlı olarak farklı kimlik doğrulama mekanizmaları dener ve son olarak InteractiveBrowserCredential'a geri dönüş yapacaktır.
İstemci ayrıca kullanıcının kendi TokenCredential uygulamalarını geçirerek yukarıdaki davranışı geçersiz kılmasını sağlar.
TokenCredential , Azure SDK'ları tarafından kullanılan varsayılan Kimlik Doğrulama mekanizmasıdır.
Önemli kavramlar
QuantumJobClient , işlerin kimliğini doğrulamak, işleri oluşturmak, listelemek ve iptal etmek için kullanılacak kök sınıftır.
JobDetails bir işin tüm özelliklerini içerir.
ProviderStatus sağlayıcının durum bilgilerini içerir.
QuantumJobQuota kota özellikleri içerir.
Örnekler
İstemci oluşturma
Şu parametreleri geçirerek QuantumJobClient örneğini oluşturun:
- Abonelik Kimliği - XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX gibi görünür ve azure'daki abonelikler listenizde bulunabilir
- Kaynak Grubu Adı - Azure çözümü için ilgili kaynakları barındıran kapsayıcı
- Çalışma Alanı Adı - kuantum veya iyileştirme uygulamalarını çalıştırmayla ilişkili varlık koleksiyonu
- Konum - Coğrafi bölgeye göre en iyi veri merkezini seçin
- Depolama KapsayıcıSı Adı - blob depolama alanınız
- Kimlik bilgisi - kimlik doğrulaması için kullanılır
const credential = new DefaultAzureCredential();
// Create a QuantumJobClient
const subscriptionId = "your_subscription_id";
const resourceGroupName = "your_resource_group_name";
const workspaceName = "your_quantum_workspace_name";
const storageContainerName = "mycontainer";
const location = "westus"; //"your_location";
const endpoint = "https://" + location + ".quantum.azure.com";
const quantumJobClient = new QuantumJobClient(
credential,
subscriptionId,
resourceGroupName,
workspaceName,
{
endpoint: endpoint,
credentialScopes: "https://quantum.microsoft.com/.default"
}
);
Kapsayıcı SAS URI'si alma
Verilerinizi yerleştirmek için bir depolama kapsayıcısı oluşturun.
// Get container Uri with SAS key
const containerUri = (
await quantumJobClient.storage.sasUri({
containerName: storageContainerName
})
).sasUri;
// Create container if not exists
const containerClient = new ContainerClient(containerUri);
await containerClient.createIfNotExists();
Giriş Verilerini Karşıya Yükleme
SAS URI'sini kullanarak json giriş verilerini blob istemcisine yükleyin. Bu, Quantum Inspired Optimizations ile kullanılacak parametreleri içerir
// Get input data blob Uri with SAS key
const blobName = "myjobinput.json";
const inputDataUri = (
await quantumJobClient.storage.sasUri({
containerName: storageContainerName,
blobName: blobName
})
).sasUri;
// Upload input data to blob
const blobClient = new BlockBlobClient(inputDataUri);
const problemFilename = "problem.json";
const fileContent = fs.readFileSync(problemFilename, "utf8");
await blobClient.upload(fileContent, Buffer.byteLength(fileContent));
İşi oluşturma
Artık sorun tanımınızı Azure Depolama'ya yüklediğinize göre, bir Azure Quantum işi tanımlamak için kullanabilirsiniz jobs.create .
const randomId = `${Math.floor(Math.random() * 10000 + 1)}`;
// Submit job
const jobId = `job-${randomId}`;
const jobName = `jobName-${randomId}`;
const inputDataFormat = "microsoft.qio.v2";
const outputDataFormat = "microsoft.qio-results.v2";
const providerId = "microsoft";
const target = "microsoft.paralleltempering-parameterfree.cpu";
const createJobDetails = {
containerUri: containerUri,
inputDataFormat: inputDataFormat,
providerId: providerId,
target: target,
id: jobId,
inputDataUri: inputDataUri,
name: jobName,
outputDataFormat: outputDataFormat
};
const createdJob = await quantumJobClient.jobs.create(jobId, createJobDetails);
İş Al
GetJob kimliğine göre belirli bir işi alır.
// Get the job that we've just created based on its jobId
const myJob = await quantumJobClient.jobs.get(jobId);
İşleri Al
Çalışma alanında tüm işleri listelemek için yöntemini kullanın jobs.list .
let jobListResult = await quantumJobClient.jobs.list();
let listOfJobs = await jobListResult.next();
while (!listOfJobs.done) {
let job = listOfJobs.value;
console.log(` ${job.name}`);
listOfJobs = await jobListResult.next();
}
Sonraki adımlar
- Azure Quantum hakkında daha fazla bilgi edinmek için Ürün belgelerimizi ziyaret edin.
Katkıda bulunma
Bu kitaplığı oluşturma, test etme ve bu kitaplığa katkıda bulunma hakkında ayrıntılı bilgi için CONTRIBUTING.md bakın.
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için cla.microsoft.com adresini ziyaret edin.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorular veya yorumlarla iletişime geçin opencode@microsoft.com .
Sorun giderme
Tüm Kuantum İşleri hizmeti işlemleri, yararlı ErrorCode'larla hata durumunda bir RequestFailedException oluşturur. Bu hataların çoğu kurtarılabilir.
Azure SDK for JavaScript