Quantum Computation dan Paralel Computation
Quantum Computation Dan Parallel Computation
Komputasi
Parallel
Komputasi paralel merupakan salah satu teknik
melakukan komputasi secara bersamaan dengan memanfaatkan
beberapa komputer independen secara bersamaan. Ini umumnya diperlukan
saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data
dalam jumlah besar (di industri keuangan, bioinformatika, dll)
ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui
di kalkulasi numerik untuk menyelesaikan persamaan
matematis di bidang fisika (fisika komputasi), kimia (kimia
komputasi).
Parallelism
and Distributed Concept
disebut sistem terdistribusi. Bahasa pemrograman
yang populer digunakan dalam pemrograman paralela dalah MPI (Message Passing
Interface) dan PVM (Parallel Virtual Machine).Yang perlu diingat adalah komputasi
paralel berbeda dengan multitasking. Pengertian multitaskingadalah
komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan.
Walaupunbeberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa
komputer tunggal tidak bisamelakukan beberapa pekerjaan sekaligus, melainkan
proses penjadwalan yang berlakukan pada sistemoperasi membuat komputer seperti
mengerjakan tugas secara bersamaan. Sedangkan komputasi paralelsudah dijelaskan
sebelumnya, bahwa komputasi paralel menggunakan beberapa processor
ataukomputer. Selain itu komputasi paralel tidak menggunakan arsitektur
Von Neumann.Untuk lebih memperjelas lebih dalam mengenai perbedaan
komputasi tunggal (menggunakan 1processor) dengan komputasi paralel
(menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu
pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan,
yaitu : SIMD,MISD,MIMD,SISD yang merupakan singkatan dari Single Instruction,
Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini
dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh
karenaitu model ini bisa dikatakan sebagai model untuk komputasi tunggal.
Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan
beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah
UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
SIMD Yang
merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan
banyak processor dengan instruksi yang sama, namun setiap processor mengolah
data yang berbeda. Sebagai contoh kitaingin mencari angka 27 pada deretan
angka yang terdiri dari 100 angka, dan kita menggunakan 5processor. 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 yang
merupakan singkatan dari Multiple Instruction, Single Data.
MISD menggunakan
banyak processor dengan setiap processor menggunakan instruksi yang berbeda
namun mengolah data yang sama. Hal inimerupakan kebalikan dari model SIMD.
Untuk contoh, kita bisa menggunakan kasus yang sama padacontoh 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 yangdigunakan untuk teknik pencariannya berbeda
di setiap processor. Sampai saat ini belum ada computer yang menggunakan model
MISD. MIMD yang merupakan singkatan dari Multiple Instruction, Multiple
Data.
MIMD menggunakan
banyakprocessor 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/CompaqAlphaServer, Intel IA32, AMD
Opteron, Cray XT3 dan IBM BG/L.
Singkatnya untuk perbedaan antara komputasi
tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini: Penyelesaian
Sebuah Masalah pada Komputasi Tunggal Penyelesaian Sebuah Masalah pada
Komputasi Paralel dari perbedaan kedua gambar di atas, kita dapat
menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat
waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.Dari
penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan
kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi
paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus
mengolah data dalam jumlah yang besar.
Namun keefektifan akan hilang ketika kita hanya
mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecilatau
sedikit lebih efektif jika kita menggunakan komputasi tunggal.Komputasi paralel
membutuhkan :· algoritma· bahasa pemrograman· compiler Pemrograman paralel
adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi
secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak
(prosesor ganda dengan mesin paralel) CPU.
Tujuan utama dari pemrograman paralel adalah
untuk meningkatkan performa komputasi.* Message Passing Interface (MPI)MPI
adalah sebuah standard pemrograman yang memungkinkan pemrogramuntuk membuat
sebuah aplikasi yang dapat dijalankan secaraparalel.MPI menyediakan
fungsi-fungsi untuk menukarkanantar pesan. Kegunaan MPI yang lain adalah1.
menulis kode paralel secara portable2. mendapatkan performa yang tinggi dalam
pemrograman paralel, dan3. menghadapi permasalahan yang melibatkan hubungan
data irregular atau dinamis yang tidakbegitu cocok dengan model data paralel.*
Message Passing Interface (MPI)MPI adalah sebuah standard pemrograman yang
memungkinkan pemrogramuntuk membuat sebuah aplikasi yang dapat dijalankan
secara paralel.MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan.
Konsep
Paralel
Banyak perkembangan-perkembangan baru dalam
arsitektur komputer yang didasarkan pada konsep pemrosesan paralel. Pemrosesan
paralel dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan
instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan
pelaksanaan kejadian-kejadian (1) dalam interval waktu yang sama, (2) dalam
waktu yang bersamaan atau (3) dalam rentang waktu yang saling tumpang tindih. Sekalipun
didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer
sekuensial tetapakan mengalami keterbatasan dalam hal kecepatan pemrosesannya.
Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani
masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat
tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan
aerodinamika dan lain-lain. Konsep keparalelan itu sendiri dapat ditinjau dari
aspek design mesin paralel, perkembangan Bahasa pemrograman paralel atau dari
aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itusendiri
lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah
numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan
kecepatan komputasi yang sangattinggi.
Arsitektur
Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan
pada beberapa tingkatan, seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan
atau fase-fase suatu pekerjaan. Hal ini menjadi prinsip dasar dari
multiprogramming.
2. Tingkat prosedur: antara prosedur-prosedur dan di
dalam loop. Hal ini harus tercakup sebagai hal yang penting bagi suatu bahasa.
3. Tingkat instruksi: antara fase-fase sebuah siklus
instruksi, yaitu fetch, decode dan eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit : antara bit-bit dalam
sirkuit aritmatika. Salah satu contohnya adalah adder paralel. Telah banyak
usaha untuk mengklasifikasikan perancangan arsitektur komputer paralel.
Namun tidak ada satupun yang mampu memisahkan semua jenis perancangan menjadi
kelompok-kelompok yang berbeda. Skema klasifikasi yang paling
umum digunakan adalah taksonomi Flynn. Kita akan membahas pula dua skema
lainnya yaitu: Shore dan Feng.
Quantum
Computation
PENDAHULUAN
PENDAHULUAN
Komputer kuantum suatu alat hitung yang menggunakan sebuah
fenomena mekanika kuantum,
misalnya superposisi dan keterkaitan, untuk melakukan operasi
data. Dalam komputasi klasik, jumlah data dihitung dengan bit;
dalam komputer kuantum, hal ini 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.
ENTANGLEMENT
Entanglement sendiri adalah keadaan dimana dua atom
yang berbeda berhubungan sedemikian hingga satu atom mewarisi sifat atom
pasangannya. Penerapan jaringan kuantum di masa depan bisa untuk komunikasi
jarak jauh. Selain itu juga pada komputasi tersebar. Tapi penerapan ini
memerlukan penemuan cara pemprosesan node dan penyimpanan data kuantum dalam
Qubits. Hal ini berarti memerlukan juga cara menyambungkan tiap node satu sama
lain termasuk dengan penyimpan Qubits itu sendiri. Gini loh analoginya.
Penyimpan qubits itu perangkat elektronik, terus node-node itu ya perangkat
elektronik kecil di motherboard dan cara pemprosesan node itu ya Operating
systemnya lah, aturan logika programnya. Nah penelitian Mikhail D
Lukin ini menemukan caranya perangkat-perangkat itu disambungkan. Cara penyambungannya
adalah entanglement.
Pengoprasian
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 mensimulasik
an 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.
Sumber :
http://djuneardy.blogspot.com/2015/04/quantum-computing-entanglement.html