PARALLEL COMPUTATION

PENGERTIAN KOMPUTASI PARALEL
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 parallel.
Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).
Terdapat dua hukum yang berlaku dalam sebuah parallel processing. yaitu:
1.         Hukum Amdahl
Amdahl berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”
2.         Hukum Gustafson
Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, 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.


Gambar diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi menjadi beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.

TUJUAN PEMROGRAMAN PARALEL
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik 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.

PERBEDAAN PARALEL DENGAN MULTITASKING
Paralel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.
Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:
1.         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. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
2.         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).
3.         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.
4.         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.

 Berikut ini adalah gambar perbedaa antara komputasi tunggal dengan parallel komputasi :
a.          komputasi tunggal/serial

b.         komputasi parallel

PERBANDINGAN ANTARA SERIAL KOMPUTASI DAN PARALEL KOMPUTASI
Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini komputer paralel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.
Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File System (NFS), NFS adalah protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC. NFS memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote host seperti mengakses file yang berada di lokal. Protokol yang digunakan protokol mount menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu direktori, protokol NFS melakukan I/O pada remote file system. Protokol mount dan protokol NFS bekerja dengan menggunakan RPC dan mengiri dengan protokol TCP dan UDP. Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan sharing data sehingga setiap node slave dapat mengakses program yang sama pada node master.
Software yang diperlukan untuk Parallel komputasi adalah PGI CDK, dimana aplikasi ini telah dilengkapi dengan Cluster Development Kit dimana software ini telah memiliki feature yang lengkap bila ingin melakukan komputasi dengan parallel prosessing karena software ini telah mensupport MPI untuk melakukan perhitungan komputasi.




Sumber :


 

Quantum Computation

Menurut Feynman
Pada awalnya Feynman dari California Institute of Technology (Caltech). mengemukakan idenya mengenai sistem kuantum yang juga dapat melakukan proses penghitungan. Fenyman juga mengemukakan bahwa sistem ini bisa menjadi simulator bagi percobaan fisika kuantum.
Selanjutnya para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakandalam sistem kuantum yaitu algoritma shor dan algoritma grover.

Menurut Prof. Freddy Permana Zen, M.Sc, D.Sc
Komputer kuantum adalah alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Menurut Prof. Freddy Permana Zen, M.Sc, D.Sc , komputasi kuantum adalah teori komputasi yang dibangun berdasarkan prinsip-prinsip mekanika kuantum. Algoritma kuantum memiliki efisiensi yang jauh lebih baik dibanding algoritma klasik yang dipakai pada komputer saat ini. Sebuah komputer kuantum juga diyakini memiliki kemampuan proses yang jauh lebih baik dibanding komputer klasik. 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.
Komputasi pada dasarnya dapat didefinisikan sebagai pengolahan sistematis dari simbol tertentu (input) menjadi simbol lainnnya (output). Simbol di sini adalah obyek fisis, dan komputasi adalah proses fisis yang dilakukan oleh piranti fisis yang disebut komputer. Jika kita menginterpretasikan setiap keadaan fisis sebagai sebuah simbol, maka pada dasarnya setiap proses fisis dapat dianggap sebagai proses komputasi. Jelaslah bahwa informasi bersifat fisis dan karenanya teori komputasi harus mengacu pada hukum dasar fisika.
Teori informasi klasik sebagaimana dirumuskan oleh Turing, Church, Post, Neumann, dan Godel, yang direalisasikan dalam bentuk komputer digital sekarang ini, awalnya adalah teori matematika abstrak yang sama sekali tidak mengacu pada hukum fisika. Dan gagasan klasik ini tentulah membutuhkan tinjauan ulang dalam sudut pandang hukum fisika, khususnya dalam sudut pandang teori kuantum. Misalnya, dalam fenomena kuantum terdapat proses acak murni, misalnya peluruhan radioaktif, yang tidak terdapat dalam fisika klasik. Selanjutnya, dalam fisika klasik terdapat pasangan besaran yang tidak dapat secara bersamaan memiliki nilai pasti (prinsip ketidakpastian), misalnya jika A dan B adalah pasangan besaran yang memenuhi prinsip ketidakpastian, maka pengukuran A akan mempengaruhi hasil dari pengukuran B. Tindakan memperoleh informasi dari sebuah sistem akan mengganggu keadaan sistem tersebut. Juga keadaan kuantum memenuhi prinsisp superposisi, yaitu bahwa jika sebuah sistem bisa berada dalam keadaan |a> atau |b>, maka sistem itu juga bisa berada dalam kombinasi keduanya.
ScienceDaily.com (19 Oktober 2012) - Dalam sebuah langkah kunci menuju penciptaan sebuah komputer kuantum bekerja, peneliti Princeton telah mengembangkan sebuah metode yang memungkinkan transfer cepat dan dapat diandalkan informasi kuantum seluruh perangkat komputasi.

Sebuah sirkuit menggunakan gelombang mikro untuk membaca keadaan kuantum dari elektron, rute berpotensi scalable untuk mengembangkan sebuah komputer kuantum. (Kredit: Jason Petta / Princeton University)

Jason Petta
Temuan, oleh tim yang dipimpin oleh fisikawan Princeton Jason Petta, akhirnya bisa memungkinkan para insinyur untuk membangun komputer kuantum yang terdiri dari jutaan bit kuantum, atau qubit. Sejauh ini, para peneliti kuantum hanya mampu memanipulasi sejumlah kecil qubit, tidak cukup untuk mesin praktis. Dalam seluruh permainan pada saat ini dalam komputasi kuantum sedang mencoba untuk membangun sebuah sistem yang lebih besar," kata Andrew Houck, asisten profesor teknik listrik yang merupakan bagian dari tim peneliti.

Untuk melakukan transfer, tim Petta yang menggunakan aliran foton microwave untuk menganalisis sepasang elektron terjebak dalam kandang kecil yang disebut kuantum dot. The "spin state" dari elektron - informasi tentang bagaimana mereka berputar - berfungsi sebagai qubit, sebuah unit dasar informasi. Aliran microwave memungkinkan para ilmuwan untuk membaca informasi tersebut. Kami menciptakan sebuah rongga dengan cermin di kedua ujungnya - tetapi mereka tidak mencerminkan cahaya tampak, mereka mencerminkan radiasi gelombang mikro," kata Petta. Kemudian kami mengirim microwave di salah satu ujungnya, dan kami melihat gelombang mikro ketika mereka keluar ujung Gelombang mikro dipengaruhi oleh negara spin dari elektron dalam rongga,. Dan kita dapat membaca perubahan itu.
Dalam arti biasa, jarak yang terlibat sangat kecil, seluruh aparat mengoperasikan lebih sedikit lebih dari satu sentimeter.Tapi pada skala subatomik, mereka yang luas. Hal ini seperti mengkoordinasikan gerakan dari atas berputar di bulan dengan yang lain di permukaan bumi.
"Ini hal yang paling menakjubkan," kata Jake Taylor, seorang fisikawan di Institut Nasional Standar dan Teknologi dan Bersama Quantum Institute di University of Maryland, yang bekerja pada proyek dengan tim Princeton. "Anda memiliki sebuah elektron tunggal hampir sepenuhnya mengubah sifat dari sistem inci panjang listrik."
Selama bertahun-tahun, tim ilmuwan telah mengejar ide untuk menggunakan mekanika kuantum untuk membangun sebuah mesin baru yang akan merevolusi komputasi. Tujuannya bukan membangun komputer yang lebih cepat atau lebih kuat, tetapi untuk membangun satu yang mendekati masalah dengan cara yang sama sekali berbeda.
Standar komputer menyimpan informasi sebagai klasik "bit," yang dapat mengambil nilai 0 atau 1. Bit-bit memungkinkan programmer untuk membuat instruksi yang kompleks yang merupakan dasar untuk daya komputasi modern. Sejak Alan Turing mengambil langkah pertama menuju menciptakan komputer di Princeton pada tahun 1936, insinyur telah menciptakan mesin jauh lebih kuat dan kompleks, namun sistem biner dasar tetap tidak berubah.
Kekuatan dari sebuah komputer kuantum berasal dari aturan aneh mekanika kuantum, yang menggambarkan semesta partikel subatom. Mekanika kuantum mengatakan bahwa sebuah elektron dapat berputar dalam satu arah, mewakili 1, atau di arah lain, 0. Tetapi juga bisa dalam sesuatu yang disebut "superposisi" mewakili semua negara antara 1 dan 0.Jika para ilmuwan dan insinyur dapat membangun sebuah mesin bekerja yang mengambil keuntungan dari hal ini, mereka akan membuka seluruhnya bidang baru komputasi.
"Inti dari sebuah komputer kuantum bukanlah bahwa mereka bisa melakukan apa yang komputer biasa dapat dilakukan tetapi lebih cepat, bukan itu yang mereka," kata Houck."Komputer kuantum akan memungkinkan kita untuk mendekati masalah berbeda Ini akan memungkinkan kita untuk memecahkan masalah yang tidak dapat diselesaikan dengan komputer biasa.."
Matematikawan masih bekerja pada kemungkinan untuk menggunakan sistem kuantum, tetapi mesin dapat memungkinkan mereka untuk menyelesaikan tugas-tugas seperti nomor anjak saat unfactorable, melanggar kode atau memprediksi perilaku molekul.
Salah satu tantangan yang dihadapi para ilmuwan adalah bahwa spin elektron, atau partikel kuantum lainnya, yang sangat halus. Setiap pengaruh luar, apakah seuntai magnet atau sekilas cahaya, mendestabilkan spin elektron 'dan memperkenalkan kesalahan.
Selama bertahun-tahun, para ilmuwan telah mengembangkan teknik untuk mengamati negara spin tanpa mengganggu mereka. (Tahun ini Hadiah Nobel dalam fisika dihormati dua ilmuwan yang pertama kali menunjukkan pengamatan langsung dari partikel kuantum.) Tapi menganalisis sejumlah kecil berputar tidak cukup, jutaan akan diminta untuk membuat prosesor kuantum yang nyata.
Untuk mendekati masalah, tim Petta gabungan teknik dari dua cabang ilmu: dari ilmu material, mereka menggunakan struktur yang disebut kuantum dot untuk menyimpan dan menganalisis spin elektron ', dan dari optik, mereka mengadopsi saluran microwave untuk mentransfer informasi berputar dari dot.
Untuk membuat titik-titik kuantum, tim terisolasi sepasang elektron pada bagian kecil dari bahan yang disebut "semikonduktor nanowire." Pada dasarnya, itu berarti kawat yang sangat tipis sehingga dapat menahan elektron seperti gelembung soda di sedotan. Mereka kemudian menciptakan kecil "kandang" di sepanjang kawat. Kandang yang mengatur sehingga elektron akan menetap menjadi kandang tertentu tergantung pada tingkat energi mereka.
Ini adalah bagaimana tim membaca keadaan spin: spin elektron yang sama akan menolak, sedangkan spin yang berbeda akan menarik. Jadi tim memanipulasi elektron ke tingkat energi tertentu dan kemudian membaca posisi mereka.Jika mereka berada di kandang yang sama, mereka berputar berbeda, jika mereka berada di kandang yang berbeda, berputar adalah sama.
Langkah kedua adalah untuk menempatkan ini quantum dot dalam saluran microwave. Hal ini memungkinkan tim untuk mentransfer informasi tentang keadaan spin pasangan itu - qubit.
Petta mengatakan langkah berikutnya adalah untuk meningkatkan keandalan dari setup untuk pasangan elektron tunggal. Setelah itu, tim berencana untuk menambah titik lebih kuantum untuk menciptakan qubit lebih. Anggota tim optimis.Ada tampaknya tidak ada masalah dapat diatasi pada saat ini, tetapi, seperti dengan sistem apapun, meningkatnya kompleksitas dapat menyebabkan kesulitan tak terduga.
"Metode yang kami gunakan di sini adalah terukur, dan kami ingin menggunakannya dalam sistem yang lebih besar," kata Petta. "Tapi untuk memanfaatkan skala, perlu bekerja sedikit lebih baik Langkah pertama adalah membuat cermin baik bagi rongga microwave.