Rabu, 02 Juli 2014

Perkembangan Bioinformatika

Perkembangan Bioinformatika
1.                  PENDAHULUAN
Bioinformatika merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatik ini tidak terlepas dari perkembangan biologi molekular modern, salah satunya peningkatan pemahaman manusia dalam bidang genomic yang terdapat dalam molekul DNA.
Kemampuan untuk memahami dan memanipulasi kode genetik DNA ini sangat didukung oleh teknologi informasi melalui perkembangan hardware dan soffware. Baik pihak pabrikan sofware dan harware maupun pihak ketiga dalam produksi perangkat lunak. Salah satu contohnya dapat dilihat pada upaya Celera Genomics, perusahaan bioteknologi Amerika Serikat yang melakukan pembacaan sekuen genom manusia yang secara maksimal memanfaatkan teknologi informasi sehingga bisa melakukan pekerjaannya dalam waktu yang singkat (hanya beberapa tahun).
Bioinformatika ialah ilmu yang mempelajari penerapan teknik komputasi untuk mengelola dan menganalisis informasi hayati. Bidang ini mencakup penerapan metode-metode matematikastatistika, dan informatika untuk memecahkan masalah-masalah biologi, terutama yang terkait dengan penggunaan sekuens DNA dan asam amino. Contoh topik utama bidang ini meliputi pangkalan datauntuk mengelola informasi hayati, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan struktur protein atau pun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresigen.


2.         LANDASAN TEORI
Bioinformatika pertamakali dikemukakan pada pertengahan 1980an untuk mengacu kepada penerapan ilmu komputer dalam bidang biologi. Meskipun demikian, penerapan bidang-bidang dalam bioinformatika seperti pembuatan pangkalan data dan pengembangan algoritma untuk analisis sekuens biologi telah dilakukan sejak tahun 1960an.
Kemajuan teknik biologi molekuler dalam mengungkap sekuens biologi protein (sejak awal1950an) dan asam nukleat (sejak 1960an) mengawali perkembangan pangkalan data dan teknik analisis sekuens biologi. Pangkalan data sekuens protein mulai dikembangkan pada tahun 1960an di Amerika Serikat, sementara pangkalan data sekuens DNA dikembangkan pada akhir 1970an di Amerika Serikat dan Jerman pada Laboratorium Biologi Molekuler Eropa (European Molecular Biology Laboratory).
Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang dapat diungkapkan pada 1980an dan 1990an. Hal ini menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, yang meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika.
Perkembangan jaringan internet juga mendukung berkembangnya bioinformatika. Pangkalan data bioinformatika yang terhubungkan melalui internet memudahkan ilmuwan dalam mengumpulkan hasil sekuensing ke dalam pangkalan data tersebut serta memperoleh sekuens biologi sebagai bahan analisis. Selain itu, penyebaran program-program aplikasi bioinformatika melalui internet memudahkan ilmuwan dalam mengakses program-program tersebut dan kemudian memudahkan pengembangannya.
Bidang-bidang yang terkait dengan BioInformatika
1.      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.
2.      Informatika Medis
Sebagai pembelajaran, penemuan, dan implementasi dari struktur dan algoritma untuk meningkatkan komunikasi, pengertian, dan manajemen informasi medis
3.      Komputasional Biologi
Bidang ini fokus pada Computational Biology adalah gerak evolusi, populasi, dan biologi teoritis daripada biomedis dalam molekul dan sel.
4.      Proteomics
Bidang ini menggunakan bioinformatika untuk menyelidiki protein yang tersusun oleh genomika
5.      Biofisika
Merupakan sebuah bidang berdasarkan teknik-teknik dari ilmu fisika untuk memahami struktur dan ilmu biologi. Ilmu ini terkait dengan bioinformatika karena untuk mengenal teknik-teknik dari ilmu fisika untuk memahami struktur tersebut membutuhkan penggunaan TI.
3.         ANALISA
Dengan Bioinformatika, data-data yang dihasilkan dari proyek genom dapat disimpan  dengan teratur dalam waktu yang singkat dengan tingkat ketepatan yang tinggi  serta sekaligus dianalisa dengan program-program yang dibuat untuk tujuan tertentu.  Dalam dunia kedokteran, keberhasilan proyek genom ini membuka kemungkinan luas  untuk menangani berbagai penyakit genetik serta memprediksi resiko terkena penyakit  genetic itu sendiri. Juga dapat digunakan untuk mengetahui respon tubuh terhadap obat  sehingga keefektivitasan pengobatan dapat ditingkatkan. Karena Bioinformatika merupakan suatu bidang interdisipliner, maka Bioinformatika harus didukung oleh disiplin ilmu lain untuk dapat saling menunjang sehingga bermanfaat untuk kepentingan manusia. Bidang yang terkait dengan Bioinformatika diantaranya adalah Biophysics, Computational Biology,Medical In.


