Sabtu, 14 Juni 2014

Grid Computing/ Komputasi Grid

 Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.



Dalam buku The Grid:Blue Print for a new computing infrastructure dijelaskan bahwa yang dimaksud dengan komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang dapat menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia.
"A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities."Seandainya kelak dikemudian hari teknologi yang dibutuhkan untuk mewujudkan visi paradigma komputasi grid ini sudah mapan, peluang akan semakin terbuka bagi kerjasama lintas organisasi, lintas benua dan lintas bangsa. Akan terbuka peluang bagi peneliti di Indonesia yang ingin melakukan komputasi yang sangat rumit, dengan menggunakan supercomputer tercepat di dunia, tanpa harus melakukan investasi besar-besaran dalam bidang teknologi informasi.Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari penggunaan komputer terkoordinasi yang secara fisik terpisah atau terdistribusi. Sistemterdistribusi membutuhkan aplikasi yang berbeda dengan sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan .Setidaknya ada dua sisi yang mendorong semakin berkembangnya grid computing saat ini. Kebutuhan akan sumber daya komputasi yang besar di berbagai bidang serta adanya sumber daya komputasi yang tersebar. Grid computing menawarkan solusi komputasi yang murah, yaitu dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan yang mudah dari mana saja. Globus     
          Toolkit adalah sekumpulan perangkat lunak dan pustaka pembuatan lingkungan komputasi grid yang bersifat open-source. 
Dengan adanya lingkungan komputasi grid ini diharapkan mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka paralel.Dalam tulisan What is the Grid? 
A Three Point Checklist oleh Ian Foster (bapak dari Komputasi Grid) ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
       1.      Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada   dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu   cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.
       2.      Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya.Misalnya TCP/IP . 
        3.      Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.

Berikut ini adalah beberapa konsep dasar dari Komputasi Grid :·    

  *   Sumber daya dikelola dan dikendalikan secara lokal·         
 * Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup            sumber daya komputasi dikelola oleh sistem batch berbeda, 
 * Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada   user yang sama pada sumber daya berbeda pada Grid.·         
  * Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah·        
 Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)Tiga hal yang di-,sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses. 

Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high throughput computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.Secara generik, 
keuntungan dasar dari penerapan komputasi Grid, yaitu:·      
*    Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle·           Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas·         
  * Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik·         
   * Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baikIndonesia sudah menggunakan sistem Grid dan diberi nama InGrid (Inherent Grid). 
   * Sistem komputasi grid mulai beroperasi pada bulam Maret 2007 dan terus dikembangkan sampai saat ini. Grid ini menghubungkan beberapa perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika .
Secara umum, elemen-elemen dari infrastruktur Grid adalah :·         Hardware/Sumber daya (Dibuat tersedia dari site-site berbeda yang terdistribusi secara geografis, mencakup CPU/Storage/Instruments, dll…)·         Software: Sesuatu yang menghubungkan bersama-sama semua sumber daya ini: middleware. Beberapa aplikasi untuk menggunakan sumber daya komputasi yang dibuat tersedia·         Orang-orang: Siapa yang memelihara Grid, dan Siapa yang menggunakan GridMiddleware adalah lapisan atau layer perangkat lunak (software) yang terletak antara sistem operasi dan aplikasi.

 Elemen-elemen dasar dari Middleware ini adalah :·         Keamanan (security)·         Pengelolaan sumber daya (resource management)·         Pengelolaan data (data management)·         Layanan informasi (information services)Solusi bagi middleware yang telah tersedia, di antaranya adalah :·         Globus Toolkit (Argonne+ISI)·         LCG/Glite (dari proyek Uni Eropa)·         Gridbus (Melbourne, Australia)·         Unicore… (Jerman)·         Dan masih banyak lainnya…Secara generik. 



      Keuntungan Utama Penggunaan Grid Computing       

       - Teknologi  grid computing mampu menjadi solusi bagi perusahaanperusahaan untuk memiliki suatu    sistem informasi yang berteknologi canggih,      yang mampu mendukung kinerja perusahaan, dengan biaya yang lebih murah.      
        - Kemampuan teknologi tersebut untuk mendukung kinerja perusahaan tidak      diragukan lagi.  Teknologi  grid computing membuka peluang bagi adanya      kerjasama lintas organisasi, lintas benua, dan lintas bangsa. Selain itu, terbuka      pula peluang untuk  melakukan komputasi yang rumit dengan menggunakan      superkomputer yang canggih, tanpa harus melakukan investasi besar-besaran         dalam bidang teknologi informasi
       

       Grid computing menjadi suatu hal yang menjanjikan bagi perusahaan disebabkan oleh 3 hal, yaitu:
       (1) lebih hemat biaya dalam  penggunaan sejumlah tertentu sumber daya komputer,
       (2) sebagai cara untuk memecahkan masalah yang mungkin tidak dapat dipecahkan tanpa sejumlah besar daya komputasi, dan 
       (3) karena menunjukkan bahwa sumberdaya dari banyak komputer dapat kooperatif dan dimanfaatkan secara sinergis, serta dikelola sebagai sebuah kolaborasi mencapai tujuan bersama
  • Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle
  • Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas
  • Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik
  • Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik

       Kekurangan Grid Computing

       Kekurangan pada grid computing yang lebih saya tekankan disini adalah mengenai hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing. Hambatan-hambatan tersebut adalah sebagai berikut :
        1.      Manajemen institusi  yang terlalu birokratis menyebabkan mereka enggan untuk fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih besar bagi masyarakat luas.
        2.      Masih sedikitnya sumber daya manusia yang  kompeten dalam mengelola grid computing.
        3.      Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.
