parallel processing

12
TUGAS SISTEM TERDISTRIBUSI (PARALLEL PROCESSING) TI 7B Disusun Oleh : Ahmad Kusaeri Andri Dwi Utomo Azis Fadhilah Irfan Yudhistiana S Tsuwaibatul Aslamiyah Atiyah Tahta N PRODI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI 1

Upload: epiepiepi

Post on 19-Jun-2015

5.272 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parallel Processing

TUGAS SISTEM TERDISTRIBUSI

(PARALLEL PROCESSING)

TI 7B

Disusun Oleh :

Ahmad Kusaeri

Andri Dwi Utomo

Azis Fadhilah

Irfan Yudhistiana S

Tsuwaibatul Aslamiyah

Atiyah Tahta N

PRODI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

1

Page 2: Parallel Processing

PARALLEL PROCESSING

Pengertian

Pemrosesan paralel (parallel processing) adalah penggunakan 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.

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan

memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan 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.

Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi

perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun

banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel

adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara

bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

Komputasi paralel membutuhkan:

· algoritma

· bahasa pemrograman

· compiler

2

Page 3: Parallel Processing

Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari

satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat

melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan.

Namun, parallel processing ini memerlukan software canggih yang disebut distributed

processing software.

Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa

program sekaligus. Parallel processing disebut juga parallel computing.

Contoh struktur pengiriman permintaan dan jawaban dari parallel processing

3

Page 4: Parallel Processing

Aristektur Komputer Parallel

Taksonomi Flynn dan model pemrosesan parallel

Keempat kelompok komputer tersebut adalah :

1. Komputer SISD (Single Instruction stream-Single Data stream)

Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga

dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada

umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single

processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional

(modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada

dalam kendali sebuah unit pengendali. Skema arsitektur global komputer SISD dapat dilihat pada

gambar .1 (a).

2. Komputer SIMD (Single Instruction stream-Multiple Data stream)

Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah

unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi

yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data

yang berbeda yang berasal dari aliran data yang berbeda pula. Skema arsitektur global komputer

SIMD dapat dilihat pada gambar .1 (b).

4

Page 5: Parallel Processing

3. Komputer MISD (Multiple Instruction stream-Single Data stream)

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan

mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit

pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan

bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam

bentuk prototipe untuk penelitian. Skema arsitektur global komputer MISD dapat dilihat pada

gambar .1 (c).

4. Komputer MIMD (Multiple Instruction stream-Multiple Data stream)

Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan

seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses.

Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan

disebut loosely coupled jika tingkat interaksi antara pemroses rendah.

Paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan

memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara

5

Page 6: Parallel Processing

umum komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila

dibandingkan dengan pemakaian komputasi pada komputer tunggal.

Berikut ini adalah gambar perbedaan antara komputasi tunggal dengan parallel komputasi :

a) Komputasi Tunggal / serial

b) Komputasi Paralel

Message Passing Interface (MPI).

MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat

sebuah 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.

6

Page 7: Parallel Processing

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 variabel 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 adalah

1. menulis kode paralel secara portable,

2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan

3. menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak

begitu cocok dengan model data paralel.

PVM (Parallel Virtual Machine)

Adalah paket software yang mendukung pengiriman pesan untuk komputasi parallel antar

komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan telah

portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan superkomputer.

Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang berjalan pada mesin

virtual masing-masing komputer. Mesin virtual akan dibuat, ketika User mengeksekusi aplikasi

PVM. PVM dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library

interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task . Library ini

berisikan rutin yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi

task dan konfigurasi mesin virtual.

Salah aturan main yang penting dalam PVM adalah adanya mekanisme program master dan

slave/worker. Programmer harus membuat Kode master yang menjadi koordinator proses dan

Kode slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer master.

Kode master dieksekusi paling awal dan kemudian melahirkan proses lain dari kode master.

Masing-masing program ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing

komputer. Jika arsitektur komputer untuk komputasi paralel semua sama, (misalnya pentium 4

7

Page 8: Parallel Processing

semua), maka program cukup dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasi

didistribusikan kekomputer lain yang akan menjadi node komputasi parallel. Program master

hanya berada pada satu node sedangkan program slave berada pada semua node.

Komunikasi dapat berlangsung bila masing-masing komputer mempunyai hak akses ke

filesystem semua komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan di

unix atau windows. Berikut adalah langkah pengaturan pada masing-masing komputer :

1. Buat file hostfile yang berisi daftar node komputer dan nama user yang akan dipakai untuk

komputasi parallel. Bila nama user pada semua komputer sama misalnya nama user riset pada

komputer C1, C2,C3 dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila

nama user di masing-masing komputer berbeda.

2. Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan

/etc/hosts/hosts.equiv.

3. Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole PVM.

Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.

Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling awal dan

kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu

atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin

awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID

ini bersifat unik dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang

mengembalikan nilai TID sehingga aplikasi user dapat mengidentifikasi task lain disistem.

8

Page 9: Parallel Processing

Secara umum, langkah implementasi komputasi parallel sebagai berikut :

1. Jalankan PVM daemon pada setiap mesin dalam cluster

2. Jalankan program master pada master daemon

3. Master daemon akan menjalankan proses slave.

9