Friday, 3 July 2015

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

            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.
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.

Sumber : 
http://djuneardy.blogspot.com/2015/04/quantum-computing-entanglement.html