Kamis, 02 Mei 2013

Komputasi Paralel

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.
Jadi inti nya, komputasi parallel itu bisa banyak memproses dengan banyak komputer secara bersamaan dan diabagi menjadi beberapa bagian kecil untuk memecahkan masalah
 
B. Pemrosesean Terdistribusi


 Gambar diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar diatas terdapat sebuah masalah, dari masalah tersebut dibagi menjadi beberapa bagian agar sebuah masalah dapat dengan cepat diselesaikan dengan waktu yang cepat dan efisen

C. Arsitektur Komputer Paralel
terbagi menjadi 4 bagian, diantaranya adalah:

1. SISD ( Single Instruction Single Data Stream )
merupakan prosesor tunggal, yang bukan paralel.

2. SIMD ( Single Instruction Multiple Data Stream )
alur instruksi yang sama dijalankan terhadap banyak alur data yangberbeda.

3. MISD ( Multiple Instruction Single Data Stream )

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

4. MIMD ( Multiple Instruction Multiple Data Stream )
 alur instruksinya banyak tapi beroperasi pada data yang sama.

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.
Set task menggunakan memori lokalnya sendiri saat komputasi
Beberapa task dapat ditempatkan di mesin fisik sama
 
Task transfer data lewat pesan
komunikasi

OpenMP yaitu API yang mendukung multiplatform untuk pemrograman multiprocessing shared memory pada C, C++, dan Fortran, di semua arsitektur prosesor dan OS, terdiri dari kumpulan compiler directive, library routines, dan environment variable yang akan membuat run time pada semua keadaan
  

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.


http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/x2021.html

http://en.wikipedia.org/wiki/Parallel_computing
http://adrian-cn.blogspot.com/2009/04/chapter-4-thread-definisi-thread-thread.html
MPI Tutorial: https://computing.llnl.gov/tutorials/mpi/
http://en.wikipedia.org/wiki/CUDA

Senin, 29 April 2013

Pengantar Quantum Computation

PengantarQuantum Computation

a. Pendahuluan

Teknologi komputer merupakan salah  satu teknologi yang paling cepat mengalami perkembangan dan kemajuan. Komputer-komputer yang ada saat ini sudah mencapai kemampuan yang sangat mengagumkan. Tetapi kedahsyatan komputer tercanggih yang ada saat  ini pun masih belum bisa memuaskan keinginan manusia yang bermimpi untuk membuat sebuah  Supercomputer yang benar-benar memiliki kecepatan super. Komputer yang nantinya layak untuk benar-benar disebut sebagai Komputer Super ini adalah Komputer Kuantum. 

Teori tentang komputer kuantum ini 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. 

Sebelum masuk ke Quantum Computation (Komputasi Kuantum), saya akan membahas mengenai Quantum Computer (Komputer Kuantum). Komputer kuantum  adalah alat untuk perhitungan yang menggunakan langsung dari kuantum mekanik fenomena, seperti superposisi dan belitan , untuk melakukan operasi pada Data .

yang membedakan komputer kuantum dari komputer konvensional (digital). Dalam komputer kuantum, selain 0 dan 1 dikenal pula superposisi dari keduanya. Ini berarti keadaannya bisa berupa 0 dan 1, bukan hanya 0  atau 1 seperti di komputer digital biasa. Komputer kuantum tidak menggunakan Bits tetapi QUBITS (Quantum Bits). Karena kemampuannya untuk berada di bermacam keadaan (multiple states), komputer kuantum memiliki  potensi untuk melaksanakan berbagai perhitungan secara simultan sehingga jauh lebih cepat dari komputer digital.

b. Entanglement

Ada satu fenomena ‘aneh’ lain dari mekanika kuantum yang juga dimanfaatkan dalam teknologi komputer kuantum: Entanglement. 

Jika dua atom mendapatkan gaya tertentu (outside force) kedua atom tersebut bisa masuk pada keadaan ‘entangled’. Atom-atom yang saling terhubungkan dalam entanglement ini akan tetap terhubungkan walaupun jaraknya berjauhan. 

Analoginya adalah atom-atom tersebut seperti sepasang manusia yang punya ‘telepati’. Jika yang satu dicubit, maka pasangannya (di mana pun ia berada) akan merasa sakit. Perlakuanterhadap salah satu atom mempengaruhi keadaan atom pasangannya. 

Komunikasi menggunakan komputer kuantum bisa mencapai kecepatan yang begitu luar biasa karena informasi dari satu tempat ke tempat lain dapat ditransfer secara  instant. Begitu cepatnya sehingga terlihat seakan-akan mengalahkan kecepatan cahaya! 


c. Pengoperasian data qubit

Komputer kuantum beroperasi pada kedua nilai yang disimpan pada setiap qubit pada waktu yang sama. Selain itu, n  qubits, masing-masing superposisi dari 0 dan 1, mengkodekan 2n nilai,dan komputer kuantum dapat menghitung padaseluruh nilai ini sekaligus.Paralelisme yang besar ini, fungsi eksponen dari jumlah partikel yang digunakan dalam komputasi, disebut  paralelisme kuantum. Setiap  rangkaian klasik memiliki rangkaian kuantum yang  sesua.Jadi sebuah komputer kuantum dapat melakukan perhitungan pada “semua nilai” dalam waktu hampir sama yang dibutuhkan oleh komputer biasa untuk melakukan perhitungan pada “nilai tunggal”.



d. AlgoritmaShor

Sebagai contoh  Algoritma Shor yang paling sederhana adalah menemukan faktor-faktor untuk  bilangan  15,  di mana membutuhkan sebuah komputer kuantum dengan tujuh qubit.  Para  ahli  kimia mendesain dan menciptakan sebuah molekul yang memiliki tujuh putaran nukleus. Nukleus dari lima atom fluorin dan dua atom karbon yang dapat berinteraksi satu dengan yang lain sebagai qubit, dapat diprogram dengan menggunakan denyut-denyut  frekuensi radio dan dapat dideteksi melalui peralatan resonansi  magnetis nuklir (nuclear magnetic resonance, atau NMR) yang mirip dengan yang banyak digunakan di rumah-rumah sakit dan laboratorium-laboratorium kimia.

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.












http://www.komputasi.lipi.go.id/utama.cgi?cetakartikel&1227938582
http://www.faktailmiah.com/2010/08/06/kemajuan-jaringan-kuantum-dengan-entanglement-foton-pada-kubit-keadaan-padat.html
http://aldilla-aldilla.blogspot.com/2011/11/quantum-entanglement.html
http://prakom.bps.go.id

Kamis, 11 April 2013

PengantarKomputasi Cloud

A. Pendahuluan

Cloud computing adalah komputasi berbasis internet, dimana server yang dibagi bersama menyediakan sumber daya, perangkat lunak, dan informasi untuk komputer dan perangkat lain sesuai permintaan. Cloud computing merupakan evolusi alami dari luas adopsi virtualisasi, arsitektur berorientasi layanan dan komputasi utilitas. 

Cloud computing menggambarkan suplemen baru, konsumsi, dan model pengiriman untuk layanan berbasis IT di Internet, dan biasanya melibatkan over-the internet penyediaan sumber daya secara dinamis scalable dan sering virtualisasi. Penyedia cloud computing memberikan aplikasi bisnis yang umum online yang diakses dari yang lain layanan Web atau perangkat lunak seperti browser Web, sedangkan perangkat lunak dan data disimpan di server.


Kelebihan 
- Tidak dibutuhkan komputer dengan kemampuan canggih untuk menjalankan web berbasis aplikasi  cloud computing.
- Dalam organisasi yang lebih besar, departemen IT juga bisa melihat biaya yang lebih rendah dari penerapan  Cloud Computing
- Cloud computing sangat mengurangi biaya  hardware dan perawatan software untuk organisasi dari semua ukuran.
- Tidak perlu lagi membeli paket perangkat lunak terpisah untuk setiap komputer dalam organisasi.
- Mempunyai kapasitas penyimpanan yang hampir tidak terbatas
- Dengan mudah melakukan kolaborasi  pada dokumen dan proyek di  awan mendukung metode pengaksesan dengan banyak pengguna secara bersamaan.
- Kemudahan Backup & Recovery

