Rabu, 22 Mei 2013

Parallel Computation

Semakin canggih komputer, semakin besar pula kapasitas proses yang ditawarkan. Paralel processing menawarkan pemrosesan data dengan menggunakan sistem parallel sehingga memungkinkan processing data yang besar dengan menggunakan beberapa komputer yang memiliki kapasitas yang lebih kecil namun dirancang secara parallel.

A. Parallelism Concept

Komputasi paralel adalah 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) dll.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel !

Salah satu middleware orisinal yang dikembangkan di Indonesia adalah openPC[1] yang digawangi oleh GFTK LIPI dan telah diimplementasikan dengan di LIPI Public Cluster.

Sebenarnya prinsip paralelisme juga sudah diterapkan dalam komputer serial misal dengan pipelining dan superscalar-nya namun demikian tidak memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena memory bottleneck.


B. Distributed Processing

Pemrosesan Paralel adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara bersamaan.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah.


C. Architectural Parallel Computer

Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :

A. SISD (Single Instruction Single Data Stream)
Arus Instruksi Tunggal dan Data Tunggal
B. SIMD (Single Instruction Multiple Data Stream)
Arus Instruksi Tunggal dan Multiple Data
C. MISD (Multiple Instruction Single Data Stream)
Arus Multiple Instruksi dan Data Tunggal
D. MIMD (Multiple Instruction Multiple Data Stream)
Arus Multiple Instruksi dan Multiple Data



1. Organisasi Prosesor SISD
• Prosesor tunggal
• Aliran instruksi tunggal
• Data disimpan dalam memori tunggal
• Uni-processor




2. Single Instruction, Multiple Data Stream – SIMD
• Single machine instruction
• Mengontrol eksekusi secara simultan
• sejumlah elemen-elemen pengolahan
• Berdasarkan Lock-step
• Setiap pengolahan elemen memiliki hubungan dengan memori data
• Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
• Prosesor Vector and array




3. Multiple Instruction, Single Data Stream – MISD
• Rangkaian dari data
• Dikirimkan ke kumpulan prosesor
• Setiap prosesor mengeksekusi urutan instruksi yang berbeda
• Belum pernah diimplementasikan (komesial)




4. Multiple Instruction, Multiple Data Stream- MIMD
• Kumpulan/sejumlah prosesor
• Mengeksekusi secara simultan urutan instruksi yang berbeda
• Kumpulan data yang berbeda
• SMP, Cluster and sistem NUMA




Sumber :

https://id.wikipedia.org/wiki/Komputasi_paralel
http://dpamudji.wordpress.com/2011/04/01/komputasi-paralel/
http://www.gudangmateri.com/2009/12/pemrosesan-paralel.html
http://organisasiarsitekturkomputernaro.blogspot.com/2011/12/parallel-processing.html
http://seto.citravision.com/berita-48-parallel-computation--architectural-parallel-computer.html

Selasa, 21 Mei 2013

Pengantar Quantum Computation

Teknologi komputerisasi semakin hari semakin berkembang. Mulai bermunculan berbagai konsep dan teknologi komputer yang baru dan canggih menggantikan konsep dan teknologi yang lama. Salah satunya adalah Quantum Computation dan Quantum Computer. Oleh karena itu, kali ini saya akan mencoba menjelaskan mengenai Quantum Computation dan Quantum Computer.

A. Apa Itu Quantum Computation ?

Quantum Computation atau komputasi kuantum adalah bidang studi difokuskan pada teknologi komputer berkembang berdasarkan prinsip-prinsip teori kuantum , yang menjelaskan sifat dan perilaku energi dan materi pada kuantum (atom dan subatom) tingkat. Pengembangan komputer kuantum , jika praktis, akan menandai lompatan maju dalam kemampuan komputasi jauh lebih besar daripada yang dari sempoa ke modern superkomputer , dengan keuntungan kinerja di alam miliar kali lipat dan seterusnya. Komputer kuantum, mengikuti hukum fisika kuantum, akan memperoleh kekuatan pengolahan yang besar melalui kemampuan untuk berada di beberapa negara, dan untuk melakukan tugas-tugas menggunakan semua kemungkinan permutasi secara bersamaan. kini pusat penelitian di komputasi kuantum termasuk MIT, IBM, Oxford University, dan Los Alamos National Laboratory.