Senin, 16 Juni 2014

Cloud Computing


ALDO SABASTIAN FATWANA
4IA19
50410515
SOFTKILL PENGANTAR KOMPUTASI MODERN
DOSEN : KUWAT SETIYANTO
ALAMAT BLOG :aldosabastian.blogspot.com
MATERI : CLOUD COMPUTING


1.PENDAHULUAN

Menurut sebuah makalah tahun 2008 yang dipublikasikan oleh IEEE tentang Internet Computing, Cloud Computing adalah suatu paradigma di mana informasi secara permanen tersimpan di server di internet dan tersimpan secara sementara di komputer pengguna(client) termasuk di dalamnya adalah desktop komputer, tablet, notebook, netbook, handheld, sensor-sensor, monitor, dan lainlain”. Sebagai contoh, Google Apps menyediakan aplikasi bisnis umum yang diakses melalui suatu web browser dengan perangkat dan data yang tersimpan di server Google.
Seperti halnya teknologi lain yang mempunyai dua sisi, sisi negatif dan sisi positif. Hal tersebut berlaku pula untuk Cloud Computing berupa keuntungan positif yang didapat sekaligus resiko yang harus ditanggung.Dua hal yang menjadi pro dan kontra menjadi isu tersendiri yang berkembang seiring dengan perkembangan Cloud Computing.

2.PEMBAHASAN DAN ANALISA

A. Pengertian Cloud Computing
            Cloud computing adalah layanan teknologi informasi yang bisa dimanfaatkan atau diakses oleh pelanggannya melalui jaringan internet. Kata-kata ‘cloud’ sendiri merujuk kepada symbol awan yang di dunia TI digunakan untuk mengggambarkan jaringan internet. Cloud computing bukan saja untuk menyimpanan data, tapi juga menjalankan aplikasi yang kita install di main server yang kita sewa. Jadi kita tidak perlu menginstall aplikasi di komputer kita.Kita tinggal nyambung di internet, aplikasi di server kita panggil, kemudian database kita tidak disimpan di PC kita tapi di akun cloud computing kita.
            Di Indonesia sendiri sudah ada beberapa perusahaan penyedia layanan cloud computing, di antaranya PT Aplikasinusa Lintasarta, PT Sigma Cipta Caraka (Telkom Sigma), PT Pasifik Satelit Nusantara, PT Astra Graphia Information Technology (AGIT), PT Infoprima Mitra Solusi, PT Menara Sinar Semesta, PT Biznet Networks, termasuk PT Telkom dengan Telkom Cloud-nya. Sangat mudah mendapatkan informasi tentang perusahaan-perusahaan ini di internet.


Layanan-layanan yang bisa dipilih meliputi:
a)      Infrastructure as a service (IaS), vendor menyediakan komponen-komponen berupa server,hardware, dan jaringan yang dibutuhkan pelanggan dengan harga tertentu. Pelanggan dapat melakukan instalasi aplikasi yang digunakannya pada infrastruktur tersebut. Contoh terapan: hosting aplikasi web.
b)      Platform as a service (PaS), vendor menyediakan system software dan software pendukung yang diperlukan untuk membangun aplikasi yang akan dipasang pada server tersebut sesuai kebutuhan organisasi. Organisasi kemudian membangun aplikasi yang dibutuhkan pada platform ini dan menggunakannya. Contoh terapan: Remote Application Development.
c)      Software as a service (SaS), vendor menyediakan software maupun aplikasi yang dapat diakses pelanggan via internet. Penyedia layanan cloud computing berinteraksi dengan pengguna dan pelanggan melalui sebuah front-end panel. Contoh layanan sederhana: e-mail, online documents.

Namun tidak semua layanan yang ada di internet bisa di kategorikan sebagai cloud computing, ada setidaknya beberapa syarat yang harus dipenuhi:
a)      Layanan bersifat “On Demand”, pengguna dapat berlangganan hanya yang dia butuhkan saja, dan membayar hanya untuk yang mereka gunakan saja. Misalkan sebuah layanan menyediakan 10 fitur, user dapat berlangganan 5 fitur saja dan hanya membayar untuk 5 fitur tersebut.
b)      Layanan yang bersifat elastic/sclable, dimana pengguna bisa manambah atau mengurangi jenis dan kapasitas layanan yang dia inginkan, kapan saja dan system selalu bisa mengakomodasi perubahan tersebut.
c)      Layanan sepenuhnya dikelola oleh penyedia/provider, yang dibutuhkan oleh pengguna hanyalah computer personal/notebook ditambah koneksi internet.
           
B. Prinsip kerja Cloud Computing

            Prinsip kerja komputer awan (cloud computing) adalah sama seperti sebuah jaringan listrik. Apabila kita membutuhkan listrik maka kita tinggal hanya menghubungi penyedia layanan atau PLN , menyambungkan rumah kita dengan jaringan listrik, dan kita tinggal menikmati layanan tersebut sedangkan pembayaran dilakukan bulanan sesuai dengan pemakaian.
            Demikian juga dengan Cloud Computing itu sendiri, misalnya Microsoft salah satu penyedia Cloud Computing berperan menyediakan aplikasi yang dapat di gunakan langsung oleh penguna (client)/perusahaan.Mereka tinggal menghubungi penyedia layanan (dalam hal ini Microsoft) kemudian menyambungkan pengguna (client)/perusahaan dengan layanan tersebut (dalam hal ini melalui Internet) dan tinggal menggunakannya. Sedangkan pembayarannya cukup dibayar per bulan atau per tahun tergantung kontrak sesuai dengan pemakaian
.

C. Implementasi Cloud Computing

Ada tiga poin utama yang diperlukan dalam implementasi cloud computing, yaitu :
a)      Computer front end
Biasanya merupakan computer desktop biasa.
b)      Computer back end
Computer back end dalam skala besar biasanya berupa server computer yang dilengkapi dengan data center dalam rak-rak besar.Pada umumnya computer back end harus mempunyai kinerja yang tinggi, karena harus melayani mungkin hinggga ribuan permintaan data.
c)      Penghubung antara keduanya
Penghubung keduanya bisa berupa jaringan LAN atau internet.

Implementasi Cloud Computing dalam pemerintahan (E-Goverment)

Cloud Computing dalam pemerintahan (E-Goverment) dapat mendongkrak kinerja khususnya dalam bidang pemerintahan. E-Goverment dapat membantu para staff di bidang pemerintahan untuk memberikan pelayanan yang lebih baik ke masyarakat. Pemerintah dalam negara Indonesia telah menggunakan cloud computing. Contoh pertama yaitu sebagai penyediaan sumber informasi.Badan Pengkajian Dan Penerapan Teknologi (BPPT) telah menyediakan layanan Cloud Computing sebagai layanan jasa alih daya pengelolaan TIK untuk instansi pemerintah.  Layanan ini bertujuan untuk dapat mewujudkan percepatan e-government, karena memungkinkan pengguna pemerintah berkonsentrasi dalam memberikan layanan dan tidak dipusingkan dengan konfigurasi maupun pemeliharan perangkat teknologi informasi.

D. Manfaat Cloud Computing
a) Manfaat utama layanan ini adalah meningkatkan produktivitas perusahaan anda melalui kolaborasi antar staf dan manajemen sesuai kebutuhan, dengan tetap mengedepankanpengendalian biaya IT dan komunikasi perusahaan anda.
b)   Tidak membutuhkan investasi, tetapi penggunaan IT dikompensasi dalam biaya rutin.
c   Aman karena sistem ditempatkan di data center dengan tingkat keamanan yang tinggi.
d)  Menghemat biaya (tidak membutuhkan unit pengelolaan khusus).
e)   Tidak membutuhkan pembayaran lisensi terhadap software yang dipergunakan.
f)   Menggunakan hardware, software sesuai dengan kebutuhan.
g)   Mempercepat proses peningkatan kapasitas sistem.
h)   Mengintegrasikan aplikasi-aplikasi e-commerce, email, instant messaging, dan share  document kedalam satu portal.



Kelebihan Cloud Computing

Kelebihan-kelebihan yang ditemukan dalam teknologi Cloud Computing antara lain:
1. Reduce Cost
Teknologi Cloud Computing memudahkan pengguna untuk menghemat biaya dan efisiensi lebih baik karena menggunakan anggaran yang rendah untuk sumber daya dari sebuah organisasi atau perusahaan dan lebih menekankan biaya operasi yang dianggarkan oleh sebuah organisasi untuk meningkatkan realibility dan kritikan sistem yang dibangun.
2. Increase Storage
Perusahaan atau organisasi yang menggunakan teknologi Cloud Computing dapat  digunakan sebagai pusat data, dimana data-data tersimpan terpusat dandapat diakses kesemua pengguna atau cabang-cabang dari sebuah perusahaanatau organisasi dan dapat menyimpan data lebih banyak ketimbang denganmenggunakan komputer pribadi.
3. Highly Automated
Istilah ini dapat diartikan bahwa seorang pengguna tidak perlu khawatir akan harus mengganti atau memperbaharui versi dari program yang mereka gunakan, karena sistem ini dapat melakukan sistem otomatis pembaharuan atau penggantian versi dari program tanpa harus diberikan masukkan dari seorang pengguna.
4. Flexibility
Teknologi Cloud Computing memberikan banyak sistem fleksibilitas dari metode komputansi yang lama dan dengan mudah dapat berorientasi pada profit dan perkembangan yang cepat dan berubah-ubah.
5. More Mobility
Suatu perusahaan yang memiliki pegawai atau pengguna dapat melakukan akses data atau informasi dari tempat yang berbeda-beda, Cloud Computing dapat membentuk manajemen serta operasional yang lebih mudah diakses dikarenakan sistem perusahaan tergabung dalam satu Cloud sehingga dengan mudah dapat mengakses, memantau dan mengaturnya.
6. Allow IT to Shift Focus
Dalam sebuah perusahaan yang menggunakan teknologi Cloud Computing tidak perlu mengkhawatirkan server yang harus diperbaharui dan isu-isukomputansi lainnya.
Kemudian beberapa pihak yang akan diuntungkan dengan adanya penerapan Cloud Computing ini, yaitu:
1. Software House : mengurangi jumlah pembajakan karena proses instalasi software hanya dapat dilakukan melalui internet.
2. Dunia Entertainment : dapat menonton televisi melalui internet (Internet TV), menonton film bioskop lewat internet, dan sebagainya.
3. Industri Game : akan dibuat banyak game berbasis internet (game online) karena aman dari pembajakan CD game.
4. Hacker : pekerja security jaringan ini akan booming karena Cloud Computing sangat membutuhkan security jaringan.
5. Internet Service Provider : ISP mulai dicari oleh banyak orang karena pada dasarnya Cloud Computing ini membutuhkan koneksi internet.
6. Industri Handheld Device : perangkat genggam akan semakin banyak diproduksi karena menjadi kebutuhan dasar bagi penerapan CloudComputing.

