Langsung ke konten utama

Parallel Computing

Komputasi Parallel atau yang biasa disebut dengan Parallel Computing merupakan suatu metode komputasi yang prosesnya membutuhkan beberapa komputer secara bersamaan untuk mendapatkan suatu informasi, biasanya hal tersebut terjadi dalam bidang misalnya keuangan, teknik informasi, atau hal-hal yang membutuhkan kapasitas besar baik dalam proses maupun komputasi yang banyak. Dalam implementasinya, Komputasi Paralel membutuhkan Algoritma, Bahasa Pemrograman, dan juga Compiler. 

Contoh Komputasi Parallel :
Pada gambar diatas terdapat sebuah masalah, dimana masalah tersebut dibagi menjadi beberapa bagian lalu bagian dari masalah tersebut dibagikan ke-tiga CPU untuk diselesaikan secara bersamaan.



  • Distributed Processing 
Distributed Processing mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya. 

Pemrosesan terdistribusi adalah penggunaan lebih dari satu prosesor untuk melakukan pengolahan untuk tugas individual.
Karateristik database terditstribusi yaitu :
  1. Kumpulan data yang digunakan bersama secara logic tersebar pada sejumlah computer yang berbeda.
  2. Komputer yang dihubungkan menggunakan jaringan komunikasi.
  3. Data pada masing-masing situs dapat menangani aplikasi-aplikasi local secara otonom.
  4. Data pada masing-masing situs dibawah kendali satu DCMS.
  5. Masing-masing DBMS berpartisipasi dalam sedikitnya satu aplikasi global.
Contoh implementasi Distributed Processing
Dalam aplikasinya suatu sistem basis data terdistribusi banyak digunakan dalam berbagai kepentingan, yang sering dikenal dengan istilah transaksi atau perputaran dan juga pentransmisian data. Transaksi pada sistem basis data terdistribusi ini terbagi ke dalam dua jenis transaksi. Berikut ini adalah keuda jenis transaksi pada sistem basis data terdistribusi : 
  1. Transaksi Lokal, Transaksi lokal merupakan suatu transaksi dari sebuah sistem basis data yang dilakukan pada simpul yang sama dengan lokasi dimana basis data tersebut berada. Contoh pada Transaksi lokal ini adalah update data nasabah Bank yang melakukan penarikan sali di kantor pusat. Database bank tersebut biasanya terdapat di lokasi yang berdekatan dengan kantor pusat, sehingga bentuk update yang dilakukan di kantor pusat memiliki simpul yang sama dengan database.
  2. Transaksi Global, Kebalikan dari transaksi lokal, transaksi global menggunakan transaksi dan transmisi data dari simpul yang berbeda dengan server atau database yang digunakan. Contoh adalah seorang nasabah melakukan penarikan saldi di Bank Cabang yang berada diluar pulau. Bank tersebut menggunakan server dan juga database yang sama, namun menggunakan simpul transmisi data yang berbeda dengan servernya. 

  • Architectural Parallel Computer
Arsitektur Komputer Paralel adalah sekumpulan elemen pemroses (Processing Elements) yang bekerjasama dalam menyelesaikan sebuah masalah besar. Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal dengan komputasi paralel, maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digambarkan pada gambar berikut :


Dalam taksonomi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak digunakan adalah:
  • Single Instruction Single Data (SISD)

Single Instruction Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model ini bisa 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.

  • Single Istruction Multiple Data (SIMD)
Single Instruction Miltiple Data, komputer ini memiliki lebih dari satu processor, tetapi hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. 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).


  • Multiple Instruction Multiple Data (MIMD)
Multiple Instucrtion 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. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.



  • Pengantar Thread Programming 
Threading/Thread adalah sebuah alur kontrol dari sebuah proses, Konsep threading adalah menjalankan 2 proses (proses yang sama atau proses yang berbeda) dalam satu waktu. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. Threading dibagi menjadi 2:
  1. Static Threading, teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan processor itu
  2. Dynamic Mutithreading, teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platfrom ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platfromnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops.



  • Pengantar Massage Passing dan OpenMP
Message Passing Interface (MPI), adalah sebuah standard pemrograman yang memungkinkan pemrograman untuk membuat seuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing-masing compute node yang kemudian masing-masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node. Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan-pertimbangan diantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor.

MPI ini merupakan standard yang dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data lokal. Setiap proses mempunyai variable lokal, dan tidak ada mekanisme suatu proses yang bisa mengakses secara langsung memori yang lain. Pembagian data antar proses dilakukan dengan message passing, yaitu dengan mengirim dan menerima pesan antar proses. MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain :
  1. Menulis kode paralel secara portable
  2. Mendapatkan performa yang tinggi dalam pemrograman paralel
  3. Menghadapi permasalaha yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel.

OpenMP
OpenMP merupakan API yang mendukung multi-platform berbagi memori multiprocessing pemrograman C, C++, dan Fortran, pada kebanyakan arsitektur prosesor dan system operasi, termasuk Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, dan Wondows platform. Ini terdiri dari satu set perintah kompiler, rutinitas library, dan variable lingkungan yang mempengaruhi perilaku run-time. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP), bersama-sama  didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia, NEC, Microsoft, Texas Instruments, Oracle Corporation, dan banyak lagi.


  • Pengantar Pemrograman CUDA GPU 
GPU (Graphical Processing Unit) 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, maka meningkat pula kemampuan prosesor grafik tersebut. Akselerasi peningkatan teknologi GPU ini lebih cepat dari pada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan renderin saja melainkan bisa untuk proses komputasi secara umum.