Dengan adanya beberapa manfaat dan hambatan mengenai tersedianya grid computing di Indonesia, maka harus ada solusi yang berfungsi untuk mewujudkan manfaat dan menghilangkan hambatan yang muncul tersebut. Solusi itu antara lain adalah sebagai berikut :
         1.      Memberikan sosialisasi pada instansi pendidikan maupun institusi non pendidikan mengenai manfaat serta biaya dengan menggunakan sistem komputasi grid.
         2.      Kerjasama riset dan pengembangan antara departement dalam suatu perguruan tinggi dan industri.
         3.      Diberikannya mata kuliah tentang grid computing sehingga dapat menghasilkan generasi yang menguasai teknologi ini.
        4.      Adanya pengembangan aplikasi yang relevan dengan grid computing.
 


         
      Menurut Myerson (2009), penggunaan grid computing tidak terlepas dari beberapa isu serta resiko yang mungkin dapat terjadi bagi perusahaan.
   Beberapa isu yang harus dipertimbangkan dan diperhatikan, antara lain:
    Tidak adanya interoperabilitas antar sistemInteroperabilitas adalah kemampuan dari suatu sistem untuk berinteraksi dan berfungsi dengan sistem lain, di masa kini atau di masa mendatang, tanpa batasan  akses atau implementasi. 

        Dalam  grid computing, permasalahan yang paling sering dijumpai adalah perbedaan format data yang dapat menghambat impor dan ekspor data dari komputer satu ke  komputer lainnya. Hal ini menyebabkan tidak terjadinya interperobilitas dalam sistem  grid computingsehingga diperlukan reformat data atau penggunaan suatu aplikasi agar data tersebut bisa diubah dan dipakai dalam suatu format tertentu. 
      Hadirnya biaya tersembunyiMisal, suatu perusahaan bisa dikenakan biaya yang lebih tinggi dari jaringan penyedia layanan  grid computing untuk penyimpanan dan aplikasi database yang berisi terabyte data. Hal ini mungkin melampaui biaya perusahaan  yang sedang berhemat  untuk  infrastruktur baru,  training bagi karyawan, atau pembiayaan untuk lisensi baru beberapa perangkat lunak.
      Latency data yang besarLatency data yang besar seringkali menjadi kendala bagi perusahaan akibat letaknya  yang jauh dari penyedia layanan atau terpisah secara geografis dengan perusahaan penyedia layanan grid computing.
      Keamanan dataIsu yang paling penting dalam  grid computing adalah mengenai keamanan data. Perusahaan harus memperhatikan ketersediaan data dan selalu waspada dalam menjaga kerahasiaan data yang penting bagi perusahaannya  

          Perbandingan Grid dan Superkomputer Konvensional "Terdistribusi" atau "grid" computing pada umumnya adalah tipe khusus darikomputasi paralel yang mengandalkan komputer lengkap (dengan CPU onboard, penyimpanan, pasokan listrik, antarmuka jaringan, dll) yang terhubung ke jaringan(swasta, publik atau Internet ) oleh konvensional antarmuka jaringan , seperti Ethernet. Hal ini berbeda dengan gagasan tradisional sebuah superkomputer , yang memiliki banyak prosesor dihubungkan oleh lokal berkecepatan tinggi bus komputer.