Kendala Cloud Computing

Secara umum teknologi Cloud Computing melibatkan suatu penerapan layanan berbasis internet.Ada beberapa kendala dimana dalam saat jaringan internet lambat, maka kinerja pada cloud computing tidak dapat maksimal. Dalam teknologi Cloud Computing ada beberapa kendala yang menjadi pertimbangan user dalam menggunakannya antara lain:
1. Service Level
Artinya, kemungkinan service performance yang kurang konsisten dari provider. Inkonsistensi cloud provider ini meliputi, data protection dan datarecovery.
2. Privacy
Yang berarti adanya resiko data user akan diakses oleh orang lain karena hosting dilakukan secara bersama-sama.
3. Compliance
Yang mengacu pada resiko adanya penyimpangan level compliance dari provider terhadap regulasi yang diterapkan oleh user.
4. Data Ownership
Mengacu pada resiko kehilangan kepemilikan data begitu data disimpan dalam cloud.
5. Data Mobility
Mengacu pada kemungkinan share data antar cloud service dan caramemperoleh kembali data jika suatu saat user melakukan proses terminasiterhadap layanan Cloud Computing.

Beberapa pertimbangan lain yang menjadi kendala Cloud Computingkhususnya di Indonesia adalah:
1. Ketidakpastian kemampuan penegakan kebijakan keamanan pada provider
2. Kurang memadainya pelatihan dan audit TI
3. Patut dipertanyakan kendali akses istimewa atau super user pada situs provider
4. Ketidakpastian kemampuan untuk memulihkan data
5. Kemiripan data antar pelanggan sehingga kemungkinan tertukar
6. Ketidakpastian kemampuan untuk mengaudit operator
7. Ketidakpastian kontinuitas keberadaan provider
8. Ketidakpastian kepatuhan provider terhadap peraturan.





3.KESIMPULAN
Cloud computing dalam bahasa Indonesia: komputasi awan, merupakan gabungan pemanfaatan teknologi komputer (komputasi) dan pengembangan berbasis internet (awan). Awan (cloud) adalah metafora dari internet. Sebagaimana awan dalam diagram jaringan komputer, awan (cloud) dalam cloud computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu metode komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service) sehingga pengguna dapat mengaksesnya melalui internet di dalam “awan” tersebut tanpa mengetahui apa yang ada di dalamnya.

DAFTAR PUSTAKA

1. MuhammadAvivNatsirudin,(2011).PemanfaatanTeknologiCloudComputingpadajaringan thinclient.Diaksespada10Agustus2011dari: repository.amikom.ac.id/index.php/add_downloader/.
2.  RichardStallman,(2008).Cloudcomputingisa trap,warnsGNUfounder.Diaksespada 29 September 2008 dari:
3.  TeknologiRisetGlobaldenganITB,(2010).TRGGandengITBGarapCloudComputing ,Diakses Pada 10 Oktober 2010 dari:
      inet.detik.com/read/2010/.../trg-gandeng-itb-garap-cloud- computing.





Minggu, 04 Mei 2014

Algoritma Paralel



                                                                                               
NAMA                       :           ALDO SABASTIAN FATWANA
KELAS                      :           4IA19
NPM                           :           50410515
DOSEN                      :           KUWAT SETIYANTO
ALAMAT BLOG     :           aldosabastian.blogspot.com
MATERI                   :           ALGORITMA PARALLEL
 

1. PENDAHULUAN

Algoritma adalah serangkaian langkah-langkah yang tepat, terperinci, dan terbatas untuk menyelesaikan suatu masalah. Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan. Langkah yang tidak memberikan hasil yang benar untuk domain masalah yang diberikan bukanlah sebuah algoritma.

