Jumat, 02 Juni 2017

Parallel Computing



Parallel computing atau komputasi paralel adalah salah satu teknik yang melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer yang independen secara bersamaan. Komputasi paralel ini umumnya digunakan saat kapasitas yang diperlukan sangat besar, baik untuk mengolah data ataupun karena tuntutan proses komputasi yang banyak dan biasanya ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi), dan lain-lainnya.

Untuk melakukan aneka 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 itu diperlukan aneka perangkat lunak pendukung yang biasa disebut dengan middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Salah satu middleware orisinal yang dikembangkan di Indonesia adalah openPC yang digawangi oleh GFTK LIPI dan telah diimplementasikan di LIPI Public Cluster.

Dalam komputasi paralel, ada yang disebut dengan pemrograman paralel yaitu teknik pemrograman komputer yang memungkinkan eksekusi operasi secara bersamaan, baik dalam komputer dengan prosesor tunggal maupun prosesor ganda pada CPU ayng berfungsi untuk meningkatkan performa komputasi. Performa dalam pemrograman paralel diukur dari berapa banyak speed-up yang diperoleh dalam teknik paralel. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering disebut dengan distributed computing.

Dalam pemrograman paralel, terdapat beberapa istilah diantaranya adalah:

  1. Embarasingly Parallel
    merupakan pemrograman paralel yang digunakan pada masalah-masalah yang di paralelkan tanpa membutuhkan komunikasi satu sama lain. Pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal. karena tanpa biaya komunikasi, dan lebih banyak peningkatan kecepatan yang bisa dicapai.
  2. Taksonomi dari model pemrosesan paralel dibuat berdasar alur instruksi dan alur data yang digunakan, seperti:
    a. SISD (Single Instruction Stream Single Data Stream) yang merupakan prosesor tunggal. Contohnya adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

    b. SIMD (Single Instruction Stream Multiple Data Stream) yang menggunakan banyak prosesor dengan instruksi yang sama, namun setiap prosesor mengolah data yang berbeda. Contohnya adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Cell Processor (GPU).

    c. MISD (Multiple Instruction Stream Single Data Stream) yang menggunakan banyak prosesor dengan setiap instruksi yang berbeda namun mengolah data yang sama.

    d. MIMD (Multiple Instruction Stream Multiple Data Stream) yang menggunakan banyak prosesor dengan setiap prosesor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Contohnya adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3, dan IBM BG/L.

Komputasi tunggal dan komputasi paralel memiliki beberapa perbandingan, diantaranya adalah:
  • Pada sistem komputasi paralel, terdiri dari beberapa unit prosesor dan beberapa unit memori. Terdiri dari dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message parsing. Berdasarkan cara mengorganisasikan memori ini, komputasi paralel dibedakan menjadi shared memory paralel machine dan distributed memory paralel machine.
  • Prosesor dan memori dalam mesin paralel dapat di interkoneksikan secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system, sedangkan interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
  • Komunikasi dara dari sistem paralel memori terdistribusi memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine) yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar tersebut memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.
  • Software yang diperlukan untuk komputasi paralel adalah PGI CDK, dimana aplikasi ini telah dilengkapi dengan Cluster Development Kit yang memiliki fitur lengkap jika ingin melakukan komputasi dengan paralel karena sudah supprt MPI untuk perhitungan komputasi.

Perkembangan Komputasi Paralel di Indonesia
Usaha untuk membangun infrastruktur mesin paralel sudah dimulai sejak era 90-an, meski belum pada tahap serius dan permanen. Namun untuk pemrograman paralel sudah sejak awal menjadi salah satu mata kuliah wajib di banyak perguruan tinggi terkait.

Baru pada tahun 2005, dimulai pembuatan infrastruktur mesin paralel permanen, yang dikembangkan oleh Grup Fisika Teoritik dan Komputasi di P2 Fisika LIPI. Karena perkembangan pemrograman paralel yang lambat, terutama dengan sumber daya manusia ayng menguasainya maka mesin paralel LIPI ini dibuka untuk publik secara cuma-cuma dalam bentuk LIPI Public Cluster (LPC) dan saat ini LPC telah menjadi gerbang komputasi GRID di Indonesia dengan kerja sama global menjadi IndoGRID.

Pada tahun berikutnya, dengan dukungan dana dari proyek Inherent Dikti, Fasilkom UI juga membangun mesin paralel. Pada tahun 2009, ITB membuat Cluster hibrid CPU dan GPU yang pertama di Indonesia dengan kemampuan hingga 60 inti CPU dan 1920 inti GPU.



Sumber:

Tidak ada komentar: