Friday, June 28, 2013

Pararell Computation

A. Konsep Komputasi Parallel

Komputasi paralel adalah suatu bentuk komputasi dimana instruksi-instruksi dijalankan secara berkesinambungan. Masalah yang besar dapat dibagi menjadi beberapa masalah yang lebih kecil(submasalah), untuk kemudian diselesaikan secara serempak.

Penggunaan kapasitas data pada komputasi pararel sangat besar. Inti dari komputasi parallel terdiri dari hardware, software, dan aplikasi.

B. Pemrosesan Terdistribusi

Pada komputasi pararel terjadi pemrosesan yang terdistribusi. Maksud dari pemrosesan terdistribusi ini adalah kemampuan computer yang dijalankan untuk memecahkan masalah dengan proses yang cepat dan terdistribusi. Intinya adalah menyatukan kemampuan dari sumber daya  yang terpisah secara fisik, ke dalam suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari kapasitas individual komponen-komponennya.


C. Arsitektur Komputer Paralel

Arsitektur Komputer Paralel terbagi menjadi 4 bagian, diantaranya adalah:
  • SISD (Single Instruction Single Data Stream)
  • SIMD (Single Instruction Multiple Data Stream)
  • MISD (Multiple Instruction Single Data Stream)
  • MIMD (Multiple Instruction Multiple Data Stream)

D. Pengantar Thread Programming

Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.

E. Pengantar Message passing, Open MP

MPI ( Message Passing Interface )  yaitu suatu standard dan message passing interface partabel system yang didesain oleh grup penelitian  untuk mengembangkan fungsi dan macam-macam dari computer parallel.

F. Pengantar Pemrograman CUDA GPU

CUDA (Compute Unified Device Architecture) merupakan platform parallel computing dan model pemrograman yang telah dibuat oleh NVIDIDA dan diimplementasikan oleh GPU(Graphic Processing Unit). CUDA memberikan akses pengembangan untuk kumpulan visual instruction dan ingatan dari parallel computasional elemen CUDA GPU.




sumber:
1, 2, 3

Teori Komputasi

Sebuah teori yang membahas tentang apa dan bagaimana suatu masalah dapat diselesaikan/dipecahkan pada model komputasi, menggunakan algoritma. Teori Komputasi merupakan cabang dari ilmu komputer dan matematika. Studi komputasi dilakukan para ilmuan komputer dengan ketat menggunakan model komputasi mesin Turin.

Teori komputasi diterapkan dalam berbagai bidang, antara lain Fisika, Kimia, Matematika, Ekonomi, Biologi, dan Geografi serta Geologi.

Bidang Fisika
Computational Physics (Fisika) – Mempelajari implementasi algoritma numerik untuk memecahkan permasalahan teori kuantitatif fisika yang sudah ada. Sering dianggap sebagai cabang menengah diantara fisika teoritis dan fisika eksperimental.

Bidang Kimia
Computational Chemistry (Kimia) – Merupakan salah satu cabang kimia yang menggunakan ilmu komputer untuk membantu menyelesaikan masalah kimia. Hal yang dipaparkan dari dari teori kimia digabungkan dengan program komputer yang handal untuk menghitung struktur dan sifat molekul.

Bidang Matematika
Contoh penggunaannya adalah program Mapple, dapat menyelesaikan banyak perhitingan yang ada pada bidang matematika,

Bidang Ekonomi
Computational Economics (Ekonomi) – Mempelajari titik pertemuan antara ekonomi dan komputasi. Area yang tercakup antara lain agent-based computational modeling, computational econometrics dan statistika, komputasi keuangan, pemrograman yang didesain khusus untuk komputasi ekonomi, dan pengembangan alat bantu dalam pendidikan komputasi ekonomi.

Bidang Ilmu Biologi
Merupakan penerapan berupa aplikasi dari teknologi informasi dan ilmu komputer terhadap bidang biologi molekuler.

Bidang Geografi dan Geologi
Dapat mengetahui prakiraan cuaca dan juga mendeteksi gempa yang ada.


sumber:
1

Pengantar Quantum Computation

A. Pendahuluan

Teori komputer kuantum pertama kali dicetuskan oleh fisikawan dari Argonne National Laboratory sekitar 20 tahun lalu. Paul Benioff merupakan orang pertama yang mengaplikasikan teori fisika kuantum pada dunia komputer di tahun 1981. 

Komputer kuantum adalah 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. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.


B. Entanglement

Merupakan fenomena yang dihasilkan dari mekanika kuantum dan dimanfaatkan untuk teknologi komputer kuantum. Rumusannya, terdapat 2 buah atom yang telah mendapatkan gaya tertentu, keduanya bisa masuk pada keadaan entangled. Keadaan ini memungkinkan kedua atom-atom tersebut akan tetap berhubungan walaupun jarak memisahkan keduanya. Ini dibuktikan dengan sebuah analogi yang menggambarkan sepasang manusia yang memiliki telepati yang jika salah satu dicubit maka yang lain akan merasakan sakit juga. Perlakuan terhadapa salah satu atom akan mempengaruhi keadaan atom yang menjadi pasangannya. Sikon ini sungguh cepat dan seakan-akan mengalahkan kecepatan cahaya!

Komunikasi menggunakan komputer kuantum kecepatannya sangat tinggi, sehingga terlihat seakan-akan mengalahkan kecepatan cahaya.


C. Pengoperasian Data Qubit

Komputer kuantum beroperasi dari kedua nilai yang disimpan pada setiap qubit diwaktu yang sama. Selain itu, n Qubits masing-masing superposisi dari 0 dan 1 mengkodekan 2n nilai, dan komputer kuantum dapat menghitung pada seluruh nilai ini sekaligus. Paralelisme yang besar ini fungsi eksponen dari jumlah partikel yang digunakan dalam komputasi disebut paralelisme kuantum. Setiap rangkaian klasik punya rangkaian kuantum yang sesuai, jadi sebuah komputer kuantum dapat melakukan perhitungan dalam semua nilai dalam waktu yang hampir sama dibutuhkan oleh komputer biasa dalam melakukan perhitungan tunggal.


D. Quantum Gates

Quantum Gates merupakan sebuah gerbang kuantum yang dimana memiliki fungsi untuk dapat mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits. Sehingga, Quantum Gates dapat mempercepat banyaknya perhitungan bit pada waktu bersamaan.

Sebuah Quantum Gates atau Quantum Logic Gates adalah dasar kuantum sirkuit operasi pada sejumlah kecil qubit. Mereka adalah bangunan sirkuit kuantum, seperti logic gates klasik untuk sirkuit digital konvensional.

E. Algoritma Shor

Algoritma shor adalah salah satu lanjutan paradigma dasar, tapi algortima ini tampak terisolir dari kebanyakan temuan lain ilmu informasi kuantum.

Para ilmuwan IBM mengontrol sebuah tabung kecil (vial) yang berisikan satu miliar-miliar (10 pangkat 18) dari molekul-molekul ini untuk mengeksekusi algoritma Shor dan mengidentifikasikan secara tepat 3 dan 5 sebagai faktor 15. Meskipun jawaban ini mungkin kelihatan sangat sepele, kontrol yang dibutuhkan untuk mengatur tujuh putaran dalam kalkulasi ini menjadikan komputasi kuantum ini komputasi yang paling rumit yang pernah dijalankan hingga saat ini.



sumber:
1,2,3,4,5,6

Wednesday, April 24, 2013

Pengantar Komputasi Awan




Pendahuluan

Komputasi awan secara sederhana adalah konsep komputasi terdistribusi dimana tugas komputasi bisa diserahkan ke sekumpulan komputer yang terhubung ke jaringan. Semacam aplikasi yang dikembangkan khusus akan mengatur semua node yang terhubung tersebug, antrian tugas akan diprioritaskan untuk diberikan ke komputer yang lebih 'santai'.