Algoritma parallel merupakan algoritma yang dapat dieksekusi dalam satu waktu pada banyak perangkat processing yang berbeda, dan pada akhirnya akan digabungkan kembali untuk mendapatkan hasil yang benar.
Teknik algoritma parallel, sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi.
Untuk dapat mengadaptasi suatu algoritma sekuensial ke dalam algoritma paralel, terlebih dahulu harus dipelajari mengenai konsep pemrosesan paralel dan bagaimana proses-proses dapat berlangsung secara paralel. Konsep pemrosesan paralel secara tidak langsung melibatkan studi mengenai aristektur komputer paralel. Karena itu tulisan ini akan membahas mengenai konsep paralel dan arsitektur komputer paralelnya, terutama arsitektur multikomputer. Dimulai dengan pengelompokkan Flynn, Arsitektur Komputer Paralel, Konsep Paralelisme, Pembangunan Algoritma Paralel, Konsep Proses dan Proses Komunikasi .
2. TEORI
            Pada ilmu computer, algoritma parallel atau algoritma konkuren, ini merupakan kebalikan dari algoritma tradisional sekuensial (serial). Algoritma parallel merupakan algoritma yang dapat dieksekusi dalam satu waktu pada banyak perangkat processing yang berbeda, dan pada akhirnya akan digabungkan kembali untuk mendapatkan hasil yang benar. Beberapa algoritma mudah untuk dibagi ke dalam cara ini. Contohnya, memisahkan pekerjaan dengan mengcek semua nomor dari satu sampat 100ribu untuk melihat pernyataan mana yang akan dijadikan landasan untuk menetapkan subset dari nomor setiap prosesor yang ada, dan kemudian menaruh data dengan hasil yang akan dkembalikan bersama-sama. Algoritma ini juga telah diterapkan untuk algoritma seperti rubik kubus dan dekripsi hash. Untuk penjelasan lebih lanjut dari algoritma parallel ini, perlu diketahui terdapat beberapa platform yang biasa digunakan dalam pemrograman parallel, yaitu OpenMp, MPI, CUDA, dan lain sebagainya. Di bawah ini akan dijelaskan mengenai platform tersebut, penjelasan singkat adalah sebagai berikut: 

1. OpenMP
OpenMP yaitu API yang mendukung multiplatform untuk pemrograman multiprocessing shared memory pada C, C++, dan Fortran, di semua arsitektur prosesor dan OS termasuk platform Solaris, AIX, HP-UX, GNU/Linux. Max OS X, dan Windows. Ini terdiri dari kumpulan compiler directive, library routines, dan environment variable yang akan membuat run time pada semua keadaan. OpenMP merupakan suatu teknologi nonprofit yang diatur oleh OpenMP Architecture Review Board (or OpenMP ARB) termasuk didalamnyaa vendor hardware dan software yaitu AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia, NEC, Microsoft, Texas Instruments, Oracle Corporation, dan masih banyak lagi. 
  


2. MPI (Message Passing Interface)
MPI (Message Passing Interface) yaitu suatu standard dan message passing interface partabel system yang didesain oleh grup penelitian dari akademi dan industry untuk mengembangkan fungsi dan macam-macam dari computer parallel. Standar ini mendifinisikan sintaks dan semantic dari core library routine yang berguna untuk memperbesar jangkauan kepada user menulis portable program message passing pada Fortran 77 dan bahasa C. Bebedapa keebaikan dirasakan dan implementasi efisien dari  MPI termasuk beberapa free da nada pada domain public. Ini dipupuk kedalam pengembangan dalam parallel industry software, dan kemajuan portable development, dan kemampuan skala lebih besari aplikasi parallel. 

3. CUDA (Compute Unified Device Architecture)
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. 

ALGORITMA PARALEL

            Dalam beberapa kasus, algoritma sekuensial dengan mudah dapat diadaptasi ke dalam lingkungan paralel. Namun dalam kebanyakan kasus, problem komputasi harus dianalisa ulang dan menghasilkan algoritma paralel yang baru. Terdapat beberapa penelitian mengenai perancangan algoritma paralel untuk problem-problem praktis seperti pengurutan, pemrosesan geraf, solusi untuk persamaan lanjar, solusi untuk persamaan diferensial, dan untuk simulasi. Teknik pembangunan algoritma paralel dapat dibedakan sebagai berikut :

