Saya adalah Ika Zahara, panggil aja Ika ato Zahara, hehe..

Sabtu, 02 April 2011

Kinerja Komputasi dengan Parallel Processing

Parallel processing atau pemrosesan parallel merupakan penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Kinerja Komputasi

Untuk mempersingkat waktu perhitungan ini, ada dua cara umum yakni:

1. Membuat prosesor yang lebih cepat.
2. Melakukan kalkulasi secara paralel dengan banyak prosesor.

Untuk cara pertama, jalur elektronik prosesor harus diperkecil agar sinyal mengalir makin pendek dan arus makin kecil. Sayangnya, teknologi manufaktur semikonduktor saat ini masih memakai teknik litografi dan sudah mendekati limitnya. Sebagai informasi, chip prosesor terkini (Intel i7) telah mencapai skala 45 nano meter. Jika diperkecil lagi, kemungkinan kesalahan dalam proses manufaktur membesar sehingga keandalannya makin turun.

Dengan demikian, harapan mempercepat komputasi yang masih terbuka lebar hanyalah dengan cara paralelisme. Pada paradigma ini, algoritma program harus dipecah menjadi beberapa lajur (thread) yang bisa dikerjakan secara bersamaan. Masing-masing lajur akan dikerjakan oleh satu prosesor, dan nanti hasil akhirnya dikumpulkan kembali. Secara teoritis, jika sebuah beban mampu diselesaikan oleh satu prosesor dalam waktu T, maka N buah prosesor akan mampu menyelesaikannya dalam waktu T/N.

Untuk mewujudkan komputasi paralel, diperlukan dukungan perangkat keras yang menyediakan banyak prosesor, dan juga sistem operasi untuk membagi beban komputasi ke seluruh prosesor tersebut. Sistem ini ternyata tidak mudah, sehingga pada awalnya, komputasi paralel hanya bisa dinikmati oleh sistem yang mahal dan besar seperti komputer super. Untunglah dengan berkembangnya jaman, komputasi paralel mulai bisa ditemukan pada komputer biasa.

Multiprocessor dan Multicore
Pada pasar PC, implementasi awal paralelisme adalah dengan memasang banyak CPU dalam satu komputer (multi-processor) (misal komputer dengan dual Pentium Pro). Kini, hal ini juga dicapai dengan memperbanyak jumlah prosesor dalam satu CPU (multi-core), mulai dari dual core dan kini quad core (misal Intel Xeon, Intel i7, AMD Phenom). Untuk komputer multi-processor atau multi-core ini, sistem operasi modern menyediakan fasilitas multithreading, atau symetric multi processing (SMP). Linux telah mendukung hal ini dari awal, sementara Windows memilikinya sejak Windows NT. Untuk melakukan pemrograman paralel pada sistem ini, bisa digunakan OpenMP.

Kluster komputer
Cara lebih kolosal untuk memperbanyak jumlah prosesor adalah dengan membangun komputer kluster. Pada sistem ini beberapa komputer dikoneksikan melalui jaringan, sehingga dapat bergotong royong menghitung beban komputasi. Salah satu model adalah sistem Beowulf, yang dapat dibangun dari komputer biasa dan dikoordinasi dengan sistem operasi Linux. Sebuah kluster Beowulf bisa memiliki hingga 1024 node, sehingga secaar teoritis, contoh kasus simulasi molekular sebelumnya bisa dihitung dalam waktu sekitar 1 minggu. Kekurangannya, sistem kluster ini besar, mahal dan sulit pembangunan maupun pemeliharaannya. Untuk sistem kluster, sistem operasi biasanya harus dilengkapi dengan perangkat madya (middle ware) yang menyediakan komunikasi antar proses melalui jaringan. Beberapa perangkat madya terkenal adalah Parallel Virtual Machine (PVM) atau Message Passing Interface (MPI).

GPGPU
Sementara itu dari jalan lain, berkembang teknologi Graphics Processing Unit (GPU) yang aslinya bertugas membantu CPU (sebagai co-processor) untuk mempercepat tampilan 3 dimensi (3D). GPU memiliki arsitektur khusus guna memproses pixel-pixel grafik secara parallel. Di dorong oleh kebutuhan KKT, maka GPU didorong menjadi General Purpose Graphics Processing Unit (GPGPU) yang juga dapat melakukan perhitungan matematis secara umum. Saat ini, GPU termaju (misal NVIDIA GTX 285) memiliki 240 core, dan dapat digabung hingga 3 buah GPU dalam satu komputer (3 way SLI). Jelas bahwa GPU merupakan cara memperbanyak core yang lebih murah dan ringkas dibanding dengan komputer kluster. Dukungan perangkat lunak untuk GPU paling hangat saat ini adalah CUDA, namun dalam waktu dekat, nampaknya akan muncul OpenCL.

sumber1
sumber2

Tidak ada komentar:

Posting Komentar