Rabu, 15 Juni 2016

BIOINFORMATIKA


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.

Perkembangan Bioinformatika
Studi Bioinformatika mulai tumbuh sebagai akibat dari perkembangan berbagai metode sekuens baru yang menghasilka data yang sangat banyak. Hal tersebut, secara kebetulan, didukung pula oleh teknologi penyimpanan, manajemen, dan pertukaran data melalui komputer. Inovasi dalam pemetaan dan sekuensing memiliki peran penting dalam proses pengambilan data biologis. Penggunaan Yeast Artificial Chromosome (YAC), sangat membantu dalam konstruksi peta fisik genom kompleks secara lengkap (Touchmann & Green, 1998). Untuk mengklon fragmen-fragmen DNA besar (sekitar 150.000 pasangan basa) digunakan bacterial Artificial Chromosome (BAC).
Kemungkinan, teknologi yang paling banyak kontribusinya adalah teknologi PCR. Walaupun tergolong tua (PCR ditemukan tahun 1985), meode ini sangat efektif, dan telah mengalami penyempurnaan selama bertahun-tahun.
Perkembangan teknologi sekuensing dimulai dan semi-automatic sequencer yang pertama pada tahun 1987, dilanjutkan dengan Taq Cycle sequencing pada tahun 1990. Pelabelan Flourescen fragmen DNA dengan Sanger dideoxy Chain Termination Method, merupakan dasar bagi proyek sekuensing skala besar (Venter et. al., 199).
Seluruh perkembangan tersebut sia-sia saja tanpa obyek yang diteliti, yang memiliki nilai komersil tinggi dan data yang berlimpah. Gampang ditebak, pasti Manusia melalui Human Genome Project.
Selain perkembangan dalam bidang Genomik, Bioinformatika sangat dipengaruhi oleh perkembangan di bidang teknologi informasi dan komputer. Pada fase awal (sekitar tahun 80-an) perkembangan yang paling signifikan adalah kapasitas penyimpanan data. Dari hanya baeberapa puluh byte (1980), hingga mencapai Terabyte (1 terabyte=1 trilyun byte),
Setelah pembuatan database, selanjutnya dimulai perkembangan pemuatan perangkat lunak untuk mengolah data. Awalnya, metode yang digunakan hanya pencariaan kata kunci, dan kalimat pendek. perkembangan selanjutnya berupa perangkat lunak dengan algoritma yang lebih kompleks, seperti penyandian nukleotida, menjadi asam-asam amino, kemudian membuat struktur proteinnya. Saat ini, perangkat lunak yang tersedia meliputi pembacaan sekuens nukleotida dari gel elektroforesis, prediksi kode protein, identifikasi primer, perbandingan sekuens, analisis kekerabatan, pengenalan pola dan prediksi struktur. Dengan perkembangan seperti diatas, ternyata masih belum cukup. Kurangnya pemahaman terhadap sistem biologis dan organisasi molekular membua analisis sekuens masih mengalami kesulitan. Perbandingan sekuens antar spesies masih sulit akibat variabilitas DNA.
Usaha yang dilakukan saat ini, baru mencoba mempelajari eori-teori tersebut melalui proses inferensi, penyesuaian model, dan belajar dari contoh yang tersedia (Baldi & Brunac, 1998). Perkembangan perangkat keras komputer juga berperan sangat penting. Kecepatan prosesor, kapasitas RAM, dan kartu grafik merupakan salah satu pendorong majunya bioinformatika. Terakhir perkembangan bioinformatika sangat dipengaruhi oleh pertumbuhan jaringan Internet. Mulai dari e-mail, FTP, Telnet (1980-an), Gopher, WAIS, hingga ditemukannya World Wide Web oleh Tim Berners-Lee pada tahun 1990, mendukung kemudahan transfer data yang cepat dan mudah. Saat ini, telah tersedia sekitar 400 database biologis yang dapat diakses melalui internet.

Beberapa aplikasi bioinformatika
1.Transformasi sekuen menjadi informasi genetik.
Intinya adalah menjual data, dalam bentuk gen komplit, atau fragmen, yang dapat digunakan oleh pihak lain untuk mencari potensi terhadap gen tersebut.
2.Pasien sebagai komoditas
Pasien dengan kecenderungan terhadap penyakit tertentu dapat diketahui, sehingga mudah sekali bagi perusahaan oba untuk menawarkan produknya.

3.Mencari potensi gen
Potensi dari sebuah gen sangat beragam, bergantung pada ekspresi gen tersebut. Aplikasi lebih lanjut dapat berupa transgenik, terapi genetik, atau berbagai rekayasa dan pemanfaatan geneik lainnya. Permasalahan dan tantangan yang dihadapi



Bidang-bidang yang terkait dengan BioInformatika :
-    Biophysics
Biologi molekul merupakan pengembangan yang lahir dari biophysics. Biophysics adalah sebuah bidang interdisipliner yang mengaplikasikan teknik- teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society).
-    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). Ruang lingkup akademis dari cheminformatics ini sangat luas. Contoh bidang minatnya antara lain: Synthesis Planning, Reaction and Structure Retrieval, 3-D Structure Retrieval, Modelling, Computational Chemistry, Visualisation Tools and Utilities.
-    Computational Biology
Computational biology merupakan bagian dari Bioinformatika (dalam arti yang paling luas) 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.
-    Genomics
Genomics adalah bidang ilmu yang menganalisa atau membandingkan seluruh komplemen genetik dari satu spesies atau lebih.
-    Mathematical Biology
Mathematical biology lebih mudah dibedakan dengan Bioinformatika daripada computational biology dengan Bioinformatika. Mathematical biology juga menangani masalah-masalah biologi, namun metode yang digunakan untuk menangani masalah tersebut tidak perlu secara numerik dan tidak perlu diimplementasikan dalam software maupun hardware.
-    Pharmacogenomics
Pharmacogenomics adalah aplikasi dari pendekatan genomik dan teknologi pada identifikasi dari target-target obat. Contohnya meliputi menjaring semua genom untuk penerima yang potensial dengan menggunakan cara Bioinformatika, atau dengan menyelidiki bentuk pola dari ekspresi gen di dalam baik patogen maupun induk selama terjadinya infeksi, atau maupun dengan memeriksa karakteristik pola-pola ekspresi yang ditemukan dalam tumor atau contoh dari pasien untuk kepentingan diagnosa (kemungkinan untuk mengejar target potensial terapi kanker).

-    Proteomics
Istilah proteomics pertama kali digunakan untuk menggambarkan himpunan dari protein-protein yang tersusun (encoded) oleh genom. Ilmu yang mempelajari proteome, yang disebut proteomics, pada saat ini tidak hanya memperhatikan semua protein di dalam sel yang diberikan, tetapi juga himpunan dari semua bentuk isoform dan modifikasi dari semua protein, interaksi diantaranya, deskripsi struktural dari proteinprotein dan kompleks-kompleks orde tingkat tinggi dari protein, dan mengenai masalah tersebut hampir semua pasca genom.



Sumber :



Minggu, 05 Juni 2016

KOMPUTASI DAN PARALEL PROCESSING


Sebelum membahas Komputasi Paralel itu sendiri, yang terdiri dari dua kata yaitu Komputasi dan Paralel. Komputasi bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma, dan Paralel adalah suatu yang berjalan secara bersamaan. Bisa disimpulkan Komputasi Paralel adalah teknik untuk melakukan pemecahan masalah menggunakan suatu algoritma secara bersamaan dengan memanfaatkan komputer yang bediri sendiri secara bersamaan.

Hubungan antara Komputasi Modern dengan Parallel Processing
Komputasi Paralel merupakan teknik untuk melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer yang independen secara bersamaan. Biasanya digunakan untuk kapasitas yang pengolahan data yang sangat besar (lingkungan industri, bioinformatika dll) atau karena tuntutan komputasi yang banyak. Pada kasus yang kedua biasanya ditemukannya kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll. Untuk melakukan berbagai jenis komputasi paralel diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang nantinya dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan suatu masalah. Untuk itu maka digunakannya perangkat lunak pendukung yang biasa disebut middleware yang berperan untuk mengatur distribusi antar titik dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Salah satu middleware yang asli dikembangkan di Indonesia adalah OpenPC yang dipelopori oleh GFTK LIPI dan diimplementasikan di LIPI Public Center.
Komputasi paralel berbeda dengan multitasking. Multitasking itu sendiri adalah komputer dengan processor tunggal yang dapat mengeksekusi beberapa tugas secara bersamaan. Sedangkan komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann. Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui 4 model komputasi yang digunakan, yaitu:
  • SISD
Merupakan singkatan dari Single Instruction, Single Data yaitu satu-satunya yang menggunakan arsitektur Von Neumann, karena pada model ini hanya menggunakan 1 processor saja. Oleh karena itu model ini dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
  • SIMD
Merupakan singkatan dari Single Instruction, Multiple Data. Model ini menggunakan banyak processor dengan instruksi yang sama, namun dengan data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
  • MISD
Merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Sebagai contoh, dengan menggunakan kasus yang sama pada contoh model SIMD namun cara untuk menyelesaikannya yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
  • MIMD
Pada Multiple Instruction, Multiple Data biasanya menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Untuk ilustrasi antara komputasi tunggal dengan komputasi paralel, bisa dilihat pada gambar berikut:

Dari gambar di atas, dapat kita simpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.


Sumber :
http://philiphkristison.blogspot.co.id/2016/06/komputasi-dan-parallel-processing.html
https://aswendy.wordpress.com/2016/05/16/artikel-komputasi-dan-paralel-processing/ 

PARALLEL PROCESSING

Komputasi Paralel

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. Komputasi paralel telah digunakan untuk melakukan komputasi yang mensyaratkan unjuk kerja yang tinggi(high-performance computing). Teknik komputasi ini semakin berkembang dewasa ini, hal ini disebabkan oleh batasan fisik di dalam penskalaan frekuensi(frequency scaling1). Komputasi paralel telah menjadi paradigma yang mendominan di dalam arsitektur komputer, yaitu misalnya prosesor multicore.
Program komputer paralel lebih susah untuk dibangun dibandingkan dengan program komputer serial, hal ini disebabkan keserempakan menimbulkan masalah yang potensial di dalam membagi pekerjaan menjadi subpekerjaan dan menggabungkan kembali subpekerjaan tersebut menjadi hasil oleh perangkat lunak, diantaranya kondisi berebut(race condition). Komunikasi dan sinkronisasi diantara unit pemroses(processing unit) menjadi satu diantara tantangan terbesar untuk menghasilkan program paralel dengan performa yang baik.
Sejarah Singkat
Pada tahun 1958, Peneliti IBM, John Cocke dan Daniel Slotnick membahas tentang pemanfaatan paralelisme di dalam komputasi numerik untuk pertama kalinya. Burroughs Corporation memperkenalkan D825 pada tahun 1962, sebuah komputer dengan empat buah prosesor yang mengakses 16 modul memori dengan bantuan saklar bar-silang(crossbar switch).

Latar Belakang

Komputasi paralel memanfaatkan beberapa elemen pemroses secara berkesinambungan untuk menyelesaikan permasalahan, dengan cara memecah masalah menjadi bagian-bagian independen, kemudian masing-masing bagian tersebut diselesaikan oleh masing-masing elemen pemroses sesuai dengan algoritma secara serempak. Elemen pemroses dapat terdiri dari unit pemroses yang heterogen, dan dapat pula terdiri dari unit pemroses yang homogen. Elemen pemroses dapat berupa komputer tunggal dengan banyak prosesor, beberapa komputer yang terhubung dalam suatu jaringan, perangkat keras yang dikhususkan untuk melakukan komputasi paralel, ataupun kombinasi dari perangkat-perangkat yang telah disebutkan.
Penskalaan frekuensi menjadi alasan utama dalam peningkatan performa komputer sejak pertengahan 1980an sampai dengan 2004. Waktu eksekusi(runtime) dari sebuah program adalah banyaknya instruksi dikali dengan waktu rata-rata sebuah instruksi. Dengan menganggap faktor lain adalah konstan, meningkatkan detak frekuensi(clock frequency) akan menurunkan waktu rata-rata yang diperlukan untuk menjalankan sebuah instruksi, yang kemudian akan mengurangi waktu eksekusi.
Konsumsi daya sebuah chip dirumuskan dengan persamaan:
P = C x V2 x F

Dimana P adalah daya, C adalah kapasitansi, V adalah tegangan, dan F adalah frekuensi prosesor. Apabila frekuensi ditingkatkan, maka akan terjadi peningkatan daya yang dikonsumsi oleh sebuah prosesor.
Hukum Amdahl


Secara teoritis, peningkatan kecepatan akibat paralelisasi adalah linear, yaitu apabila elemen pemroses digandakan, maka waktu ekseskusi akan menjadi setengahnya. Tetapi, sangat sedikit algoritma paralel yang dapat mencapai peningkatan kecepatan yang optimal.
Menurut Hukum Amdahl, bagian kecil dari sebuah program yang tidak dapat lagi diparalelkan, akan membatasi peningkatan kecepatan yang dapat dicapai dari paralelisasi secara keseluruhan. Semua masalah mengandung bagian yang dapat diparalelkan dan bagian yang tidak dapat diparalelkan juga. Hubungan antara kedua bagian ini dinyatakan dalam:

S = 1 / (1-P)
Dimana S adalah besarnya peningkatan kecepatan dari sebuah program, P adalah besarnya bagian yang dapat diparalelkan.
Tidak semua hasil dari paralelisasi dapat meningkatkan kecepatan. Secara umum, ketika sebuah pekerjaan dibagi menjadi lebih banyak subpekerjaan, subpekerjaan tersebut menghabiskan waktu lebih banyak, yaitu untuk berkomunikasi diantara subpekerjaan. Hal ini tidak akan membuat waktu eksekusi menjadi lebih singkat, melainkan sebaliknya, hal inilah yang disebut sebagai perlambatan paralel(parallel slowdown).

Taksonomi Flynn

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.
Instruksi Tunggal
(single instruction)
Instruksi Majemuk
(multiple instruction)
Data Tunggal
(single data)
SISD
(Single Instruction Single Data)
MISD
(Multiple Instruction Single Data)
Data Majemuk
(multiple data)
SIMD
(Single Instruction Multiple Data)
MIMD
(Multiple Instruction Multiple Data)

Jenis-Jenis Komputer Paralel

Berdasarkan tingkatan perangkat keras yang mendukung paralelisme, secara umum komputer-komputer paralel dapat diklasifikasikan:

Multicore processing

Merupakan prosesor yang memiliki beberapa unit pengeksekusi. Sebuah prosesor multicore dapat melakukan beberapa instruksi per siklus dari beberapa aliran instruksi.
Symmetric multiprocessing
Merupakan sebuah sistem komputer dengan beberapa prosesor yang identik, dapat menggunakan struktur berbagi memori atau memori tersendiri yang saling terhubung melalui bus.

Distributed computing

Merupakan sebuah sistem komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan dihubungkan oleh jaringan.
Cluster computing
Merupakan sekumpulan komputer yang bekerja sama,dihubungkan oleh jaringan, sehingga dapat dipandang sebagai sebuah kesatuan, cluster komputer ini dikoordinasi oleh sebuah komputer induk yang bertugas untuk mendistribusikan pekerjaan kepada masing-masing komputer lainnya.