a.Paralelisme Data.
Teknik paralelisme data merupakan teknik yang paling banyak digunakan dalam program paralel. Teknik ini lahir dari penelitian bahwa aplikasi utama komputasi paralel adalah dalam bidang sain dan engineer, yang umumnya melibatkan array multi-dimensi yang sangat besar. Dalam program sekuensial biasa, array ini dimanipulasi dengan mempergunakan perulangan bersarang untuk mendapatkan hasil. Kebanyakan program paralel dibentuk dengan mengatur ulang algoritma sekuensial agar perulangan bersarang tersebut dapat dilaksanakan secara paralel. Paralelisme data menunjukkan bahwa basis data dipergunakan sebagai dasar untuk membentuk aktifitas paralel, dimana bagian yang berbeda dari basis data akan diproses secara paralel. Dengan kata lain paralelisme dalam program ini dibentuk dari penerapan operasi-operasi yang sama ke bagian array data yang berbeda. Prinsip paralelisme data ini berlaku untuk pemrograman multiprosesor dan multikomputer.

b.Partisi Data. Merupakan teknik khusus dari Paralelisme Data, dimana data disebar ke dalam memori-memori lokal multikomputer. Sebuah proses paralel kemudian ditugaskan untuk mengoperasikan masingmasing bagian data. Proses tersebut harus terdapat dalam lokal memori yang sama dengan bagian data, karena itu proses dapat mengakses data tersebut secara lokal. Untuk memperoleh kinerja yang baik, setiap proses harus memperhatikan variabel-variabel dan data-data lokalnya masing-masing. Jika suatu proses membutuhkan akses data yang terdapat dalam remote memori, maka hal ini dapat dilakukan melalui jaringan message passing yang menghubungkan prosesor-prosesor. Karena komunikasi antar prosesor ini menyebabkan terjadinya waktu tunda, maka messsage passing ini sebaiknya dilakukan dalam frekuensi yang relatif kecil. Dapat disimpulkan bahwa tujuan dari partisi data adalah untuk mereduksi waktu tunda yang diakibatkan komunikasi messsage passing antar prosesor. Algoritma paralel mengatur agar setiap proses dapat melakukan komputasi dengan lokal data masing-masing.

c.Algoritma Relaksasi. Pada algoritma ini, setiap proses tidak membutuhkan sinkronisasi dan komunikasi antar proses. Meskipun prosesor mengakses data yang sama, setiap prosesor dapat melakukan komputasi sendiri tanpa tergantung pada data antara yang dihasilkan oleh proses lain. Contoh algoritma relaksasi adalah algoritma perkalian matrik, pengurutan dengan mengunakan metode ranksort dan lain sebagainya.

d.Paralelisme Sinkron
. Aplikasi praktis dari komputasi paralel adalah untuk problem yang melibatkan array multi-dimensi yang sangat besar. Problem tersebut mempunyai peluang yang baik untuk paralelisme data karena elemen yang berbeda dalam array dapat diproses secara paralel. Teknik komputasi numerik pada array ini biasanya iteratif, dan setiap iterasi akan mempengaruhi iterasi berikutnya untuk menuju solusi akhir. Misalnya saja untuk solusi persamaan numerik pada sistem yang besar. Umumnya, setiap iterasi mempergunakan data yang dihasilkan oleh iterasi sebelumnya dan program akhirnya menuju suatu solusi dengan akurasi yang dibutuhkan. Algoritma iterasi ini mempunyai peluang paralelisme pada setiap iterasinya. Beberapa proses parallel dapat dibentuk untuk bekerja pada array bagian yang berbeda. Namun setelah setiap iterasi, prosesproses harus disinkronkan, karena hasil yang diproduksi oleh satu proses dipergunakan oleh prosesproses lain pada iterasi berikutnya. Teknik pemrograman paralel seperti ini disebut paralelisme sinkron. Contohnya adalah perhitungan numerik pada Metode Eliminasi Gauss. Pada paralelisme sinkron ini, struktur umum programnya biasanya terdiri dari perulangan FORALL yang akan membentuk sejumlah besar proses paralel untuk dioperasikan pada bagian array data yang berbeda. Setiap proses diulang dan disinkronkan pada akhir iterasi. Tujuan dari sinkronisasi ini adalah untuk meyakinkan bahwa seluruh proses telah menyelesaikan iterasi yang sedang berlangsung, sebelum terdapat suatu proses yang memulai iterasi berikutnya.