Sedangkan teknologi komputer yang menggunakan prinsip-prinsip teori kuantum dikenal dengan komputer kuantum. Komputer kuantum adalah alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data.

Riset bidang komputasi kuantum masih terus berkembang. 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. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.


B. Entanglement

Disebut sebagai suatu “aksi seram dari jarak jauh” oleh Albert Einstein, Quantum entanglement adalah fenomena mekanika kuantum dimana kuantum menyatakan bahwa dua atau lebih objek harus dideskripsikan dengan referensi antar objek, meskipun objek-objek tersebut tidaklah berkaitan secara spasial. Hal ini mengarah pada korelasi antara atribut fisik objek yang dapat diamati dari suatu sistem. Contohnya, adalah mungkin untuk menyiapkan 2 partikel dalam satu kondisi kuantum seperti ketika yang satu diteliti adalah "spin up" maka yang satunya adalah "spin down" dan begitu pula seterusnya.

Quantum entanglement terjadi ketika partikel seperti foton, elektron, molekul besar seperti buckyballs, dan bahkan berlian kecil berinteraksi secara fisik dan kemudian terpisahkan; jenis interaksi adalah sedemikian rupa sehingga setiap anggota yang dihasilkan dari pasangan benar dijelaskan oleh kuantum mekanik deskripsi yang sama (keadaan yang sama), yang terbatas dalam hal faktor penting seperti posisi, momentum, perputaran, polarisasi, dll

Secara keseluruhan, superposisi kuantum dan Entanglement menciptakan daya komputasi yang sangat ditingkatkan. Dimana sebuah register 2-bit di komputer biasa dapat menyimpan hanya satu dari empat konfigurasi biner (00, 01, 10, atau 11) pada waktu tertentu, register 2-qubit dalam sebuah komputer kuantum dapat menyimpan semua empat nomor secara bersamaan, karena qubit masing-masing mewakili dua nilai. Jika lebih qubit ditambahkan, kapasitas meningkat diperluas secara eksponensial.


C. Pengoperasian Data Qubit

Dalam komputasi kuantum, sebuah qubit atau bit kuantum adalah unit informasi kuantum-analog kuantum bit klasik.

Qubit adalah sebuah sistem kuantum mekanik dua kondisi seperti polarisasi foton tunggal: dalam hal ini dua kondisi tersebut adalah polarisasi vertikal dan polarisasi horizontal. Dalam sistem klasik, bit harus berada dalam satu kondisi atau yang lain, tapi mekanika kuantum memungkinkan qubit berada dalam superposisi dari kedua negara pada saat yang sama, sebuah properti yang fundamental bagi komputasi kuantum.

Proses komputasi dilakukan pada partikel ukuran nano yang memiliki sifat mekanika quantum, maka satuan unit informasi pada Komputer Quantum disebut quantum bit, atau qubit. Berbeda dengan bit biasa, nilai sebuah qubit bisa 0, 1, atau superposisi dari keduanya. State dimana qubit diukur adalah sebagai vektor atau bilangan kompleks. Sesuai tradisi dengan quantum states lain, digunakan notasi bra-ket untuk merepresentasikannya.

Pure qubit state adalah superposisi liner dari kedua state tersebut. Lebih jelasnya, sebuah pure qubit state dapat direpresentasikan oleh kombinasi linear dari state|0> dan state |1> : Dengan α dan β adalah amplitudo probabilitas yan dapat berupa angka kompleks. State space dari sebuah qubit secara geometri dapat direpresentasikan Bloch sphere.

Bloch sphere adalah ruang 2 dimensi yang merupakan geometri untuk permukaan bola. Dibandingkan bit konvensional yang hanya dapat beradai di salah satu kutub, Qubit dapat berada dimana saja dalam permukaan bola. Untuk penerapan fisiknya, semua sistem 2 level, selama ukurannya cukup kecil untuk hukum mekanika quantum berlaku. Berbagai jenis implementasi fisik telah dikemukakan, contohnya antara lain: polarisasi cahaya, spin elektron, muatan listrik, dll.