Keuntungan utama dari komputasi terdistribusi adalah bahwa setiap node dapat dibeli sebagai perangkat keras komoditas, yang, jika digabungkan, dapat menghasilkan sumber daya komputasi yang sama seperti multiprosesorsuperkomputer, tetapi dengan biaya lebih rendah. Hal ini karena skala ekonomiproduksi komoditas hardware, dibandingkan dengan efisiensi yang lebih rendah dari merancang dan membangun sejumlah kecil superkomputer kustom. Kelemahan kinerja utama adalah bahwa berbagai prosesor dan area penyimpanan lokal tidak memiliki koneksi berkecepatan tinggi. 

             Pengaturan ini demikian sangat cocok untuk aplikasi di mana perhitungan paralel dapat dilakukan secara independen, tanpa perlu berkomunikasi hasil antara antara prosesor. The high-end skalabilitas dari grid secara geografis umumnya menguntungkan, karena rendahnya perlu untuk konektivitas antara node relatif terhadap kapasitas Internet publik.Ada juga beberapa perbedaan dalam pemrograman dan penyebaran. Ini bisa mahal dan sulit untuk menulis program yang dapat dijalankan di lingkungan sebuah superkomputer, yang mungkin memiliki sistem operasi kustom, atau memerlukan program untuk mengatasi concurrency masalah. Jika masalah bisa secara memadai diparalelkan, sebuah "tipis" lapisan infrastruktur "grid" dapat memungkinkan konvensional, program mandiri, diberi bagian yang berbeda dari masalah yang sama, untuk dijalankan pada beberapa mesin. Hal ini memungkinkan untuk menulis dan debug pada mesin konvensional tunggal, dan menghilangkan komplikasi karena beberapa contoh program yang sama berjalan di bersama sama memori dan ruang penyimpanan pada waktu yang sama.  

             Grid SemantikGrid Semantik mengacu pada pendekatan untuk komputasi Grid di mana informasi, sumber daya komputasi dan layanan yang dijelaskan dengan menggunakan model data semantik. Dalam model ini data dan metadata disajikan melalui fakta (kalimat kecil). Oleh karena itu menjadi langsung dimengerti bagi manusia. Hal ini membuat lebih mudah bagi sumber daya yang ditemukan dan bergabung secara otomatis, yang membantu membawa sumber daya bersama-sama untuk menciptakan Virtual Organisasi (Vos). Deskripsi merupakan metadata dan biasanya direpresentasikan dengan menggunakan teknologi dari Web Semantic , seperti Deskripsi Resource Framework (RDF).
Dengan analogi dengan Semantic Web, Semantic Grid dapat didefinisikan sebagai "perpanjangan dari Grid saat ini di mana informasi dan layanan yang diberikan arti yang pasti, lebih baik memungkinkan komputer dan orang-orang untuk bekerja sama."
Gagasan Grid Semantic pertama kali diartikulasikan dalam konteks e-Science , mengamati bahwa pendekatan semacam ini diperlukan untuk mencapai tingkat tinggi yang mudah digunakan dan otomatisasi mulus memungkinkan kolaborasi fleksibel dan perhitungan dalam skala global.
Penggunaan Semantic Web dan teknologi pengetahuan dalam aplikasi Grid kadang-kadang digambarkan sebagai Grid Pengetahuan . Semantic Grid memperluas ini dengan juga menerapkan teknologi ini dalam Grid



            Karakteristik dan Contoh-contoh E-ScienceKarena kompleksitas dari perangkat lunak dan persyaratan infrastruktur backend, e-Ilmu proyek biasanya melibatkan tim besar dikelola dan dikembangkan oleh laboratorium penelitian, universitas besar atau pemerintah. Currently there is a large focus in e-Science in the United Kingdom , where the UK e-Science programme provides significant funding. Saat ini ada fokus yang besar dalam e-Science di Inggris , dimana Inggris program e-Ilmu menyediakan dana yang signifikan.
