Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di 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 dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk digunakan perangkat lunak pendukung yang biasa disebut middleware yang berperan 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.
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.
Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:
- SISD
- SIMD
- MISD
- MIMD
SISD
Yang merupakan singkatan dari 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 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
Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah 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
Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian 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
Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD 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. Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:
Komputasi Parallel
Komputasi Tunggal
Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.
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.
Graphics Processing Unit (GPU)
Graphics Processing Unit (GPU) adalah sebuah device yang secara khusus ditugaskan hanya untuk mengolah tampilan graphics. Pada graphics card add-on, yang dimaksud frngan GPU adalah chip graphics yang biasanya dikenal dengan nama GeForce, Radeon, dan lainnya. Sedangkan pada solusi integrated graphics, GPU biasanya tidak berupa chi[ mandiri karena sudah diintegrasikan kedalam chipset motherboard. Istilah GPU sendiri dipopulerkan oleh chip graphics buatan NVIDIA, yaitu GeForce 256.
Feature yang ada di GPU
Sekarang ini, GPU menjadi bagian tidak terpisahkan dari PC. Semua PC modern yang ada sekarang ini pastinya memiliki GPU di dalamnya. Untuk mengenal GPU lebih dalam, mari kita lihat beberapa feature yang ada pada GPU.
Sekarang ini, GPU menjadi bagian tidak terpisahkan dari PC. Semua PC modern yang ada sekarang ini pastinya memiliki GPU di dalamnya. Untuk mengenal GPU lebih dalam, mari kita lihat beberapa feature yang ada pada GPU.
- Anisotropic Filtering: Metode untuk mempertajam kualitas tekstur gambar 3D. Teknik ini biasanya digunakan untuk mempertajam tampilan gambar terutama pada gambar yang letaknya jauh dari objek utama.
- Anti Aliasing: Teknik untuk meminimalikan aliasing atau yang lebih dikenal dengan sebutan jaggies. Aliasing sendiri sederhananya dapat diilustrasikan sebagai tepi dari gambar 3D yang tidak halus. Contohnya adalah sebuah tepi sebuah gambar atap 3D yang seharusnya berbentuk lurus, tetapi tampilannya berbentuk seperti tangga di layar monitor. Teknik anti-aliasing ini digunakan untuk menghaluskan tampilan tangga tadi sehingga tampilannya menjadi seperti garis lurus.
- DirectX & Direct3D: Kumpulan API dari Microsoft yang berguna menangani tugas yang berhubungan dengan multimedia. DirectX berhubungan langsung dengan hardware (sound card, graphics card, input device, dan network) ketika PC menjalankan fungsi multimedia seperti bermain game, mendengar musik, dan lainnya. Sedangkan Direct3D adalah bagian dari DirectX yang fungsi utamanya mengatur rendering tampilan gambar 3D.
- OpenGL: Sama seperti DirectX, OpenGL juga berisi kumpulan API. Namun, API yang ada pada OpenGL khusus berhubungan dengan tampilan gambar 3D (dan sedikit 2D). OpenGL dikembangkan oleh organisasi yang dinamakan OpenGL Architectural Review Board (ARB).
- Shader Model: Standar dari Microsoft untuk menentukan jenis shader yang digunakan. Shader Model terdiri atas dua shader, yaitu pixel shader dan vertex shader. Shader model pertama kali muncul bersamaan dengan hadirnya GeForce 3. Sekarang ini, shader model sudah sampai pada versi 3.0 (SM 3.0).GeForce 256 : Graphics card ini menandai era munculnya GPU modern.
- Transform and Lighting: T&L adalah proses meningkatkan kualitas gambar 3D sehingga lebih mirip dengan keadaan dunia nyata. Transform sendiri bertugas untuk mengubah koordinat 3D ke dalam pandangan 2D. Sedangkan Lighting berguna untuk menangani pencahayaan objek.
- High Dynamic Range (HDR): Teknik untuk menjadikan gambar 3D menjadi lebih realistis. HDR memungkinkan tampilan gambar menggunakan warna yang nilainya lebih tinggi daripada nilai normal yang biasanya digunakan. Dengan cara ini, tampilan gambar akan menjadi lebih besar range warna-nya sehingga tampak lebih nyata.
Paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila dibandingkan dengan pemakaian komputasi pada komputer tunggal.
Parallel komputasi adalah melakukan perhitungan komputasi dengan menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan. Untuk proses pembagian proses komputasi tersebut dilakukan oleh suatu software yang betugas untuk mengatur komputasi dalam hal makalah ini akan digunakan Message Parsing Interface (MPI).