Massive parallel processing

Merupakan sebuah komputer tunggal dengan banyak prosesor yang terhubung dalam sebuah jaringan. Di dalam MPP, tiap CPU mempunyai memory tersendiri, sistem operasi dan aplikasi yang sama. Tiap subsistem berkomunikasi satu dengan yang lainnya melalui interkoneksi berkecepatan tinggi.

Grid computing

Merupakan bentuk pemrosesan paralel yang paling terdistribusi. Grid computing memanfaatkan Internet sebagai saluran komunikasi antar komputer untuk menyelesaikan suatu permasalahan.

Specialized parallel computer

Komputer paralel yang dikhususkan untuk menyelesaikan tugas khusus.
Model komputasi Paralel

1. Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.

2. Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:
SISD (Single Instruction Single Datapath) merupakan 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.

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.
Terdapat dua hukum yang berlaku dalam sebuah parallel processing. yaitu:

Hukum Amdahl

Amdahl berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”

Hukum Gustafson
Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.

Pengertian Komputasi dengan Parallel Processing Lengkap

Gambar diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi menjadi beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.

Tujuan Komputasi Paralel

Tujuan dari komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah kecil, membuat kinerja menjadi cepat.

Formula komputasi paralel yang diajukan pada hukum Amdahl

Dimana a adalah banyaknya paralel yang terjadi. Secara teori, artinya proses penyelesaian masalah menjadi lebih cepat dengan menggunakan komputasi paralel.
Salah satu jenis penggunaan komputasi paralel adalah:

PVM(Parallel Virtual Machine)

Merupakan sebuah perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada jaringan.

TUJUAN PARALLEL PROCESSING

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
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.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).
Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

Hubungan antara Komputasi Modern dengan Paralel Processing

Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu 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.
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.


Minggu, 01 Mei 2016

Dengan semakin berkembangnya teknologi, maka pengguna tidak perlu direpotkan dengan manajemen waktu dan sumber daya. Salah satunya adalah dengan adanya teknologi Cloud (Awan) ini bukan berarti ada kegiatan diawan…. apalagi komputer yang ada di langit. Dalam Cloud kita (pengguna) dapat menggunakan konsep - konsep seperti Social Networking, Share, Colaborations, Maintenance, Terdistribusi, Scalability, Concurency, dan transparan.Cloud Computing hadir dengan fitur yang memudahkan akses data dari mana saja dan kapan saja, karena dengan memanfaatkan internet dan menggunakan perangkat fixed serta mobile device yang menggunakan internet cloudsebagai tempat penyimpanan data, aplikasi dan lainya.

Komputasi Cloud
Cloud Computing atau bisa disebut juga Komputasi awan adalah suatu penggabungan antara teknologi komputer yang telah berkembang dengan basis internet yang juga telah berkembang. Mengapa disebut komputasi awan?? Karena komputasi dianggap sebagai komputer dan internet sebagai awan dimana bekerja tidak kelihatan oleh mata manusia. Jadi pada intinya manusia sebagai user memanfaatkan teknologi computer dengan menjalankan aplikasi yang tidak berada dicomputer yang digunakannya atau tidak ada file-file yang ada dikomputer kita langsung, namun file – file itu berada di computer lain yang dihubungkan dengan internet. Sebagai contoh : Pembuatan file atau dokumen pada Google Docs,