Development of e-Science is also advanced in Europe where the development of computing capabilities to support the CERN Large Hadron Collider has led to the development of e-Science and Grid infrastructures which are also used by other disciplines. Pengembangan e-Science juga maju di Eropa di mana pengembangan kemampuan komputasi untuk mendukung CERN Large Hadron Collider telah menyebabkan pengembangan e-Science dan Grid prasarana yang juga digunakan


           Kesimpulan   Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari penggunaan komputer terkoordinasi yang secara fisik terpisah atau terdistribusi. Sistem terdistribusi membutuhkan aplikasi yang berbeda dengan sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. 


sumber: http://speedradene.blogspot.com/2013/04/grid-pengertiankelebihandan-kekurangan.html

Sabtu, 17 Mei 2014

Quantum Komputing

Definisi
Komputer kuantum adalah perangkat komputasi yang menggunakan langsung fenomena kuantum mekanik, seperti superposisi dan belitan, untuk melakukan operasi pada data. Quantum komputer berbeda dari komputer digital berdasarkan transistor. Sedangkan komputer digital membutuhkan data yang akan dikodekan menjadi digit biner (bit), komputasi kuantum menggunakan properti kuantum untuk mewakili data dan melakukan operasi pada data ini. sumber : wikipedia
Komputer kuantum pertama kali dikenalkan oleh Yuri Marin pada tahun 1980 dan Richard Feynman 1981. Tidak seperti komputer pada umumnya, komputer kuantum menggunakan QUBITS sebagai satuannya.

Entanglement

Entanglement (belitan) merupakan fenomena 'aneh' yang terjadi pada Quantum Computing, fenomena ini dimanfaatkan oleh ilmuan dalam pembuatan Quantum Computing.
Jika dua atom mendapatkan gaya tertentu (outside force) kedua atom tersebut bisa masuk pada keadaan ‘entangled’. Atom-atom yang saling terhubungkan dalam entanglement ini akan tetap terhubungkan walaupun jaraknya berjauhan.[2]
Dalam keadaan ini, perilaku dua atom yang saling berkaitan akan sama dengan atom pasangannya. Jika pada atom 1 mengalami perubahan, maka atom pasangannya juda akan berperilaku sama seperti atom 1. Keadaan ini dimanfaatkan untuk mempercepat komunikasi data pada komputer. Komunikasi menggunakan komputer kuantum bisa mencapai kecepatan yang begitu luar biasa karena informasi dari satu tempat ke tempat lain dapat ditransfer secara instant. Begitu cepatnya sehingga terlihat seakan-akan mengalahkan kecepatan cahaya.

Pengoperasian data Qubit

Qubit merupakan satuan yang digunakan pada quantum computing, pada komputer digital nilai 1 menyatakan bahwa adanya listrik, sedangkan nilai 0 untuk menyatakan tidak adanya arus listrik. Dalam quantum computing perilaku bilangan bit ini dinyatakan dengan perilaku atom yang sedang berputar. Atom memiliki konfigurasi spin. Spin atom bisa ke atas (up), bisa pula ke bawah (down). Misalnya saat spin atom mengarah ke atas (up) kita beri lambang 1, sedangkan spin down adalah 0.


Quantum Gates

Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital. Berikut kutipan dari wikipedia mengenai quantum gates :

In quantum computing and specifically the quantum circuit model of computation, a quantum gate (or quantum logic gate) is a basic quantum circuit operating on a small number of qubits. They are the building blocks of quantum circuits, like classical logic gates are for conventional digital circuits. 
Unlike many classical logic gates, quantum logic gates are reversible. However, classical computing can be performed using only reversible gates. For example, the reversible Toffoli gate can implement all Boolean functions. This gate has a direct quantum equivalent, showing that quantum circuits can perform all operations performed by classical circuits. 
Quantum logic gates are represented by unitary matrices. The most common quantum gates operate on spaces of one or two qubits, just like the common classical logic gates operate on one or two bits. This means that as matrices, quantum gates can be described by 2 × 2 or 4 × 4 unitary matrices.[3]
Dari kutipan diatas, gerbang logika berbeda dengan gerbang quantum, dimana gerbang quantum bersifat reversible.

