Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Paket ini berisi SDK isomorfik untuk QuantumJobClient.
Azure Quantum adalah layanan Microsoft Azure yang dapat Anda gunakan untuk menjalankan program komputasi kuantum atau memecahkan masalah pengoptimalan di cloud. Dengan menggunakan alat dan SDK Azure Quantum, Anda dapat membuat program kuantum dan menjalankannya terhadap simulator dan mesin kuantum yang berbeda. Anda dapat menggunakan @azure/quantum-jobs pustaka klien untuk:
Membuat, menghitung, dan membatalkan pekerjaan kuantum
Menghitung status dan kuota penyedia
Kode sumber | Dokumentasi | referensi APIDokumentasi | produkSampel
Memulai
Bagian ini mencakup semua yang dibutuhkan pengembang untuk menginstal dan membuat koneksi klien pertama mereka dengan sangat cepat.
Instal paketnya
Instal pustaka klien Azure Quantum Jobs untuk Javascript dengan npm:
npm install @azure/quantum-jobs
Prasyarat
- Node.js versi 8.x.x atau lebih tinggi
- Langganan Azure
- Ruang Kerja Azure Quantum
Mengautentikasi klien
Untuk mengautentikasi dengan layanan, Anda dapat menggunakan DefaultAzureCredential dari @azure/identity pustaka. Ini akan mencoba mekanisme autentikasi yang berbeda berdasarkan lingkungan (misalnya Variabel Lingkungan, ManagedIdentity, CachedTokens) dan akhirnya, itu akan kembali ke InteractiveBrowserCredential.
Klien juga memungkinkan pengguna untuk mengambil alih perilaku di atas dengan meneruskan implementasi TokenCredential mereka sendiri.
TokenCredential adalah mekanisme Autentikasi default yang digunakan oleh Azure SDK.
Konsep utama
QuantumJobClient adalah kelas akar yang akan digunakan untuk mengautentikasi, dan membuat, menghitung, dan membatalkan pekerjaan.
JobDetails berisi semua properti pekerjaan.
ProviderStatus berisi informasi status untuk penyedia.
QuantumJobQuota berisi properti kuota.
Contoh
Membuat klien
Buat instans QuantumJobClient dengan meneruskan parameter ini:
- Id Langganan - terlihat seperti XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX dan dapat ditemukan dalam daftar langganan Anda di azure
- Nama Grup Sumber Daya - kontainer yang menyimpan sumber daya terkait untuk solusi Azure
- Nama Ruang Kerja - kumpulan aset yang terkait dengan menjalankan aplikasi kuantum atau pengoptimalan
- Lokasi - pilih pusat data terbaik menurut wilayah geografis
- Nama Kontainer Penyimpanan - penyimpanan blob Anda
- Kredensial - digunakan untuk mengautentikasi
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"
}
);
Dapatkan URI SAS Kontainer
Buat kontainer penyimpanan untuk meletakkan data Anda.
// 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();
Unggah Data Input
Menggunakan SAS URI, unggah data input json ke klien blob. Ini berisi parameter yang akan digunakan dengan Pengoptimalan Terinspirasi Quantum
// 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));
Membuat pekerjaan
Setelah mengunggah definisi masalah ke Azure Storage, Anda dapat menggunakan jobs.create untuk menentukan pekerjaan Azure Quantum.
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);
Dapatkan Pekerjaan
GetJob mengambil pekerjaan tertentu dengan id-nya.
// Get the job that we've just created based on its jobId
const myJob = await quantumJobClient.jobs.get(jobId);
Mendapatkan Pekerjaan
Untuk menghitung semua pekerjaan di ruang kerja, gunakan jobs.list metode .
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();
}
Langkah berikutnya
- Kunjungi Dokumentasi Produk kami untuk mempelajari selengkapnya tentang Azure Quantum.
Berkontribusi
Lihat CONTRIBUTING.md untuk detail tentang membangun, menguji, dan berkontribusi pada pustaka ini.
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi cla.microsoft.com.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.
Pemecahan Masalah
Semua operasi layanan Pekerjaan Quantum akan melempar RequestFailedException pada kegagalan dengan ErrorCodes yang bermanfaat. Banyak dari kesalahan ini dapat dipulihkan.
Azure SDK for JavaScript