Pages

Monday, May 19, 2014

Parallel Computing

Parallel Computing, atau Komputasi Paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. 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. 


Dalam parallel processing ini juga memiliki berbagai kelemahan dan kelebihan dimana, untuk memiliki banyak prosessor memerlukan biaya yang tidak sedikit, tetapi dengan banyak nya prosessor maka proses komputasinya pun semakin cepat. Ada beberapa bentuk yang berbeda dari komputasi paralel: bit-tingkat, tingkat instruksi, data, dan tugas paralelisme. Paralelisme telah digunakan selama bertahun-tahun, terutama dalam komputasi kinerja tinggi, tetapi kepentingan di dalamnya telah berkembang akhir-akhir ini karena kendala fisik mencegah frekuensi scaling. Sebagai konsumsi daya (dan akibatnya generasi panas) oleh komputer telah menjadi perhatian dalam beberapa tahun terakhir, komputasi paralel telah menjadi paradigma dominan dalam arsitektur komputer, terutama dalam bentuk prosesor multi-core.

Keuntungan menggunakan Komputasi Paralel:

  • Hemat waktu dan / atau uang : Secara teori, melemparkanlebih banyak sumber daya pada tugas akan mempersingkatwaktu untuk penyelesaian, dengan potensi penghematan biaya.Komputer paralel dapat dibangun dari murah, komponenkomoditas.
  • Memecahkan masalah yang lebih besar : Banyak masalahyang begitu besar dan / atau kompleks yang tidak praktis atau tidak mungkin untuk menyelesaikannya pada satu komputer,terutama mengingat memori komputer terbatas.
  • Menyediakan concurrency : Sebuah sumber daya komputasitunggal hanya dapat melakukan satu hal pada suatu waktu.Beberapa sumber daya komputasi dapat melakukan banyak halsecara bersamaan.
  • Penggunaan sumber daya non-lokal : Menggunakan sumber daya komputasi pada wide area network, atau bahkan Internetketika sumber daya lokal menghitung langka.



Arsitektur Komputer Paralel:

  • SISD

Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.


  • SIMD 

Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program yang digunakan sama.


  • MIMD 

Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur 
datanya juga banyak, tapi masing-masing bisa berinteraksi.


  • MISD 

Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.

Komputer Paralel menggunakan CUDA


Komputasi berkembang dari "central processing" pada CPU untuk "co-processing" pada CPU dan GPU. Untuk mengaktifkan ini paradigma komputasi baru, NVIDIA menemukan arsitektur komputasi paralel CUDA yang sekarang pengiriman di GeForce, ION Quadro, dan Tesla GPU, mewakili dasar terinstal signifikan untuk pengembang aplikasi. Di pasar konsumen, hampir setiap aplikasi video yang konsumen utama telah, atau akan segera, dipercepat oleh CUDA, termasuk produk dari Teknologi Elemental, MotionDSP dan LoiLo, CUDA telah antusias diterima di bidang penelitian ilmiah. Misalnya, CUDA sekarang mempercepat AMBER, sebuah program simulasi dinamika molekuler digunakan oleh lebih dari 60.000 peneliti dalam dunia akademis dan perusahaan farmasi di seluruh dunia untuk mempercepat penemuan obat baru.Di pasar keuangan, Numerix dan CompatibL mengumumkan dukungan CUDA untuk aplikasi counterparty risk baru dan mencapai speedup 18X. Numerix digunakan oleh hampir 400 lembaga keuangan. Indikator adopsi CUDA adalah jalan dari Tesla GPU untuk komputasi GPU. Sekarang ada lebih dari 700 kelompok GPU terpasang di seluruh dunia di Fortune 500 perusahaan mulai dari Schlumberger dan Chevron di sektor energi untuk BNP Paribas di bidang perbankan.
Dan dengan peluncuran terbaru dari Microsoft Windows 7 dan Apple Snow Leopard, komputasi GPU akan mainstream. Dalam sistem operasi baru, GPU tidak hanya akan menjadi prosesor grafis, tetapi juga tujuan paralel prosesor umum dapat diakses oleh aplikasi apapun.