Kekurangan 
- Komputasi awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
- Apabila koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk digunakan.
- Fitur yang ditawarkan tidak selengkap aplikasi desktop.
- Data yang disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa mesin.
- Satu Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya sebagai target serangan. 

Contoh cloud computing untuk versi public adalah layanan-layanan milik Google seperti Google Docs dan Google Spreadsheet. Adanya kedua layanan tersebut meniadakan kebutuhan suatu aplikasi office untuk pengolah kata dan aplikasi spreadsheet di internal perusahaan

Contoh cloud computing untuk keperluan non public adalah Amazon EC2 

B.      PengantarKomputasi GRID

Komputasi grid atau grid computing adalah penggunaan sumber daya komputer secara bersama-sama dimana komputer tersebut terpisah secara geografis. Komputasi grid ini biasanya digunakan untuk memecahkan suatu permasalahan berskala besar.


Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar.Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat, sistem menggunakan standard dan protocol yang terbuka, dan sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid


Berdasarkan tulisan dari Ian Foster (Bapak Grid Computing), terdapat 3 hal yang mengidentifikasi bahwa suatu sistem termasuk di dalam komputasi grid, yaitu:

Sistem tersebut berkoordinasi terhadap sumberdaya komputasi yang tidak berada dalam satu kendali terpusat. Misalnya komputer di Jakarta terhubung dengan komputer di Jayapura, Manado, dan Semarang.
Sistem tersebut menggunakan protokol yang standar dan terbuka, tidak terpaut dengan suatu perusahaan atau produk tertentu. Standar tersebut dibutuhkan dibagian autentikasi, otorisasi, pencarian sumberdaya yang tersedia, dan pengaksesan sumberdaya.
Sistem tersebut bersifat non-trivial (tidak biasa-biasa saja) untuk mencapai kualitas layanan yang canggih.


C.Virtualisasi
Banyak yang mengira cloud dan virtualisasi itu barang yang sama, padahal cloud dan virtulisasi adalah 2 hal yang berbeda,

Ide virtualisasi dimunculkan untuk melakukan penghetamatan resource server. Contohnya sebuah perusahaan besar dengan banyak aplikasi yang diperlukan untuk menjalankan proses bisnis perusahaan. Banyak biaya yang dikeluarkan perusahaan untuk berinvestasi pada server masing-masing aplikasi tersebut. Dengan teknologi virtualisasi memungkinkan agar banyak server-server aplikasi tersebut digabung menjadi 1 atau beberapa server fisik yang seolah-olah setiap aplikasi memiliki server fisik sendiri

virtualization bisa membuat simulasi resource dan memungkinkan hardware pada komputer dapat menyajikan beberapa layanan (multiple service) secara sekaligus.

virtualisasi adalah bagian dari sistem Cloud, Cloud bisa dibangun dari server-server yang menerapkan virtualisasi

Virtualization juga dapat menguntungkan, karena pengguna tidak perlu membeli hardware baru untuk mencoba suatu environment tertentu.

Perbedaan kunci antara cloud computing dan virtualization adalah resource yang dibeli atau disewa dari layanan cloud computing dikelola oleh perusahaan penyedia layanan terkait, sementara virtualization sepenuhnya dikelola oleh individual atau perusahaan yang mengaplikasikannya.

d.      Distributed Computation dalam Cloud Computing
Distributed Computing adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut. Distributed computing terkait dengan system perangkat keras dan perangkat lunak yang memiliki lebih dari satu elemen pemrosesan atau storage element.


e.       Map Reduce danNoSQL (Not Only SQL)
Mapreduce adalah sebuah model pemrograman yang secara khusus dalam mengasosiasikan dan mendistribusian data dalam menangani masalah pengaturan data dalam skala besar.

NoSQL merupakan kombinasi dua kata: No dan SQL. Arti dari NoSQL adalah teknologi yang menandingi SQL. Pembuat dan pengadopsi awal dari kata NoSQL mungkin menginginkan untuk berkata No RDBMS atau No Relational tetapi akhirnya disuarakan dengan NoSQl.


f.        NoSQL Database
NoSQL adalah sebuah class dari data storage system yang tidak berelasi. NoSQL tidak memerlukan skema table, sehingga tidak menggunakan konsep relasi. NoSQL database secara native tidak menggunakan SQL seperti yang biasa terdapat pada relational database.

Untuk mengembangkan inovasi pada portofolio teknologi data manajemen, Oracle mengumumkan peluncuran Oracle NoSQL Database 2.0, sangat terukur, low latency, key-value database untuk real-time beban kerja big data. Oracle NoSQL Database 2.0 menambahkan kemampuan guna mendukung storage dan pengembalian untuk objek-objek dengan ukuran besar seperti dokumen dan gambar, sebaik elastisitas dinamis dan automatic rebalancing untuk alokasi storage dan menghitung source dalam merespon kebutuhan proses perubahan produksi data.

http://ashadiramothy.blogspot.com/2012/03/pengertian-cloud-computing.html
http://kopongers.wordpress.com/2012/11/09/cloud-computing-vs-virtualisasi/
http://id.wikipedia.org/wiki/Komputasi_grid
http://rumpitekno.com/2013/oracle-luncurkan-oracle-nosql-database-2-0/

Teori Komputasi dan Implementasi pada bidangnya

Tugas pertama dari pelajaran Pengantar Komputasi Modern, tugas ini dibuat dengan menyesuaikan sap yang menagacu pada 


Komputasi bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma.

Secara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu.  Dalam hal penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu sains.

Menggunakan suatu algoritma dan juga penggunaan komputer dalam suatu pemecahan masalah, berarti  cara penyelesaiannya sudah termasuk modernisasi. Sekarang ini dengan semakin berkembangnya jaman, komputasi telah dilakukan dengan komputer. Hal inilah yang menyebabkan berkembangnya komputasi menjadi komputasi modern.

Komputasi modern bisa dibilang adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern.


Macam-macam Komputasi Modern

Komputasi modern terbagi tiga macam, yaitu komputasi mobile (bergerak), komputasi grid, dan komputasi cloud (awan). Penjelasan lebih lanjut dari jenis-jenis komputasi modern sebagai berikut :

1. Mobile computing
Mobile Computing adalah sebuah paradigma baru dalam kemajuan teknologi yang dapat melakukan komunikasi dengan jaringan  nirkabel sehingga user mampu melakukan perpindahan.

2. Grid computing (akan di bahas lebih lanjut di tugas ke dua)
secara singkat, komputasi grid atau grid computing adalah penggunaan sumber daya komputer secara bersama-sama dimana komputer tersebut terpisah secara geografis. Komputasi grid ini biasanya digunakan untuk memecahkan suatu permasalahan berskala besar.

3. Cloud computing (akan di bahas di tugas ke dua)
Cloud computing adalah kumpulan dari beberapa resources yang terintegrasi menjadi satu dan digunakan melalui web.

Sebenarnya, cloud computing ini didasarkan pada teknologi grid computing yang membuat skalabilitas suatu sistem komputasi menjadi sangat besar dengan cara menggabungkan beberapa sumber daya komputer menjadi satu resource.

Implementasi komputasi di dalam kehidupan sehari-hari : Fisika, Kimia, Matematika, Ekonomi, Geologi, Geografi

di dalam bidang fisika 
Computational Physics (Fisika) – Mempelajari implementasi algoritma numerik untuk memecahkan permasalahan teori kuantitatif fisika yang sudah ada.

di dalam bidang Biologi
Bioinformatics (Biologi) – Merupakan sebuah aplikasi dari teknologi informasi dan ilmu komputer terhadap bidang biologi molekuler.

bidang kimia, 
Computational Chemistry (Kimia) – Merupakan salah satu cabang kimia yang menggunakan ilmu komputer untuk membantu menyelesaikan masalah kimia.

bidang Matematika, 
conoth 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. 
bidang geografi dan geologi, dapat mengetahui prakiraan cuaca dan juga mendeteksi gempa yang ada.


http://azuharu.net/grid-computing/pengertian-grid-computing/
http://lianaindrijaya.blogspot.com/2012/03/pengantar-komputasi-modern-pert1.html
http://vanish73.wordpress.com/2010/02/18/komputasi/