This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Senin, 29 April 2013

Parallel Computation


       
    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.

Komputer dikatakan sebagai mesin komputasi paralel jika memenuhi beberapa syarat berikut ini: 


-Data yang diproses dipecah menjadi bagian-bagian terpisah yang bekerja secara independen dan terus-menerus.
- Proses pengeksekusian instruksi ganda. Sehingga dalam sekali waktu, bisa dihasilkan 2 atau lebih suatu output data. Untuk lebih detilnya bisa dibaca pada sub bab taksonomi Flynn. Yang dalam hal ini sangat berbeda dengan paradigma perkembangan pengolahan data yang berkisar pelebaran jalur data, bukan penjamakan instruksi
- Dapat menyelesaikan tugas lebih cepat daripada dengan perangkat serial.

Distributed computing
Merupakan sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.


Architectural parallel computer


Michael J. Flynn menciptakan satu diantara sistem klasifikasi untuk komputer dan program paralel, yang dikenal dengan sebutan Taksonomi Flynn. Flynn mengelompokkan komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan banyaknya set data yang digunakan oleh instruksi tersebut.


     1. SISD (Single Instruction stream, Single Data stream)  


      Komputer tunggal yang mempunyai satu unit kontrol, satu unit prosesor dan satu unit     memori Instruksi dilaksanakan secara berurut tetapi boleh juga overlap dalam tahapan eksekusi (overlap) Satu alur instruksi didecode untuk alur data tunggal.



2. SIMD (Single Instruction stream, Multiple Data stream)

Komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada data yang berbeda.

     3. MISD (Multiple Instruction stream, Single Data stream)

      Sampai saat ini struktur ini masih merupakan struktur teoritis dan belum ada komputer dengan model ini.






4. MIMD (Multiple Instruction stream, Multiple Data stream)
Organisasi komputer yang memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama. Pada umumnya multiprosesor dan multikomputer termasuk dalam  kategori ini.

 




      OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk Unix dan Microsoft Windows platform. OpenMP Terdiri dari satu set perintah kompiler,perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.
Sejarah OpenMP dimulai dari diterbitkannya API pertama untuk Fotran 1.0 pada Oktober 1997 oleh OpenMP Architecture Review Board (ARB). Oktober tahun berikutnya OpenMP Architecture Review Board (ARB) merilis standart C / C++. Pada tahun 2000 mengeluarkan versi 2.0 untuk fotran dan poda tahun 2002 dirilis versi 2.0 untuk C / C++. Pada tahun 2005 dirilis versi 2.5 yang merupakan pengabungan fotran, C, dan C++/ pada mei 2008 versi 3.0 yang terdapat didalmnya konsept tasks dan task construct.
OpenMP mengimplementasi multithreading. Bagian kode yang akan dijalankan secara parallel ditandai sesuai dengan Preprocessor directif sehingga akan membuat thread-thread sebelum dijalnkan. Setiap thread memiliki id yang di buat mengunakan fungsi ( omp_get_thread_num() pada C/C++ dan OMP_GET_THREAD_NUM() pada Fortran). Secara default, setiap thread mengeksekusi kode secara parallel dan independent. "Work-sharing constructs" dapat dapat digunakan untuk membagi tugas antar thread sehingga setiap thread menjalankan sesuai bagian alokasi kodenya. Fungsi OpenMP berada pada file header yang berlabel “omp.h” di C / C++

Multicore gpu cuda
        Sebuah GPU (Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.
penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.
 
     CUDA merupakan teknologi anyar dari produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.
 
      CUDA merupakan singkatan dari Compute Unified Device Architecture, didefinisikan sebagai sebuah arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile (VGA notebook).
Singkatnya, CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

sumber :

http://ahmadqusyairi.blogspot.com/2010/03/openmp-open-multi-processing.html
http://dimasdisini.wordpress.com/2011/04/03/multicore-gpu-cuda/

 
 

Quantum Computation

Untuk yang ketiga, saya akan membahas tentang Quantum Computation, yang didalamnya ada :

a. Pendahuluan
b. Entanglement
c. Pengoperasian data qubit
d. Quantum Gates
e. AlgoritmaShor

pertama adalah tentang quantum computing , Secara definisi, komputer quantum adalah komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement dalam proses komputasi data. Komputer quantum dapat jauh lebih cepat dari komputer konvensional pada banyak masalah, salah satunya yaitu masalah yang memiliki sifat berikut:
1. Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali
2. Terdapat n jumlah jawaban yang mungkin
3. Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya
4. Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu.




Yang kedua adalah tentang entanglement, entanglement adalah sebuah keadaan yang ganjil di mana dua partikel tetap terkoneksi secara erat, meski terpisah dengan jarak yang sangat jauh, seperti dua mata dadu yang harus selalu menunjukkan jumlah yang sama ketika diputar. Untuk pertama kalinya, ilmuwan telah menemukan partikel-partikel yang tergabung (entangled) setelah partikel-partikel tersebut diukur (measured) dan bahkan dalam keadaan tidak eksis lagi. 

Yang ketiga adalah penjelasan data qubit.
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.

dan yang terakhir tentang quantum gates dan algoritma shor , Algoritma Shor didasarkan dari sebuah teori bilangan: fungsi F(a) = xamod n adalah feungsi periodik jika x adalah bilangan bulat yang relatif prima dengan n. Dalam Algoritma Shor, n akan menjadi bilangan bulat yang hendak difaktorkan. Menghitung fungsi ini di komputer konvensional untuk jumlah yang eksponensial akan membutuhkan waktu eksponensial pula. Pada masalah ini algoritma quantum shor memanfaatkan pararellisme quantum untuk melakukannya hanya dengan satu langkah. Karena F(A) adalah fungsi periodik, maka fungsi ini memiliki sebuah periode r. Diketahui x0mod n = 1, maka xr mod n =1, begitu juga x2r mod n dan seterusnya.


sumber :

http://novenrique.blogspot.com/2012/05/aneh-penggabungan-kuantum-bisa.html


Cloud Computing

kali ini saya akan membahas tentang :
PengantarKomputasi Cloud
a. Pendahuluan
b. PengantarKomputasi GRID
c. Virtualisasi
d. Distributed Computation dalam Cloud Computing
e. Map Reduce danNoSQL (Not Only SQL)
f. NoSQL Database 


Cloud Computing (Komputasi Awan) adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dengan menggabungkan pemanfaatan teknologi komputer dan disajikan dalam bentuk suatu layanan. Yang dimaksud dengan Saas dan Web 2.0 adalah sebuah software as a service atau perangkat lunak yang berbentuk layanan, digunakan untuk mengembangkan suatu aplikasi yang berbasis web (Internet). Misalnya Facebook, didalam social networking ini memiliki berbagai aplikasi seperti game, acara undangan, tautan dan sebagainya. Dengan SaaS dan Web 2.0, pencipta Facebook menggunakannya untuk aplikasi tersebut dengan syarat harus melalui internet atau system online.
Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.
                                                                                                                          
Tanpa kita sadari sebenarnya kita sudah sering menggunakan aplikasi dengan sistem berbasis cloud computing. Contoh lainnya seperti Hotmail, Yahoo!Mail atau Gmail. Untuk melihat email, kita bisa melakukannya di mana saja, yang penting ada internet dan browser. Software dan data kita tidak tersimpan di komputer yang kita pakai melainkan terletak di cloud server.
Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk Internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada. 
Virtualisasi adalah sebuah teknologi, yang memungkinkan Anda untuk membuat versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi, storage data atau sumber daya jaringan. Proses tersebut dilakukan oleh sebuah software atau firmware bernama Hypervisor. Hypervisor inilah yang menjadi nyawanya virtualisasi, karena dialah layer yang "berpura-pura" menjadi sebuah infrastruktur untuk menjalankan beberapa virtual machine. Dalam prakteknya, dengan membeli dan memiliki satu buah mesin, Anda seolah-olah memiliki banyak server, sehingga Anda bisa mengurangi pengeluaran IT untuk pembelian server baru, komponen, storage, dan software pendukung lainnya.
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.
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.

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. 
sumber:
http://octianaeni.blogspot.com/2011/11/cloud-computing-komputasi-awan.html 
http://my.opera.com/aviciena/blog/grid-computing-komputasi-grid
http://www.locus.co.id/?pg=13
http://godekcadel.blogspot.com/2013/04/pengantarkomputasi-cloud.html

Rabu, 17 April 2013

Teori Komputasi dan Implementasi Pada Ilmu Lainnya

Pengertian Komputasi

 
      Teori komputabilitas adalah memeriksa batasan-batasan berbagai model teoretis komputer, termasuk model yang dikenal paling berdaya. Teori kompleksitas adalah pengkajian traktabilitas oleh komputer; beberapa masalah, meski secara teoretis terselesaikan oleh komputer, tetapi cukup mahal menurut konteks waktu dan ruang, tidak dapat dikerjakan secara praktis, bahkan dengan cepatnya kemajuan perangkat keras komputer.
       Kedua teori tersebut termasuk cabang dari teori komputasi, teori komputasi itu sendiri adalah cabang ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan pada model komputasi, menggunakan algoritma. 


Contoh implementasi dalam bidang ilmu lainnya
 
    Implementasi yang jelas terlihat ada pada ilmu Bioinformatika. Berikut akan dibahas bagaimana bioinformatika itu termasuk dalam implementasi dalam bidang ilmu komputasi modern. 
 
 

Pengertian Bioinformatika
Bioinformatika, sesuai dengan asal katanya yaitu “bio” dan “informatika”, adalah gabungan antara ilmu biologi dan ilmu teknik informasi (TI). Pada umumnya, Bioinformatika didefenisikan sebagai aplikasi dari alat komputasi dan analisa untuk menangkap dan menginterpretasikan data-data biologi. Ilmu ini merupakan ilmu baru yang yang merangkup berbagai disiplin ilmu termasuk ilmu komputer, matematika dan fisika, biologi, dan ilmu kedokteran, dimana kesemuanya saling menunjang dan saling bermanfaat satu sama lainnya.
Istilah bioinformatics mulai dikemukakan pada pertengahan era 1980-an untuk mengacu pada penerapan komputer dalam biologi. Namun demikian, penerapan bidang-bidang dalam bioinformatika (seperti pembuatan basis data dan pengembangan algoritma untuk analisis sekuens biologis) sudah dilakukan sejak tahun 1960-an.
Ilmu bioinformatika lahir atas insiatif para ahli ilmu komputer berdasarkan artificial intelligence. Mereka berpikir bahwa semua gejala yang ada di alam ini bisa diuat secara artificial melalui simulasi dari gejala-gejala tersebut. Untuk mewujudkan hal ini diperlukan data-data yang yang menjadi kunci penentu tindak-tanduk gejala alam tersebut, yaitu gen yang meliputi DNA atau RNA. Bioinformatika ini penting untuk manajemen data-data dari dunia biologi dan kedokteran modern. Perangkat utama Bioinformatika adalah program software dan didukung oleh kesediaan internet.
Perkembangan teknologi DNA rekombinan memainkan peranan penting dalam lahirnya bioinformatika. Teknologi DNA rekombinan memunculkan suatu pengetahuan baru dalam rekayasa genetika organisme yang dikenala bioteknologi. Perkembangan bioteknologi dari bioteknologi tradisional ke bioteknologi modren salah satunya ditandainya dengan kemampuan manusia dalam melakukan analisis DNA organisme, sekuensing DNA dan manipulasi DNA.
Sekuensing DNA satu organisme, misalnya suatu virus memiliki kurang lebih 5.000 nukleotida atau molekul DNA atau sekitar 11 gen, yang telah berhasil dibaca secara menyeluruh pada tahun 1977. Kemudia Sekuen seluruh DNA manusia terdiri dari 3 milyar nukleotida yang menyusun 100.000 gen dapat dipetakan dalam waktu 3 tahun, walaupun semua ini belum terlalu lengkap. Saat ini terdapat milyaran data nukleotida yang tersimpan dalam database DNA, GenBank di AS yang didirikan tahun 1982. Bioinformatika (bahasa Inggris: bioinformatics) adalah ilmu yang mempelajari penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologis, terutama dengan menggunakan sekuens DNA dan asam amino serta informasi yang berkaitan dengannya. Contoh topik utama bidang ini meliputi basis data untuk mengelola informasi biologis, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan bentuk struktur protein maupun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.
Membicarakan bioinformatika, tak dapat lepas dari proses lahirnya bidang tersebut. Sebagaimana diketahui, bioteknologi dan teknologi informasi merupakan dua di antara berbagai teknologi penting yang mengalami perkembangan signifikan dalam beberapa tahun terakhir ini. Bioteknologi berakar dari bidang biologi, sedangkan perkembangan teknologi informasi tak dapat dilepaskan dari matematika. Umumnya biologi dan matematika dianggap adalah database utama dalam biologi molekuler, yang dikelola oleh NCBI (National Center for Biotechnology Information) di AS. 
 
 

Cabang ilmu Bioinformatika
Bioinformatika merupakan suatu bidang interdisipliner. Banyak cabang-cabang disiplin ilmu yang terkait dengan Bioinformatika sehingga banyak pilihan bagi yang ingin mendalami Bioinformatika. Beberapa bidang yang terkait dengan Bioinformatika antara lain:
1.    Biophysics
Biophysics adalah sebuah bidang interdisipliner yang mengaplikasikan teknik-teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society).
2.    Computational Biology
Computational biology merupakan bagian dari Bioinformatika yang paling dekat dengan bidang Biologi umum klasik. Fokus dari computational biology adalah gerak evolusi, populasi, dan biologi teoritis daripada biomedis dalam molekul dan sel.
3.    Medical Informatics
Medical informatics adalah sebuah disiplin ilmu yang baru yang didefinisikan sebagai pembelajaran, penemuan dan implementasi dari struktur dan algoritma untuk meningkatkan komunikasi, pengertian dan manajemen informasi medis.
4.    Cheminformatics
Cheminformatics adalah kombinasi dari sintesis kimia, penyaringan biologis dan pendekatan data-mining yang digunakan untuk penemuan dan pengembangan obat (Cambridge Healthech Institute’s Sixth Annual Cheminformatics conference).
5.    Genomics
Genomics adalah bidang ilmu yang ada sebelum selesainya sekuen genom, kecuali dalam bentuk yang paling kasar. Genomics adalah setiap usaha untuk menganalisa atau membandingkan seluruh komplemen genetik dari satu spesies atau lebih.
6.    Mathematical Biology
Mathematical biology menangani masalah-masalah biologi, namun metode yang digunakan untuk menangani masalah tersebut tidak perlu secara numerik dan tidak perlu diimplementasikan dalam software maupun hardware.
7.    Proteomics
Proteomics berkaitan dengan studi kuantitatif dan kualitatif dari ekspresi gen di level dari protein-protein fungsional itu sendiri. Yaitu: “sebuah antarmuka antara biokimia protein dengan biologi molekul”.
8.    Pharmacogenomics
Pharmacogenomics adalah aplikasi dari pendekatan genomik dan teknologi pada identifikasi dari target-target obat.
9.    Pharmacogenetics
Pharmacogenetics adalah bagian dari pharmacogenomics yang menggunakan metode genomik atau Bioinformatika untuk mengidentifikasi hubungan-hubungan genomik.










sumber :

http://ebyfebryy.blogspot.com/2011/03/tugas-softskill-artikel-tentang.html
http://syaharuddinalmusthafa.blogspot.com/2012/01/matematika-diskret.html
http://id.wikipedia.org/wiki/Teori_komputasi