Superposisi quantum adalah inti perbedaan antara qubit dengan bit biasa. Dalam keadaan superposisi, sebuah qubit akan bernilai |0> dan |1> pada saat bersamaan. Menurut interpretasi Copenhagen, bila dilakukan pengukuran terhadap qubit, maka hanya akan muncul satu state saja. State lainnya “kolaps” dalam arti hancur dan tidak mungkin diambil kembali.

Pemanfaatan sifat superposisi qubit ini adalah Paralellisme Quantum. Paralelisme Quantum muncul dari kemampuan quantum register untuk menyimpan superposisi dari base state. Maka setiap operasi pada register berjalan pada semua kemungkinan dari superposisi secara simultan. Karena jumlah state yang mungkin adalah 2n, dengn n adalah jumlah qubit pada quantum register, kita dapat melakukan pada komputer quantum satu kali operasi yang membutuh kan waktu eksponensial pada komputer konvensional. Kelemahan dari metode ini adalah, semakin besar base state yang bersuperposisi, semakin kecil kemungkinan hasil pengukuran dari nilai hasil pengukuran tersebut benar. Kelemahan ini membuat pararellisme quantum tidak berguna bila operasi dilakukan pada nilai yang spesifik. Namun kelemahan ini tidak begitu berpengaruh pada fungsi yang memperhitungkan nilai dari semua input, bukan hanya satu.


D. Quantum Gates

Dalam komputasi kuantum dan khususnya model rangkaian perhitungan kuantum, quantum gates (gerbang logika kuantum) adalah dasar kuantum sirkuit operasi pada sejumlah kecil qubit. Mereka adalah blok bangunan sirkuit kuantum, seperti gerbang logika klasik adalah untuk sirkuit digital konvensional.

Tidak seperti banyak gerbang logika klasik, gerbang logika kuantum bersifat reversibel. Namun, komputasi klasik dapat dilakukan dengan menggunakan hanya gerbang reversibel. Misalnya, gerbang Toffoli reversibel dapat melaksanakan semua fungsi Boolean. Gerbang ini memiliki setara kuantum langsung, menunjukkan bahwa sirkuit kuantum dapat melakukan semua operasi yang dilakukan oleh sirkuit klasik.

Gerbang logika kuantum diwakili oleh matriks kesatuan. Gerbang logika kuantum yang paling umum beroperasi pada ukuran satu atau dua qubit, seperti yang umum gerbang logika klasik beroperasi pada satu atau dua bit. Ini berarti bahwa sebagai matriks, gerbang kuantum dapat dijelaskan oleh 2 × 2 atau 4 × 4 matriks kesatuan.


E. Algoritma Shor

Algoritma Shor, dinamai sesuai dengan nama pencetusnya, seorang matematikawan Peter Shor, adalah sebuah algoritma kuantum (algoritma yang berjalan pada sebuah komputer kuantum) untuk faktorisasi bilangan bulat dirumuskan pada tahun 1994. Secara informal memecahkan masalah berikut: Diberikan sebuah integer N, dicari faktor primanya.Untuk faktor integer N, algoritma Shor berjalan dalam waktu polinomial (waktu yang dibutuhkan adalah polinomial dalam log N, yang merupakan ukuran input).

Sumber :
http://radhika.blogdetik.com/2011/05/27/komputasi-kuantum/
http://my.opera.com/nduwun/blog/2011/05/27/komputasi-quantum
https://en.wikipedia.org/wiki/Quantum_entanglement
http://en.wikipedia.org/wiki/Qubit?g_q=Qubit
http://chachados.blogspot.com/2013/05/komputasi-kuantum.html?g_q=pengoperasian%20%20data%20qubit
http://id.wikipedia.org/wiki/Komputer_kuantum
http://en.wikipedia.org/wiki/Quantum_gate?g_q=quantum%20gates
http://en.wikipedia.org/wiki/Shor%27s_algorithm