Senin, 29 Juni 2015

Distribusi Processing

http://4.bp.blogspot.com/-stzKvZmFEOM/VY09ymFCuCI/AAAAAAAAAzY/Zgh3IdAVBWA/s1600/Distributed_Processing.jpg

Definisi umum dari pemrosesan terdistribusi merupakan cara untuk mempercepat pengolahan data atau informasi dengan mendistribusikan pekerjaan atau intruksi ke banyak komputer yang telah dipilih untuk memberi kekuatan pemrosesan yang lebih cepat. Tujuan dari komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya (sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari kapasitas individual komponen-komponennya.
Tujuan lain yang ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut. Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti yang biasa digunakannya. Dalam prosesnya setiap komputer berinteraksi satu sama lain untuk mencapai tujuan bersama.
ARSITEKTUR KOMPUTER PARALEL
Karakteristik umum dari architectural parallel komputer adalah sebagai berikut:
  • Pertama dalam hal pembagian memori pada komputer parallel yang sangat bervariasi, namun pada umumnya memiliki kesamaan kemampuan untuk semua prosesor dalam mengakses semua memori sebagai ruang alamat global.
  • Kedua beberapa prosesor dapat beroperasi secara independen akan tetapi harus didukung oleh berbagai sumber daya memori yang sama.
  • Ketiga yaitu karakteristik yang terletak pada perubahan lokasi memori yang dipengaruhi oleh satu prosesor yang terlihat oleh proses – prosesor lainnya.
  • Keempat, karakteristiknya terlihat pada mesin memori bersama dapat dibagi menjadi dua kelas utama berdasarkan waktu akses memori: UMA dan NUMA.
Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
  • SISD (Single Instruction Single Data Stream)
Single Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor.
  • SIMD (Single Instruction Multiple Data Stream)
Single Instruction – Multiple Data. Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step.
  • MISD (Multiple Instruction Single Data Stream)
Multiple Instructions – Single Data. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami.
  • MIMD (Multiple Instruction Multiple Data Stream)
Multiple Instructions – Multiple Data. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini.
THREAD PROGRAMMING
Secara umum model pemrograman ini adalah jenis pemrograman memori yang digunakan secara bersamaan. Dalam Thread Programming Paralel, sebuah proses tunggal dapat memiliki beberapa jalur eksekusi yang konkuren. Implementasi thread bukanlah hal baru dalam teknik komputasi, Secara historis, perusahaan hardware menerapkan thread versi mereka sendiri. Implementasi tersebut berada secara substansial dari satu sama lain sehingga sulit bagi programmer untuk mengembangkan aplikasi yang thread portabel.
MESSAGING PASSING, OPEN MP
Jenis model ini menunjukkan karakteristik sebagai berikut:
  • Tugas pertukaran data melalui komunikasi dengan mengirim dan menerima pesan.
  • Transfer data biasanya memerlukan kerjasama operasi yang akan dilakukan oleh masing-masing proses.
(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.
PEMROGRAMAN CUDA (GRAPHICAL PROCESSING UNIT)
Sebagaimana telah kita ketahui bahwa Cuda adalah platform komputasi paralel dan model pemrograman yang diciptakan oleh perusahaan perangkat keras dunia yaitu NVIDIA. hal ini memungkinkan peningkatan dramatis dalam kinerja komputasi dengan memanfaatkan kekuatan dari Graphics Processing Unit(GPU).
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 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.
Keuntungan dengan CUDA sebenarnya tidak luput dari teknologi aplikasi yang ada. CUDA akan mempercepat proses aplikasi tertentu, tetapi tidak semua aplikasi yang ada akan lebih cepat walaupun sudah mengunakan fitur CUDA.


REFRENSI :

Kamis, 28 Mei 2015

PARALLEL PROCESSING

1.   Apa yang kalian ketahui tentang parallel processing?
Jawab :
Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.

2.   Jelaskan hubungan parallel dengan processing!
Jawab :
peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.

3.   Apa yang kalian ketahui tentang bioinformatika?
Jawab :
Bioinformatika merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Bioinformatika ialah ilmu yang mempelajari penerapan teknik komputasi untuk mengelola dan menganalisis informasi hayati. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologi, terutama yang terkait dengan penggunaan sekuens DNA dan asam amino. Contoh topik utama bidang ini meliputi pangkalan data untuk mengelola informasi hayati, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan struktur protein atau pun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.

4.   Apa yang kalian ketahui tentang sejarah bioinformatika penerapan utama bioinformatika?
Jawab :
Istilah bioinformatics mulai dikemukakan pada pertengahan era 1980-an untuk mengacu pada penerapan computer 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. Kemajuan teknik biologi molecular dalam mengungkap sekuens biologis dari protein (sejak awal 1950-an) dan asam nukleat(sejak 1960-an) mengawali perkembangan basis data dan teknik analisis sekuens biologis. Basis data sekuens protein mulai dikembangkan pada tahun 1960-an di Amerika Serikat, sementara basis data sekuens DNA dikembangkan pada akhir 1970-an di Amerika Serikat dan Jerman (pada European Molecular Biology Laboratory , Laboratorium Biologi Molekular Eropa).Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970-an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang berhasil diungkapkan pada 1980-an dan 1990-an, menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika. Basis data sekuens biologis dapat berupa basis data primer untuk menyimpan sekuens primer asam nukleat maupun protein, basis data sekunder untuk menyimpan motif sekuens protein, dan basis data struktur untuk menyimpan data struktur protein maupun asam nukleat. Basis data utama untuk asam nukleat adalah GenBank (Amerika Serikat), EMBL (Eropa), dan DDBJ (Jepang). Ketiga basis data tersebut bekerjasama dan bertukar data secara harian untuk menjaga keleluasaan cakupan masing-masing basis data. Sumber utama data sekuens asam nukleat adalah submisi langsung dari periset individual, proyek sekuensing genom, dan pendaftaran paten. Selain berisi sekuens asam nukleat, entri dalam basis data sekuens asam nukleat umumnya mengandung informasi tentang jenis asam nukleat (DNA atau RNA), nama organisme sumber asam nukleat tersebut, dan pustaka yang berkaitan dengan sekuens asam nukleat tersebut.Contoh beberapa basis data penting yang menyimpan sekuens primer adalah PIR (Protein Information Resource, Amerika Serikat), Swiss-Prot (Eropa), dan TrEMBL (Eropa). Ketiga basis data tersebut telah digabungkan dalam UniProt yang didanai terutama oleh Amerika Serikat. Entri dalam UniProt mengandung informasi tentang sekuens protein, nama organisme sumber protein, pustaka yang berkaitan, dan komentar yang umumnya berisi penjelasan mengenai fungsi protein tersebut.BLAST (Basic Local Alignment Search Tool) merupakan perkakas bioinformatika yang berkaitan erat dengan penggunaan basis data sekuens biologis. Penelusuran BLAST pada basis data sekuens memungkinkan ilmuwan untuk mencari sekuens asam nukleat maupun protein yang mirip dengan sekuens tertentu yang dimilikinya. Hal ini berguna untuk menemukan gen sejenis pada beberapa organisme atau untuk memeriksa keabsahan hasil sekuensing maupun untuk memeriksa fungsi gen hasil sekuensing. Algoritma yang mendasari kerja BLAST adalah penyejajaran sekuens.PDB (Protein Data Bank) adalah basis data tunggal yang menyimpan model struktural 3D protein dan asam nukleat hasil penentuan eksperimental dengan kristalografi sinar X, spektroskopi NMR dan mikroskopi elektron. PDB menyimpan data struktur sebagai koordinat 3D yang menggambarkan posisi atom-atom dalam protein maupun asam nukleat.

5.   Bagaimana trend bioinformatika di dunia?
Jawab :
Ledakan data/informasi biologi itu yang mendorong lahirnya Bioinformatika. Karena Bioinformatika adalah bidang yang relatif baru, masih banyak kesalahpahaman mengenai definisinya. Komputer sudah lama digunakan untuk menganalisa data biologi, misalnya terhadap data-data kristalografi sinar X dan NMR (Nuclear Magnetic Resonance) dalam melakukan penghitungan transformasi Fourier, dsb. Bidang ini disebut sebagai Biologi Komputasi. Bioinformatika muncul atas desakan kebutuhan untuk mengumpulkan, menyimpan dan menganalisa data-data biologis dari database DNA, RNA maupun protein tadi. Untuk mewadahinya beberapa jurnal baru bermunculan (misalnya Applied Bioinformatics), atau berubah nama seperti Computer Applications in the Biosciences (CABIOS) menjadi BIOInformatic yang menjadi official journal dari International Society for Computational Biology (ICSB) (nama himpunan tidak ikut berubah). Beberapa topik utama dalam Bioinformatika dijelaskan di bawah ini.

Keberadaan database adalah syarat utama dalam analisa Bioinformatika. Database informasi dasar telah tersedia saat ini. Untuk database DNA yang utama adalah GenBank di AS. Sementara itu bagi protein, databasenya dapat ditemukan di Swiss-Prot (Swiss) untuk sekuen asam aminonya dan di Protein Data Bank (PDB) (AS) untuk struktur 3D-nya. Data yang berada dalam database itu hanya kumpulan/arsip data yang biasanya dikoleksi secara sukarela oleh para peneliti, namun saat ini banyak jurnal atau lembaga pemberi dana penelitian mewajibkan penyimpanan dalam database. Trend yang ada dalam pembuatan database saat ini adalah isinya yang makin spesialis. Misalnya untuk protein struktur, ada SCOP dan CATH yang mengklasifikasikan protein berdasarkan struktur 3D-nya, selain itu ada pula PROSITE, Blocks, dll yang berdasar pada motif struktur sekunder protein.

Tak kalah penting dari data eksperimen tersebut adalah keberadaan database paper yang terletak di Medline. Link terhadap publikasi asli biasanya selalu tercantum dalam data asli sekuen. Perkembangan Pubmed terakhir yang penting adalah tersedianya fungsi mencari paper dengan topik sejenis dan link kepada situs jurnal on-line sehingga dapat membaca keseluruhan isi paper tersebut. Setelah informasi terkumpul dalam database, langkah berikutnya adalah menganalisa data. Pencarian database umumnya berdasar hasil alignment/pensejajaran sekuen, baik sekuen DNA maupun protein. Metode ini digunakan berdasar kenyataan bahwa sekuen DNA/protein bisa berbeda sedikit tetapi memiliki fungsi yang sama. Misalnya protein hemoglobin dari manusia hanya sedikit berbeda dengan yang berasal dari ikan paus. Kegunaan dari pencarian ini adalah ketika mendapatkan suatu sekuen DNA/protein yang belum diketahui fungsinya maka dengan membandingkannya dengan yang ada dalam database bisa diperkirakan fungsi daripadanya. Algoritma untuk pattern recognition seperti Neural Network, Genetic Algorithm dll telah dipakai dengan sukses untuk pencarian database ini.  Salah satu perangkat lunak pencari database yang paling berhasil dan bisa dikatakan menjadi standar sekarang adalah BLAST (Basic Local Alignment Search Tool). Perangkat lunak ini telah diadaptasi untuk melakukan alignment terhadap berbagai sekuen seperti DNA (blastn), protein (blastp), dsb. Baru-baru versi yang fleksibel untuk dapat beradaptasi dengan database yang lebih variatif telah dikembangkan dan disebut Gapped BLAST serta PSI (Position Specific Iterated)-BLAST [15]. Sementara itu perangkat lunak yang digunakan untuk melakukan alignment terhadap sekuen terbatas di antaranya yang lazim digunakan adalah CLUSTAL dan CLUSTAL W.

Data yang memerlukan analisa bioinformatika dan cukup mendapat banyak perhatian saat ini adalah data hasil DNA chip. Menggunakan perangkat ini dapat diketahui kuantitas maupun kualitas transkripsi satu gen sehingga bisa menunjukkan gen-gen apa saja yang aktif terhadap perlakuan tertentu, misalnya timbulnya kanker, dll. mRNA yang diisolasi dari sampel dikembalikan dulu dalam bentuk DNA menggunakan reaksi reverse transcription. Selanjutnya melalui proses hibridisasi, hanya DNA yang komplementer saja yang akan berikatan dengan DNA di atas chip. DNA yang telah diberi label warna berbeda ini akan menunjukkan pattern yang unik. Berbagai algoritma pattern recognition telah digunakan untuk mengenali gen-gen yang aktif dari eksperimen DNA chip ini, salah satunya yang paling ampuh adalah Support Vector Machine (SVM).

Bioinformatika sudah menjadi bisnis besar sekarang. Perusahaan bioteknologi yang menghasilkan data besar seperti perusahaan sekuen genom, senantiasa memerlukan bagian analisa Bioinformatika. Produk Bioinformatika pun sudah dipatenkan baik di AS, Eropa maupun Asia. Berdasar jenisnya produk yang dipatenkan itu bisa dibagi menjadi tiga yaitu perangkat lunak Bioinformatika, termasuk diantaranya adalah perangkat lunak pencarian database dsb dengan contoh misalnya paten no. 6,125,331 di AS berjudul “Structural alignment method making use of a double dynamic programming algorithm”, metode Bioinformatika, ini menggunakan analogi metode bisnis telah dapat dipatenkan di AS seperti pada kasus pematenan Amazon.com, sebagai contoh adalah paten no. 6,125,383 di AS tentang “Research system using multi-platform object oriented program language for providing objects at runtime for creating and manipulating biological or chemical data”, terakhir produk Bioinformatika itu sendiri yaitu informasi biologis hasil analisanya.

6.   Sebutkan basis data sekuent biologis dan penyejaran sekuent!
Jawab :
Basis data utama untuk sekuens asam nukleat saat ini adalah GenBank (Amerika Serikat), EMBL (Eropa), dan DDBJ(Inggris) (DNA Data Bank of Japan, Jepang). Ketiga basis data tersebut bekerja sama dan bertukar data secara harian untuk menjaga keluasan cakupan masing-masing basis data. Sumber utama data sekuens asam nukleat adalah submisi langsung dari periset individual, proyek sekuensing genom, dan pendaftaran paten. Selain berisi sekuens asam nukleat, entri dalam basis data sekuens asam nukleat umumnya mengandung informasi tentang jenis asam nukleat (DNA atau RNA), nama organisme sumber asam nukleat tersebut, dan pustaka yang berkaitan dengan sekuens asam nukleat tersebut.

Sementara itu, contoh beberapa basis data penting yang menyimpan sekuens primer protein adalah PIR (Protein Information Resource, Amerika Serikat), Swiss-Prot (Eropa), dan TrEMBL (Eropa). Ketiga basis data tersebut telah digabungkan dalam UniProt (yang didanai terutama oleh Amerika Serikat). Entri dalam UniProt mengandung informasi tentang sekuens protein, nama organisme sumber protein, pustaka yang berkaitan, dan komentar yang umumnya berisi penjelasan mengenai fungsi protein tersebut.

BLAST (Basic Local Alignment Search Tool) merupakan perkakas bioinformatika yang berkaitan erat dengan penggunaan basis data sekuens biologis. Penelusuran BLAST (BLAST search) pada basis data sekuens memungkinkan ilmuwan untuk mencari sekuens asam nukleat maupun protein yang mirip dengan sekuens tertentu yang dimilikinya. Hal ini berguna misalnya untuk menemukan gen sejenis pada beberapa organisme atau untuk memeriksa keabsahan hasil sekuensing maupun untuk memeriksa fungsi gen hasil sekuensing. Algoritma yang mendasari kerja BLAST adalah penyejajaran sekuens.

PDB (Protein Data Bank, Bank Data Protein) adalah basis data tunggal yang menyimpan model struktural tiga dimensi protein dan asam nukleat hasil penentuan eksperimental (dengan kristalografi sinar-X, spektroskopi NMR dan mikroskopi elektron). PDB menyimpan data struktur sebagai koordinat tiga dimensi yang menggambarkan posisi atom-atom dalam protein ataupun asam nukleat.

Sumber :