Email yang tersedia dalam bentuk web mail merupakan salah satu contoh dari teknologi komputasi awan. Dengan menggunakan layanan email seperti Gmail dan Yahoo Mail, orang tidak perlu lagi menggunakan outlook atau aplikasi desktop lainnya untuk email mereka. Membaca email dengan browser memungkinkan dilakukan di mana saja sepanjang ada koneksi ke internet.

Pengantar Komputasi Grid


Komputasi grid (Grid Computing) adalah teknologi yang sedang berkembang yang memungkinkan pemakaian secara bersama berbagai macam sumber daya yang tersebar dan dikelola oleh organisasi yang berbeda. Sumber daya tersebut meliputi tenaga komputasi, kapasitas penyimpanan data, sensor, jaringan komputer, bandwidth dan lain sebagainya. Pada awalnya, komputasi grid hanya dipakai oleh komunitas akademi dan peneliti, tetapi sekarang teknologi baru ini sudah merambah sampai ke dunia bisnis karena dapat meningkatkan Return on Invesment (ROI). Sejak dari awal perkembangannya sampai saat sekarang ini, komputasi grid telah dipakai untuk memecahkan masalah-masalah komputasi berkinerja tinggi, baik itu di lembaga riset maupun di perusahaan, seperti analisa data pada high energy physics dan nuklir, riset iklim (climate riset) serta analisa dan pencarian data pada masalah penemuan obat (drug discovery problem).

Virtualisasi

Virtualisasi bisa diartikan sebagai pembuatan suatu bentuk atau versi virutal dari sesuatu yang bersifat fisik, misalnya sistem operasi, perangkat storage/penyimpanan data atau sumber daya jaringan.
Virtualisasi bisa diimplementasikan kedalam berbagai bentuk, antara lain (Harry Sufehmi, Pengenalan Virtualisasi, 20090607):
1. Network Virtualization : VLAN, Virtual IP (untclustering), Multilink
2. Memory Virtualization : pooling memory dari node-node di cluster
3. Grid Computing : banyak komputer = satu
4. Application Virtualization : Dosemu, Wine
5. Storage Virtualization : RAID, LVM
6. Platform Virtualization : virtual computer

Distributed Computation dalam Cloud Computing

Dalam memahami komputasi terdistribusi (distributed computing) dapat dilakukan dengan berbagai macam cara. Salah satu defenisi sederhana dari komputasi terdistribusi adalah proses berjalannya sebuah aktifitas komputasi yang dilakukan oleh lebih dari satu komputer yang berbeda. Pemahaman lain tentang komputasi terdistribusi adalah sebuah distribusi sebagian dari sebuah sistem informasi melalui banyak sistem komputer di banyak lokasi (Burd: 2003)

MapReduce dan NoSQL (Not Only SQL)

MapReduce adalah sebuah model pemrograman untuk pemrosesan data yang dapat mengolah data-data terdistribusi yang berukuran besar secara paralel. 

Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.

Salah satu contoh penerapan nyata map-reduce ini dalam suatu produkadalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table. 

Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.

NoSQL merupakan kepanjangan dari Not Only SQL. Sesuai kepanjangannya NoSQL tidak menggunakan sintaks SQL untuk memyimpan data. Sebenarnya NoSQL ini dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozzi. Lalu, pada tahun 2009, Eric Evans memperkenalkan kembali teknologi NoSQL. NoSQL ini jauh berbeda dengan relational database. Penyimpanan data dalam NoSQL tidak memerlukan skema tabel yang tetap seperti relational database.

NoSQL Database

NoSQL hanyalah penyebutan untuk database yang tidak relasional. Jika relational database menggunakan SQL, maka NoSQL menggunakan bermacam-macam cara untuk penyimpanan datanya. NoSQL memiliki empat metode, yaitu:
  • Table-oriented, contoh: Google dengan Big Table, Facebook dengan Cassandra
  • Graph-oriented
  • Document-oriented database, contoh: MongoDB dan CouchDB.
  • Key-value store, contoh: Memcache dan Redis [5].

Sumber: