Quantum Computing, Entanglement, Pengoperasian Data Qubit, Quantum Gates, Algoritma Shor
Pengertian
Quantum Computing
Merupakan alat hitung yang menggunakan mekanika kuantum
seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data.
Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan
perhitungan jumlah data pada komputer kuantum dilakukan dengan qubit.
Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat
digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum
dapat digunakan untuk melakukan operasi dengan data ini. Dalam hal ini untuk
mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang
sesuai dengan prinsip kuantum.
Entanglement adalah efek mekanik kuantum yang mengaburkan
jarak antara partikel individual sehingga sulit menggambarkan partikel tersebut
terpisah meski Anda berusaha memindahkan mereka. Contoh dari quantum
entanglement: kaitan antara penentuan jam sholat dan quantum entanglement.
Mohon maaf bagi yang beragama lain saya hanya bermaksud memberi contoh saja.
Mengapa jam sholat dibuat seragam? Karena dengan demikian secara massal banyak
manusia di beberapa wilayah secara serentak masuk ke zona entanglement bersamaan.
Pengertian
Lain
Quantum entanglement adalah bagian dari fenomena quantum
mechanical yang menyatakan bahwa dua atau lebih objek dapat digambarkan
mempunyai hubungan dengan objek lainnya walaupun objek tersebut berdiri sendiri
dan terpisah dengan objek lainnya. Quantum entanglement merupakan salah satu
konsep yang membuat Einstein mengkritisi teori Quantum mechanical. Einstein
menunjukkan kelemahan teori Quantum Mechanical yang menggunakan entanglement
merupakan sesuatu yang “spooky action at a distance” karena Einstein tidak
mempercayai bahwa Quantum particles dapat mempengaruhi partikel lainnya
melebihi kecepatan cahaya. Namun, beberapa tahun kemudian, ilmuwan John Bell
membuktikan bahwa “spooky action at a distance” dapat dibuktikan bahwa
entanglement dapat terjadi pada partikel-partikel yang sangat kecil.
Penggunaan quantum entanglement saat ini diimplementasikan
dalam berbagai bidang salah satunya adalah pengiriman pesan-pesan rahasia yang
sulit untuk di-enkripsi dan pembuatan komputer yang mempunyai performa yang
sangat cepat.
Pengoperasian
Data Qubit
Qubit merupakan kuantum bit , mitra dalam komputasi kuantum
dengan digit biner atau bit dari komputasi klasik. Sama seperti sedikit adalah
unit dasar informasi dalam komputer klasik, qubit adalah unit dasar informasi
dalam komputer kuantum . Dalam komputer kuantum, sejumlah partikel elemental
seperti elektron atau foton dapat digunakan (dalam praktek, keberhasilan juga
telah dicapai dengan ion), baik dengan biaya mereka atau polarisasi bertindak sebagai
representasi dari 0 dan / atau 1. Setiap partikel-partikel ini dikenal sebagai
qubit, sifat dan perilaku partikel-partikel ini (seperti yang diungkapkan dalam
teori kuantum ) membentuk dasar dari komputasi kuantum. Dua aspek yang paling
relevan fisika kuantum adalah prinsip superposisi dan Entanglement
Superposisi,
pikirkan qubit sebagai elektron dalam medan magnet. Spin elektron mungkin baik
sejalan dengan bidang, yang dikenal sebagai spin-up, atau sebaliknya ke
lapangan, yang dikenal sebagai keadaan spin-down. Mengubah spin elektron dari
satu keadaan ke keadaan lain dicapai dengan menggunakan pulsa energi, seperti
dari Laser - katakanlah kita menggunakan 1 unit energi laser. Tapi bagaimana
kalau kita hanya menggunakan setengah unit energi laser dan benar-benar
mengisolasi partikel dari segala pengaruh eksternal? Menurut hukum kuantum,
partikel kemudian memasuki superposisi negara, di mana ia berperilaku
seolah-olah itu di kedua negara secara bersamaan. Setiap qubit dimanfaatkan
bisa mengambil superposisi dari kedua 0 dan 1. Dengan demikian, jumlah
perhitungan bahwa komputer kuantum dapat melakukan adalah 2 ^ n, dimana n
adalah jumlah qubit yang digunakan. Sebuah komputer kuantum terdiri dari 500
qubit akan memiliki potensi untuk melakukan 2 ^ 500 perhitungan dalam satu
langkah. Ini adalah jumlah yang mengagumkan - 2 ^ 500 adalah atom jauh lebih
dari yang ada di alam semesta (ini pemrosesan paralel benar - komputer klasik
saat ini, bahkan disebut prosesor paralel, masih hanya benar-benar melakukan
satu hal pada suatu waktu: hanya ada dua atau lebih dari mereka melakukannya).
Tapi bagaimana partikel-partikel ini akan berinteraksi satu sama lain? Mereka
akan melakukannya melalui belitan kuantum.
Quantum
Gates
Pada saat ini, model sirkuit komputer adalah abstraksi
paling berguna dari proses komputasi dan secara luas digunakan dalam industri
komputer desain dan konstruksi hardware komputasi praktis. Dalam model sirkuit,
ilmuwan komputer menganggap perhitungan apapun setara dengan aksi dari sirkuit
yang dibangun dari beberapa jenis gerbang logika Boolean bekerja pada beberapa
biner (yaitu, bit string) masukan. Setiap gerbang logika mengubah bit masukan
ke dalam satu atau lebih bit keluaran dalam beberapa mode deterministik menurut
definisi dari gerbang. dengan menyusun gerbang dalam grafik sedemikian rupa
sehingga output dari gerbang awal akan menjadi input gerbang kemudian, ilmuwan
komputer dapat membuktikan bahwa setiap perhitungan layak dapat dilakukan.
Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana
cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit
ireversibel sementara untuk membuat penghematan yang besar dalam jumlah
ancillae yang digunakan.
-
Pertama mensimulasikan gerbang di babak pertama tingkat.
-
Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
-
Bersihkan bit ancillae.
-
Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
-
Setelah menghitung output, membersihkan bit ancillae.
-
Bersihkan hasil tingkat d / 2.
Sekarang kita telah melihat gerbang reversibel ireversibel
klasik dan klasik, memiliki konteks yang lebih baik untuk menghargai fungsi
dari gerbang kuantum. Sama seperti setiap perhitungan klasik dapat dipecah
menjadi urutan klasik gerbang logika yang bertindak hanya pada bit klasik pada
satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat dipecah menjadi
urutan gerbang logika kuantum yang bekerja pada hanya beberapa qubit pada suatu
waktu. Perbedaan utama adalah bahwa gerbang logika klasik memanipulasi nilai
bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang memanipulasi nilai
kuantum multi-partite termasuk superposisi dari komputasi dasar yang juga
dilibatkan. Jadi gerbang logika kuantum perhitungannya jauh lebih bervariasi
daripada gerbang logika perhitungan klasik.
Algoritma
Shor
Algoritma Shor, dinamai matematikawan Peter Shor , adalah
algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer
kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor
dirumuskan pada tahun 1994. Inti dari algoritma ini merupakan bagaimana
cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang
besar.
Efisiensi algoritma Shor adalah karena efisiensi kuantum
Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum
dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan
fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk
memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA.
Algoritma Shor terdiri dari dua bagian:
-
Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk
masalah ketertiban -temuan.
-
Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.
Hambatan runtime dari algoritma Shor adalah kuantum eksponensial
modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier
dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan
mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan
saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru
sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan
penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada
urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan
jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak
kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.
Parallel
Computation
· Parallel Concept
Parallel computation adalah salah
satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah
secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam
sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa
komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan
maka akan makin cepat.
Konsep paralel adalah sebuah
kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas secara
simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan satu
ataupun banyak tugas dalam satu waktu.
· Distributed Processing
Pemrosesan terdistribusi
merupakan proses pendistribusian pengolahan paralel dalam pemrosesan paralel
menggunakan beberapa mesin. Jadi, bisa di bilang kemampuan dari suatu
komputer-komputer yang dijalankan secara bersamaan untuk memecahkan suatu
masalah dengan proses yang cepat.
Menurut Gustafson proses
terdistribusi adalah sebuah komputasi paralel berjalan dengan menggunakan dua
atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan
faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin
yang digunakan.
Contoh dari proses terdistribusi
adalah ketika terdapat macam masalah diberikan pada satu master, maka dengan
menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa
bagian secara terdistribusi.
· Architectural Parallel Computer
Menurut
seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi
4 baguan, yaitu
SISD
(Single Instruction, Single Data) adalah satu-satunya yang menggunakan
arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1
processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk
komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel
yang menggunakan beberapa processor.
SIMD(Single
Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang
sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita
ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita
menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau
perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1
mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2
mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk
processor-processor yang lain. Beberapa contoh komputer yang menggunakan model
SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan
Cell Processor (GPU).
MISD(Multiple
Instruction, Single Data) menggunakan banyak processor dengan setiap processor
menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini
merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus
yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada
MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama
mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik
pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer
yang menggunakan model MISD.
MIMD(
Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap
processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun
banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk
model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5,
HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
· Pengantar Thread Programming
Sebuah thread di dalam
pemrograman komputer adalah sebuah informasi terkait tentang penggunaan sebuah
program tunggal yang dapat menangani beberapa pengguna secara bersamaan.Thread
ini memungkinkan program untuk mengetahui bagaimana user masuk ke dalam program
secara bergantian dan user akan masuk kembali menggunakan user yang berbeda. Multiple
thread dapat berjalan bersamaan dengan proses lainnya membagi sumberdaya
menjadi memori, disaat proses lain tidak membaginya.
· Pengantar Massage Passing, Open MP
Message Passing merupakan sebuah
bentuk dari komunikasi yang digunakan di komputasi paralel, OOT (Object
Oriented Programming) atau Pemrograman Berbasis Objek dan komunikasi
interproses.
MPI adalah sebuah standard
pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat
dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat
dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing –
masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer
head node.Untuk merancang aplikasi paralel tentu membutuhkan banyak
pertimbangan - pertimbangandiantaranya adalah latensi dari jaringan dan lama
sebuah tugas dieksekusi oleh prosesor
OpenMP (Open Multi-Processing)
adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi
processing shared memory pemrograman di C, C++ dan Fortran pada berbagai
arsitektur, termasuk UNix dan Microsoft Windows platform. OpenMP Terdiri dari
satu set perintah kompiler, perpustakaan rutinitas, dan variabel lingkungan
yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida
pemrograman paralel dapat dijalankan
pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface
(MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared
memory systems.
· Pengantar Pemograman CUDA GPU
Sebelum saya membahas tentang
CUDA, saya akan membahas GPU terlebih dahulu. GPU dalah sebuah processor khusus
untuk memepercepat dan mengubah memori untuk mempercepat pemrosesan gambar. GPU
ini sendiri biasanya berada di dalam graphic card komputer ataupun laptop
CUDA(Compute Unified Device
Architecture) adalah suatu skema yang dibuat oleh NVIDIA agar NVIDIA selaku GPU
(Graphic Processing Unit) mampu melakukan komputasi tidak hanya untuk
pengolahan grafis namun juga untuk tujuan umum. Jadi dengan adanya CUDA kita
dapat memanfaatkan banyak prosesor dari NVIDIA untuk melakukan proses
perhitungan ataunpun komputasi yang banyak.
Parallel
Computation
· Parallel Concept
Parallel computation adalah salah
satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah
secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam
sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa
komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan
maka akan makin cepat.
Konsep paralel adalah sebuah
kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas secara
simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan satu
ataupun banyak tugas dalam satu waktu.
· Distributed Processing
Pemrosesan terdistribusi
merupakan proses pendistribusian pengolahan paralel dalam pemrosesan paralel
menggunakan beberapa mesin. Jadi, bisa di bilang kemampuan dari suatu
komputer-komputer yang dijalankan secara bersamaan untuk memecahkan suatu
masalah dengan proses yang cepat.
Menurut Gustafson proses
terdistribusi adalah sebuah komputasi paralel berjalan dengan menggunakan dua
atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan
faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin
yang digunakan.
Contoh dari proses terdistribusi
adalah ketika terdapat macam masalah diberikan pada satu master, maka dengan
menggunakan komputer paralel masalah terseut akan terpecah menjadi beberapa
bagian secara terdistribusi.
· Architectural Parallel Computer
Menurut
seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi
4 baguan, yaitu
SISD
(Single Instruction, Single Data) adalah satu-satunya yang menggunakan
arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1
processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk
komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel
yang menggunakan beberapa processor.
SIMD(Single
Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang
sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita
ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita
menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau
perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1
mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2
mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk
processor-processor yang lain. Beberapa contoh komputer yang menggunakan model
SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan
Cell Processor (GPU).
MISD(Multiple
Instruction, Single Data) menggunakan banyak processor dengan setiap processor
menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini
merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus
yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada
MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama
mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik
pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer
yang menggunakan model MISD.
MIMD(
Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap
processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun
banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk
model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5,
HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
· Pengantar Thread Programming
Sebuah thread di dalam
pemrograman komputer adalah sebuah informasi terkait tentang penggunaan sebuah
program tunggal yang dapat menangani beberapa pengguna secara bersamaan.Thread
ini memungkinkan program untuk mengetahui bagaimana user masuk ke dalam program
secara bergantian dan user akan masuk kembali menggunakan user yang berbeda. Multiple
thread dapat berjalan bersamaan dengan proses lainnya membagi sumberdaya
menjadi memori, disaat proses lain tidak membaginya.
· Pengantar Massage Passing, Open MP
Message Passing merupakan sebuah
bentuk dari komunikasi yang digunakan di komputasi paralel, OOT (Object
Oriented Programming) atau Pemrograman Berbasis Objek dan komunikasi
interproses.
MPI adalah sebuah standard
pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat
dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat
dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing –
masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer
head node.Untuk merancang aplikasi paralel tentu membutuhkan banyak
pertimbangan - pertimbangandiantaranya adalah latensi dari jaringan dan lama
sebuah tugas dieksekusi oleh prosesor
OpenMP (Open Multi-Processing)
adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi
processing shared memory pemrograman di C, C++ dan Fortran pada berbagai
arsitektur, termasuk UNix dan Microsoft Windows platform. OpenMP Terdiri dari
satu set perintah kompiler, perpustakaan rutinitas, dan variabel lingkungan
yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida
pemrograman paralel dapat dijalankan
pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface
(MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared
memory systems.
· Pengantar Pemograman CUDA GPU
Sebelum saya membahas tentang
CUDA, saya akan membahas GPU terlebih dahulu. GPU dalah sebuah processor khusus
untuk memepercepat dan mengubah memori untuk mempercepat pemrosesan gambar. GPU
ini sendiri biasanya berada di dalam graphic card komputer ataupun laptop
CUDA(Compute Unified Device
Architecture) adalah suatu skema yang dibuat oleh NVIDIA agar NVIDIA selaku GPU
(Graphic Processing Unit) mampu melakukan komputasi tidak hanya untuk
pengolahan grafis namun juga untuk tujuan umum. Jadi dengan adanya CUDA kita
dapat memanfaatkan banyak prosesor dari NVIDIA untuk melakukan proses
perhitungan ataunpun komputasi yang banyak.
https://id.wikipedia.org/wiki/Komputasi_paralel
https://id.wikipedia.org/wiki/Komputer_kuantum
Post a Comment