Artikel Tentang Komputasi dan Komputasi Pararel
1.
Komputasi
Komputasi adalah sebuah istilah umum
untuk segala jenis pemrosesan informasi
untuk menemukan pemecahan masalah dari data input dengan
menggunakan suatu algoritma. Komputasi merupakan sebuah subjek dari Komputer
Sains, yang menganalisa apa yang bisa maupun tidak bisa dilakukan secara
komputasi. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu
komputer dan matematika.
Secara umum iIlmu komputasi adalah
bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan
teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan
memecahkan masalah-masalah ilmu (sains). Pembelajaran dari teori komputasi
terfokus untuk menjawab pertanyaan pokok tentang hal apa saja yang bisa
dilakukan komputasi terhadapnya dan ketersediaan resource (sumber daya) yang dibutuhkan
untuk melakukan komputasi tersebut. Untuk menjawab pertanyaan pertama,
computability theory (teori komputabilitas) menguji masalah-masalah komputasi
mana yang dapat dipecahkan oleh berbagai model komputasi. Pertanyaan kedua
dialamatkan untuk teori kompleksitas komputasi, yang mempelajari waktu dan
biaya yang berhubungan dengan pemecahan masalah komputasi. Dalam penggunaan
praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk
komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang
keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan
prinsip-prinsip baru yang mendasar dalam ilmu.
2.
Pararel Computing
Pararel Computing atau 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.
Komputer dikatakan sebagai
mesin komputasi paralel jika memenuhi beberapa syarat berikut ini:
-Data yang diproses dipecah
menjadi bagian-bagian terpisah yang bekerja secara independen dan
terus-menerus.
- Proses pengeksekusian
instruksi ganda. Sehingga dalam sekali waktu, bisa dihasilkan 2 atau lebih
suatu output data. Untuk lebih detilnya bisa dibaca pada sub bab taksonomi
Flynn. Yang dalam hal ini sangat berbeda dengan paradigma perkembangan
pengolahan data yang berkisar pelebaran jalur data, bukan penjamakan instruksi
- Dapat menyelesaikan tugas
lebih cepat daripada dengan perangkat serial.
Distributed computing
Merupakan sebuah sistem
komputer dengan memori terdistribusi, dimana masing-masing elemen pemrosesan
dihubungkan oleh jaringan.
Architectural parallel
computer
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.
1. SISD (Single Instruction
stream, Single Data stream)
Komputer tunggal yang mempunyai satu unit
kontrol, satu unit prosesor dan satu unit
memori Instruksi dilaksanakan secara berurut tetapi boleh juga overlap
dalam tahapan eksekusi (overlap) Satu alur instruksi didecode untuk alur data
tunggal.
2. SIMD (Single Instruction
stream, Multiple Data stream)
Komputer yang mempunyai
beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap
prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada
data yang berbeda.
3. MISD (Multiple Instruction stream,
Single Data stream)
Sampai saat ini struktur ini masih
merupakan struktur teoritis dan belum ada komputer dengan model ini.
4. MIMD (Multiple
Instruction stream, Multiple Data stream)
Organisasi komputer yang
memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama. Pada
umumnya multiprosesor dan multikomputer termasuk dalam kategori ini.
OpenMP (Open
Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang
mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada
berbagai arsitektur, termasuk Unix dan Microsoft Windows platform. OpenMP
Terdiri dari satu set perintah kompiler,perpustakaan rutinitas, dan variabel
lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model
hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan
menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan
dengan menggunakan ekstensi OpenMP non-shared memory systems.
Sejarah OpenMP dimulai dari
diterbitkannya API pertama untuk Fotran 1.0 pada Oktober 1997 oleh OpenMP
Architecture Review Board (ARB). Oktober tahun berikutnya OpenMP Architecture
Review Board (ARB) merilis standart C / C++. Pada tahun 2000 mengeluarkan versi
2.0 untuk fotran dan poda tahun 2002 dirilis versi 2.0 untuk C / C++. Pada
tahun 2005 dirilis versi 2.5 yang merupakan pengabungan fotran, C, dan C++/
pada mei 2008 versi 3.0 yang terdapat didalmnya konsept tasks dan task
construct.
OpenMP mengimplementasi
multithreading. Bagian kode yang akan dijalankan secara parallel ditandai
sesuai dengan Preprocessor directif sehingga akan membuat thread-thread sebelum
dijalnkan. Setiap thread memiliki id yang di buat mengunakan fungsi (
omp_get_thread_num() pada C/C++ dan OMP_GET_THREAD_NUM() pada Fortran). Secara
default, setiap thread mengeksekusi kode secara parallel dan independent.
"Work-sharing constructs" dapat dapat digunakan untuk membagi tugas
antar thread sehingga setiap thread menjalankan sesuai bagian alokasi kodenya.
Fungsi OpenMP berada pada file header yang berlabel “omp.h” di C / C++
Multicore gpu cuda
Sebuah GPU (Graphical Processing Unit)
pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan
rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan
rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana
kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut.
akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan
teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General
Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan
bisa untuk proses komputasi secara umum.
penggunaan Multi GPU dapat
mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang
natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya
berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting
adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi
GPU.
CUDA merupakan teknologi anyar dari
produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara
umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game,
namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal
ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia
digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses
data.
CUDA merupakan singkatan dari Compute
Unified Device Architecture, didefinisikan sebagai sebuah arsitektur komputer
parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk
menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya.
VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA antara lain :
Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO,
9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800
GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU,
dan seri sejenis untuk kelas mobile (VGA notebook).
Singkatnya, CUDA dapat
memberikan proses dengan pendekatan bahasa C, sehingga programmer atau
pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek.
Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA
sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film
dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah
mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi
editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat
memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.
Komentar Pribadi
Dengan adanya kemampuan
untuk komputasi maka pekerjaan yang dilakukan akan semakin mudah dan akan
menghemat waktu pengerjaan. Karena komputasi pararel menggunakan teknologi yang
bisa dibilang cukup canggih dan komputasi ini diterapkan pada super computer,
dimana super computer ini digunakan oleh negara-negara maju seperti Amerika
Serikat, China, Jerman dan negara maju lainnya. Tetapi masih banyak juga yang belum
menggunakan teknologi ini karena memakan biaya yang tidak sedikit, karena hal
itulah menyebabkan banyak negara belom menggunakan sistem teknologi ini dalam
skala besar termasuk Indonesia.