Komputasi Grid
Komputasi Grid (Grid Computing) itu sendiri adalah sebuah sistem komputasi terdistribusi, yang memungkinkan seluruh sumber daya (resource) dalam jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media penyimpan, membentuk sebuah sistem tunggal secara virtual. Seperti halnya pengguna internet yang mengakses berbagai situs web dan menggunakan berbagai protokol seakan-akan dalam sebuah sistem yang berdiri sendiri, maka pengguna aplikasi Grid computing seolah-olah akan menggunakan sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar. Grid computing menawarkan solusi komputasi yang murah, yaitu dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan yang mudah dari mana saja. Globus Toolkit adalah sekumpulan perangkat lunak dan pustaka pembuatan lingkungan komputasi grid yang bersifat open-source. Dengan adanya lingkungan komputasi grid ini diharapkan mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka paralel.
Konsep dasar dari komputasi grid:
·         Sumber daya dikelola dan dikendalikan secara lokal
·         Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda
Keuntungan penerapan komputasi grid:
·         Peningkatan dari sumber daya: Resource pool dari CPU dan storage.
·         Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah dapat berjalan lebih cepat dan mencakup domain yang lebih luas
·         Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik.
·         Data: Akses terhadap sumber data global, dan hasil penelitian lebih baik.

Virtualisasi
Istilah Virtualisasi sering kita dengar dan selalu disandingkan dengan Cloud Computing akan tetapi Cloud Computing itu lebih dari sekedar virtualisasi. Virtualisasi adalah sebuah teknologi, yang memungkinkan anda yaitu user atau pemakai 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. 
Sebagai contoh: Misalkan terdapat satu buah komputer yang telah terinstall Sistem Operasi Linux Ubuntu. Kemudian dengan menggunakan perangkat lunak virtualization semisal Virtualbox kita dapat menginstall dua buah sistem operasi lain sebagai contoh Windows XP dan FreeBSD. Sistem operasi yang terinstall di komputer secara fisik dalam hal ini Linux ubuntu disebut sebagai host machine sedangkan sistem operasi yang diinstall diatasnya dinamakan guest machine. Istilah host dan guest dikenalkan untuk memudahkan dalam membedakan antara sistem operasi fisik yang terinstall di komputer dengan sistem operasi yang diinstall diatasnya atau virtualnya.
Perangkat lunak yang digunakan untuk menciptakan virtual machine pada host machine biasa disebut sebagai hypervisor atau Virtual Machine Monitor (VMM). Menurut Robert P. Goldberg pada tesisnya yang berjudul “Architectural Principles For Virtual Computer Systems” pada hal 23 menyebutkan bahwa tipe-tipe dari VMM ada 2 yaitu :
• Type 1 berjalan pada fisik komputer yang ada secara langsung. Pada jenis ini hypervisor / VMM benar-benar mengontrol perangkat keras dari komputer host-nya. Termasuk mengontrol sistem operasi-sistem operasi guest-nya. Contoh implementasi yang ada dan sudah saya coba secara langsung ialah VMWare ESXi. Adapun contoh yang lain yang ada seperti Microsoft Hyper-V.
• Type 2 berjalan pada sistem operasi diatasnya. Pada tipe ini tentunya guest sistem operasi nya berada di layer diatasnya lagi.

Virtualisasi dapat diimplementasikan ke dalam berbagai bentuk, antara lain:
·         Network Virtualization : VLAN, Virtual IP (untclustering), Multilink   
·         Memory Virtualization : pooling memory dari node-node di cluster  
·         Grid Computing :banyak komputer = satu    
·         Application Virtualization : Dosemu, Wine     
·         Storage Virtualization : RAID, LVM   
·         Platform Virtualization : virtual computer


Distributed Computation dalam Cloud Computing
Komputasi terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program didistribusikan, dan didistribusikan pemrograman adalah proses menulis program tersebut.Distributed Computing juga mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam Distributed Computing, masalah dibagi menjadi banyak tugas, dikerjakan secara bersamaan yang diselesaikan oleh satu komputer.


Map Reduce dan NoSQL (Not Only SQL)
            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. Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan file System 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 adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memory cache, ataupun yang lebih canggih yaitunon-database relational seperti MongoDB, Cassandra, CouchDB, dan yang lainnya. Wikipedia menyatakan NoSQL adalah sistem management database yang berbeda dari sistem management database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horizontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem management database relasional.