Algoritma Shor


Algoritma shor merupakan sebuah algoritma yang ditemukan oleh seorang matematikawan, sesuai dengan namanya, algoritma ini ditemukan oleh Peter Shor pada tahun 1994. Algoritma ini banyak digunakan pada quantum computing. 

Dalam quantum computing, untuk mencari factor sebuah bilangan integer N, algoritma shor akan menjalankannya dalam waktu polynomial (waktu diambil dari polynomial pada log N). karena kecepatan waktunya, algotima ini / quantum computing, dapat digunakan untuk memecahkan kunci publik yang banyak digunakan seperti RSA. Pada komputer digital, untuk memecahkan sebuah RSA key diperlukan waktu yang banyak. Namun, dengan menggunakan quantum computing, masalah waktu pada pemecahan sebuah RSA key dapat dipersingkat.

Implementasi 
Dalam  edisi  jurnal  ilmiah  Nature  yang  terbit  beberapa waktu lalu, sebuah tim bersama-sama mahasiswa tingkat graduate dari  Unversitas Stanford melaporkan demonstrasi pertama dari “Algoritma Shor” sebuah metode yang dikembangkan tahun 1994 oleh ilmuwan AT&T  Peter Shor untuk menggunakan komputer kuantum yang futuristis untuk menemukan faktor-faktor dari sebuah bilangan. Bilangan-bilangan yang diperkalikan satu dengan yang lain  untuk  memperoleh  bilangan  asli.  Saat ini, pemfaktoran (factoring) sebuah bilangan besar masih terlalu sulit bagi komputer konvensional meskipun begitu mudah untuk  diverifikasi. Itulah sebabnya pemfaktoran bilangan besar ini banyak digunakan dalam metode kriptografi untuk melindungi data.
Sebuah komputer kuantum mendapatkan kemampuannya dengan memanfaatkan sifat-sifat kuantum tertentu dari atom ataupun nukleus yang memungkinkan mereka bekerja bersama sebagai suatu bit kuantum, atau “qubit”, yang berfungsi sebagai prosesor sekaligus sebagai memori pada waktu yang sama. Dengan  mengarahkan interaksi-interaksi di antara  qubit-qubit, sementara mereka terus diisolasikan dari lingkungan eksternal. Para ilmuwan berhasil membuat sebuah komputer kuantum menjalankan kalkulasi-kalkulasi tertentu, seperti pemfaktoran, dengan kecepatan yang secara eksponensial lebih tinggi dibandingkan  komputer konvensional. Bila kita menggunakan komputer konvensional untuk melakukan pemfaktoran bilangan-bilangan besar, setiap penambahan digit akan melipatduakan waktu yang dibutuhkan untuk menemukan faktor-faktornya. Sebaliknya, waktu untuk melakukan pemfaktoran dengan menggunakan komputer kuantum hanya akan bertambah panjang secara konstan bila sebuah digit ditambahkan ke bilangan yang akan difaktorkan tersebut.
Kesimpulan

Kemajuan teknologi dibidang komputer semakin cepat, processor yang ada pada saat ini hampir mencapai perkembangan yang maksimal, sehingga jumlah transistor yang ditanamkan pada sebuah processor semakin padat. Maka dari itu, para ilmuan mengembangkan teknologi baru bernama quantum computing, dengan adanya quantum computing ini, kecepatan komputer bisa beberapa kali lipat dari komputer digital biasa, sehingga quantum computing bisa dibilang merupakan sebuah teknologi masa depan di dunia teknologi komputer.

Sumber: 
http://romydjuniardi.blogspot.com/2013/05/pengantar-quantum-computation.html
http://anisahicha.wordpress.com/2014/05/17/definisi-implementasi-dan-algoritma-dari-quantum-computing/