Sumber:
https://computing.llnl.gov/tutorials/openMP/
https://id.wikipedia.org/wiki/Komputasi_paralel 
https://en.wikipedia.org/wiki/Thread_%28computing%29
http://www.nvidia.co.uk/object/cuda-parallel-computing-uk.html

Sunday, April 20, 2014

Quantum Computing




 Komputer Quantum adalah sebuah alat hitung yang menggunakan fenomena mekanika kuantum. Contoh dari komputer kuantum ini misalnya adalah superposisi dan keterkaitan, ini digunakan untuk melakukan operasi data. Perbedaan dari komputer kuantum dengan komputer klasik adalah dari segi jumlah datanya. Yaitu pada komputer klasik jumlah datanya dihitung dengan satuan bit. Sedangkan pada komputer kuantum jumlah datanya menggunakan satuan qubit. Maksudnya disini adalah menggunakan sistem kode 'error-correcting', dengan melihat konteks dari qubit yang masih tersisa untuk menguraikan informasi yang kurang benar. Prinsip dasarnya adalah sifat dari kuantum sendiri dapat digunakan untuk mewakili data dan struktur data, oleh karena itu mekanika kuantum dapat melakukan operasi dengan data ini. Untuk mengoperasikannya diperlukan logika yang baru dalam artian harus sesuai dengan prinsip kuantuk itu sendiri.

Penemuan komputer kuantum ini tercipta dari ide-ide para fisikawan. Diantaranya adalah Charles H. bENNET, Paul A. Benioff, Illinois, David Deutsch, dan Richard P. Feynman.

Yang pertama kali mencetuskan idenya adalah Feynman. Ia menjelaskan bahwa sistem kuantum juga dapat melakukan proses perhitungan dan juga bisa dijadikan sebagai simulator dalam percobaan fisika kuantum.

Setelah Feynman mengemukakan idenya, barulah ilmuwan lainnya melakukan riset tentang kuantum itu sendiri. Semuanya berusaha agar mendapatkan logika yang cocok untuk sistem yang akan dibuat tersebut. Setelah dilakukan riset selama beberapa kurun waktu, maka ditemukanlah 2 algoritma yang bisa digunakan dalam sistem kuantum yaitu algoritma shor dan algoritma grover. Algoritma ini masih dalam tahap pengembangan hingga sekarang termasuk komputer kuantumnya sendiri. Walaupun begitu, telah dilakukan eksperimen dimana operasi kuantum dilakukan atas sejumlah kecil qubit. Dan risetnya masih terus berlajnjut demi mendapatkan hasil yang sempurna. Karena ini sangat diperlukan oleh rakyat maupun masalah keamanan nasional seperti kriptoanalisis jika telah mencapai hasil yang sempurna.Kuantum komputer ini sudah dipercaya akan dapat menyelesaikan sejumlah masalah yang besar lebih cepat jika dibandingkan dengan komputer biasa. Karena komputer kuantum ini berbeda dengan komputer klasik atau DNA layaknya yang kebanyakan masyarakat pakai.

Perhatikan video berikut:


Video ini menjelaskan tentang prinsip quantum itu sendiri. Di level molekul atau atom, aturan-aturan fisika seperti kecepatan, vector tidak berlaku lagi. Para ilmuan ingin mengaplikasikan fenomena ini kepada komputer, dan diperbesar skalanya sehingga manfaatnya bisa kita rasakan.

Quantum Computing memiliki:

  • Intrinsic Randomness (pengacakan intrinsik)
  • Uncertainty Principle (aturan ketidakpastian)
  • Entanglement (Keterlibatan)