NoSQL Database

Database NoSQL, disebut juga Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desaindatabase yang berguna untuk sejumlah item data yang sangat besar dan terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skalabilitas dan kinerja data yang besar yang tidak dirancang pada database relasional. NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan. Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query terstruktur (SQL). Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel.





Pengertian Komputasi Modern

Komputasi modern adalah sebuah konsep sistem yang menerima instruksi-isntruksi dan menyimpannya dalam sebuah memori, memori disini bisa juga dari memori komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagas oleh John Von Neumann (1903-1957). Ia adalah ilmuan yang meletakkan dasar-dasar komputer modern.
Von Neumann telah menjadi ilmuwan besar di abad 21. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya . Beliau juga merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.

Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
1. Akurasi (big, Floating point)
2. Kecepatan (dalam satuan Hz)
3. Problem Volume Besar (Down Sizzing atau pararel)
4. Modeling (NN & GA)
5. Kompleksitas (Menggunakan Teori big O)

Karakteristik Komputasi Modern

1. Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
2. Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
3. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.

Jenis-Jenis Komputasi Modern
Jenis-jenis komputasi modern ada 3 macam, yaitu :
1. Mobile Computing atau Komputasi Bergerak Mobile computing (komputasi bergerak) merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel.
2. Grid Computing Komputasi grid memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan.
3. Cloud Computing atau Komputasi Awan Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas.

Adapun perbedaan antara komputasi mobile, komputasi grid dan komputasi cloud, dapat dilihat penjelasannya di bawah ini:
1. Komputasi mobile menggunakan teknologi komputer yang bekerja seperti handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
2. Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan cloud.
3. Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan grid dan cloud membutuhkan tempat yang khusus.
4. Untuk komputasi mobile proses tergantung si pengguna, komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya.

Beberapa Contoh Komputasi Modern Sampai Dengan Lahirnya ENIAC 

1. Konrad Zuse’s electromechanical “Z mesin”.Z3 (1941) sebuah mesin pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programmability. Pada tahun 1998, Z3 operasional pertama di dunia komputer itu di anggap sebagai Turing lengkap.

2. Non-programmable Atanasoff-Berry Computer  yang di temukan pada tahun 1941 alat ini menggunakan tabung hampa berdasarkan perhitungan, angka biner, dan regeneratif memori kapasitor.Penggunaan memori regeneratif diperbolehkan untuk menjadi jauh lebih seragam (berukuran meja besar atau meja kerja).

3. Komputer Colossus ditemukan pada tahun 1943, berkemampuan untuk membatasi kemampuan program pada alat ini menunjukkan bahwa perangkat menggunakan ribuan tabung dapat digunakan lebih baik dan elektronik reprogrammable.Komputer ini digunakan untuk memecahkan kode perang Jerman.

4. The Harvard Mark I ditemukan pada 1944, mempunyai skala besar, merupakan komputer elektromekanis dengan programmability terbatas.

5. US Army’s Ballistic Research Laboratory ENIAC ditemukan pada tahun 1946, komputer ini digunakan unutk menghitung desimal aritmatika dan biasanya disebut sebagai tujuan umum pertama komputer elektronik  (ENIAC merupaka generasi yang sudah sangat berkembang di zamannya sejak komputer pertama Konrad Zuse ’s Z3 yang ditemukan padatahun 1941).

Sumber:
https://id.wikipedia.org/wiki/Komputasi_awan
https://id.wikipedia.org/wiki/Komputasi_grid
http://kitatkj2.blogspot.co.id/2014/05/pengertian-virtualisasi.html
http://adriyani-ridwan.blogspot.co.id/2015/05/pengantar-komputasi-cloud_36.html


http://adhitjatur.blogspot.co.id/2015/05/definisi-dan-contoh-komputasi-modern.html