e.Komputasi Pipeline. Pada komputasi pipeline, data dialirkan melalui seluruh struktur proses, dimana masing-masing proses membentuk tahap-tahap tertentu dari keseluruhan komputasi . Algoritma ini dapat berjalan dengan baik pada multikomputer, karena adanya aliran data dan tidak banyak memerlukan akses ke data bersama. Contoh komputasi pipeline adalah teknik penyulihan mundur yang merupakan bagian dari metoda Eliminasi. Dalam merancang suatu algoritma paralel kita harus mempertimbangkan pula hal-hal yang dapat mengurangi kinerja program paralel. Hal-hal tersebut adalah :

1. Memory Contention. Eksekusi prosesor tertunda ketika prosesor menunggu hak ases ke sel memori yang sedang dipergunakan oleh prosesor lain. Problem ini muncul pada arsitektur
multiprosesor dengan memori bersama.

2. Excessive Sequential Code. Pada beberapa algoritma paralel, akan terdapat kode sekuensial murni dimana tipe tertentu dari operasi pusat dibentuk, seperti misalnya pada proses inisialisasi. Dalam beberapa algoritma, kode sekuensial ini dapat mengurangi keseluruhan speedup yang dapat dicapai. Process Creation Time Pembentukan proses paralel akan membutuhkan waktu eksekusi. Jika proses yang dibentuk relative berjalan dalam waktu yang relatif lebih singkat dibandingkan dengan waktu pembentukan proses itu sendiri, maka overhead pembuatan akan lebih besar dibandingkan dengan waktu eksekusi paralel algoritma. Communication Delay Overhead ini muncul hanya pada multikomputer. Hal ini disebabkan karena interaksi antar prosesor melalui jaringan komunikasi. Dalam beberapa kasus, komunikasi antar dua prosesor mungkin melibatkan beberapa prosesor antara dalam jaringan komunikasi. Jumlah waktu tunda komunikasi dapat menurunkan kinerja beberapa algoritma paralel.

f.Synchronization Delay.
Ketika proses paralel disinkronkan, berarti bahwa suatu proses akan harus menunggu proses lainnya. Dalam beberapa program paralel, jumlah waktu tunda ini dapat menyebabkan bottleneck dan mengurangi speedup keseluruhan. Load Imbalance Dalam beberapa program paralel, tugas komputasi dibangun secara dinamis dan tidak dapat diperkirakan sebelumnya. Karena itu harus selalu ditugaskan ke prosesor-prosesor sejalan dengan pembangunan tugas tersebut. Hal ini dapat menyebabkan suatu prosesor tidak bekerja (idle), sementara prosesor lainnya tidak dapat mengerjakan task yang ditugaskannya.

3. ANALISIS

Teknik algoritma parallel, sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi.
Untuk dapat mengadaptasi suatu algoritma sekuensial ke dalam algoritma paralel, terlebih dahulu harus dipelajari mengenai konsep pemrosesan paralel dan bagaimana proses-proses dapat berlangsung secara paralel. Konsep pemrosesan paralel secara tidak langsung melibatkan studi mengenai aristektur komputer paralel. Karena itu tulisan ini akan membahas mengenai konsep paralel dan arsitektur komputer paralelnya, terutama arsitektur multikomputer. Dimulai dengan pengelompokkan Flynn, Arsitektur Komputer Paralel, Konsep Paralelisme, Pembangunan Algoritma Paralel, Konsep Proses dan Proses Komunikasi .
4. REFERENSI

http://imadeyudierawan.blogspot.com/2010/08/algoritma-paralel.html