Perbedaan antara Quantum Computing dan Classical Computing lainnya adalah, Classical Computing hanya mengenal 2 bit yaitu 1 dan 0. Ini berarti suatu keadaan hanya bisa dibilang benar atau salah. Dimana Quantum Computing disebut dengan qubit, yaitu kondisi keadaan bisa dibilang benar dan salah. Ini seperti experimen Kucing Schrodinger. Dalam experimen ini, Schrodinger membuat permisalan sebuah kucing ditempatkan di dalam sebuah box. Ketika box ditutup, kita tidak tahu apakah kucing tersebut hidup atau mati, dan hanya bisa diketahui ketika box tersebut dibuka.
Quantum Computing juga memiliki state bernama Superposition. Superposisi merupakan dasar dari pengacakan. Contoh lain jika kita melempar sebuah koin kemudian menutupinya dengan tangan, kita tidak akan tahu apakah kepala atau ekor yang akan tampak. Namun itu bukanlah sebuah superposisi, itu hanyalah kemungkinan distribusi. Jika kita memiliki penjelasan yang paling mungkin mengenai sistem kuantum bit, misalnya bit awalnya yaitu 1 namun ketika dimasukkan ke dalam komputer kuantum maka hasil keluarannya bisa jadi 0 ataupun 1.

Quantum Computing memiliki potensial yang sangat besar, dan sudah pasti akan menggantikan fungsi classical computing di masa depan. Quantum Computing akan dapat menyelesaikan lebih banyak masalah yang lebih kompleks dibandingkan dengan komputer biasa.


Video: https://www.youtube.com/watch?feature=player_embedded&v=T2DXrs0OpHU

Sunday, March 30, 2014

Cloud Computing pada Bidang Game



Cloud Computing adalah gabungan pemanfaatan teknologi komputer(‘komputasi‘) dan pengembangan berbasis Internet (‘awan’). Awan (cloud) adalah metefora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, awan (cloud) dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu metoda komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service), sehingga pengguna dapat mengaksesnya lewat Internet(“di dalam awan”)  tanpa mengetahui apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya. Menurut sebuah makalah tahun 2008 yang dipublikasiIEEE Internet Computing “Cloud Computing adalah suatu paradigma di mana informasi secara permanen tersimpan di server di internet dan tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor, monitor dan lain-lain.” Itu semua menurut Wikipedia.


Cloud Computing dalam bidang game akan merubah masa depan game itu sendiri. Perhatikan video berikut:


Video ini menjelaskan sebuah layanan "streaming video game" yang bernama OnLive. Disini, user bisa streaming video game layaknya video Youtube. Dengan OnLive, seorang user dapat "menyewa" atau membeli game-game yang mereka inginkan, tanpa perlu menginstall game tersebut ke komputer mereka. Ini dikarenakan semua game yang disajikan oleh OnLive bersifat Cloud, sudah berada di dalam server-server Onlive tersebut. Layaknya streaming video, user hanya perlu memilih game yang mereka inginkan, kemudian mereka bisa memainkannya dimanapun mereka berada. Rumah, kampus, sekolah, atau bahkan kantor. Tentu saja kecepatan internet harus sangat memadai, karena kita sedang memainkan game disini. Misalkan user memainkan sebuah game FPS (First person shooter). Game FPS tentu memerlukan kecepatan yang tinggi, reaksi user untuk menghadapi gencatan senjata lawan harus se-realistis seperti user memainkan game yang diinstall ke komputer sendiri. Teknologi OnLive memungkinkan user untuk menikmati sensasi tersebut. Setiap klik mouse dan ketikan ketyboardakan di-input dengan sangat cepat ke server Cloud OnLive, sehingga user tetap mendapat pengalaman game terbaik.
Satu lagi kelebihan OnLive adalah user hanya perlu bermodalkan sebuah PC dan kecepatan internet. User tidak perlu PC dengan spesifikasi high untuk memainkan game-game dalam OnLive. Karena user hanya "streaming" game tersebut, maka yang diperlukan hanyalah PC biasa dan kecepatan internet yang tinggi. User juga tidak akan kehabisan tempat di harddisk mereka karena mereka tidak menginstall apapun, cukup aplikasi OnLive saja.
Karena semua game yang user mainkan berasal dari server, maka user otomatis akan menyimpan atau save proses permainan ke server OnLive juga. Jadi user tidak perlu takut kehilangan proses permainan mereka.