CUDA (Compute Unified Device Architectur) adalah arsitektur komputasi paralel yang dikembangkan oleh NVIDIA. CUDA adalah mesin komputasi dalam pemrosesan grafis NVIDIA unit (GPU) yang dapat diakses oleh pengembang perangkat lunak melalui varian dari bahasa pemrograman standar industri. CUDA merupakan kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit atau Procesor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang paralel. Setiap inti memiliki kemampuan untuk menjalankan ribuan "thread"secara simultan. Jika aplikasi yang dijalankan sesuai dengan arsitektur ini, GPU dapat menyediakan keuntungan yang lebih besar dari segi performa proses aplikasi tersebut.

Komponen Pendukung CUDA

Secara umum, komponen-komponen pendukung CUDA adalah:

  • Aplikasi, adalah perangkat lunak yang dibuat oleh pengguna, memakai bahasa perograman khusus (kembangan C).
  • Pustaka perangkat lunak, yang menyediakan layanan dasar untuk program aplikasi mengakses CPU maupun GPU.
  • Perangkat keras khusus, yaitu GPU yang menyediakan mesin paralel.
  • Perangkat keras CPU, sebagai mesin sekuensial.

Kelebihan CUDA:
  • CUDA menggunakan bahasa "C" standar, dengan beberapa ekstensi yang simpel.
  • Shared memory - CUDA menyingkapkan wilayah memory yang cepat (berukuran 16 KB) yang dapat di bagi diantara thread-thread yang ada. Hal ini dapat digunakan sebagai user-managed-cache, sehingga mengaktifkan bandwidth yang lebih besar (dari besaran bandwidth yang dimungkinkan), menggunakan texture loops.
  • Proses download dan readbacks yang lebih cepat, dari dan ke GPU.
  • Support penuh terhadap operasi integer dan bitwise.
Kelemahan CUDA:
  • CUDA tidak support texture rendering.
  • Bus Bandwidth dan latensi antara CPU dengan GPU bisa jadi bottleneck (tidak imbang).
  • CUDA hanya terdapat pada GPU Nvidi.


Referensi :

Komentar

Postingan populer dari blog ini

Review software yang digunakan pada pembuatan film animasi "Battle Of Surabaya"

Hai, pada postingan sebelumnya gw me-review film animasi series "Marha and The Bear", dan kali ini gw bakal coba mereview software yang digunakan dalam pembuatan film animasi. Namun kali ini film animasi yang bakal gw angkat adalah film anak negeri yaitu "Battle of Surabaya".  Yoi, film animasi buatan anak negeri yang mendunia. Kemunculan film ini sempat menggemparkan, karena selain pertama kalinya film animasi buatan anak negeri ini, juga alur ceritanya yang mengangkat cerita peristiwa 10 November di Surabaya. Film ini tayang pada 20 Agustus 2015 lalu, dan memenangkan beberapa nominasi yang tentunya membanggakan. So, let's check it up, software apa sih yang digunakan dalam pembuatan film BoS. Sebelumnya untuk sekedar informasi, film BoS melalukan proses produksi di Thailand, yaitu di Katana Studio. Menurut sumber, aplikasi yang digunakan dalam proses produksi film adalah DaVinci Resolve.  Salah satu software yang terkenal handal untuk menghadirkan

Webometrics

Peringkat Universitas Dunia Webometrics atau Webometrics merupakan organisasi yang melakukan pemeringktan perguruan tinggi seluruh dunia, sebagaimana rintisan dari Cybermetrics Lab, sebuah kelompok penelitian yang masih merupakan bagian dari Consejo Superior de Investigaciones Cientificas, lemabaga penelitian terbesar di Spanyol. Sama halnya dengan 4ICU, Webometrics juga melakukan update hasil pemeringkatan setiap periode bulan Januari dan Juli. Berbeda dengan 4ICU, komponen yang digunakan Webometrics untuk pemeringkatan adalah : Visibility (50%) : yang terdiri dari Impact yaitu jumlah link eksternal menurut Ahrefs & Majestic SEO. Activity (50%) : yang terdiri dari Presence (20%), yakni jumlah halaman situs domain menurut Google , Openness (20%), yakni jumlah publikasi ilmiah dalam format rich files (*pdf, *doc, *ppt, *ps) menurut Google Scholar, dan Exellence (10%), yakni jumlah publikasi ilmiah menurut Scimago.  Perhitungannya bias dirumuskan menjadi seperti ini : Webomet

TUTORIAL APLIKASI AUDACITY

Audacity adalah aplikasi yang biasa digunakan untuk mengedit sebuah lagu atau sebuah file audio. Berikut akan dijelaskan mengenai tutorial singkat penggunaan aplikasi Audacity. Aplikasi Audacity yang digunakan pada tutorial ini adalah versi 2.1. Dan kali ini saya akan menjelaskan tutorial untuk memanjangkan intro sebuah lagu. Pertama buka Aplikasi Audacity Berikut diatas adalah tampilan default dari aplikasi Audacity, untuk memulai mengedit, kita harus terlebih dahulu memasukkan lagu kedalam aplikasi. Klik menu file pada menubar, kemudian plih Import - Audio   Pilih lagu/audio yang akan kita edit. Pada contoh diatas saya menggunakan lagu Maroon 5 - Moves like Jagger.  Kemudian perlu diperhatikan, karena kali ini kita akan membuat intro sebuah lagu menjadi lebih lama, maka kita harus mencari letak/panjang dari intro lagu tersebut. Pada lagu moves like jagger ini intro terdapat dari detik 0 sampai dengan detik 11. Hal yang kita