komputasi pararel (landasan teori)

32
 II-1 BAB II DASAR TEORI II.1 Komputasi Paralel II. 1. 1 Pe ng enalan Kom put asi Paralel Pada umumnya sebuah perangkat lunak dibangun dengan menggunakan paradigma komputasi serial, di mana perangkat lunak tersebut dirancang untuk dieksekusi oleh sebuah sebuah mesin yang mempunyai sebuah CPU. Pada komputasi serial, permasalahan diselesaikan dengan serangkaian instruksi yang dieksekusi satu demi satu oleh CPU, di mana hanya satu instruksi yang bisa berjalan pada satu waktu saja. Hal ini akan memunculkan permasalahan untuk eksekusi  program yang membutuhkan sumber daya komputasi (prosesor dan memori) yang besar, yaitu waktu eksekusi yang panjang, padahal beberapa instruksi atau kumpulan instruksi sebenarnya dapat dieksekusi secara bersamaan tanpa mengganggu kebenaran program. Permasalahan yang muncul dalam komputasi serial tersebut dapat diatasi dengan menggunakan komputasi paralel, di mana waktu eksekusi program dapat dipersingkat dengan membagi program menjadi task-task  yang dapat dikerjakan secara terpisah untuk kemudian dieksekusi secara  paralel. Tidak semua task  dapat dikerjakan secara terpisah (sebagai contoh adalah penghitungan deret Fibonacci), sehingga tidak semua permasalahan dapat memperoleh keuntungan jika solusi  permasalahan tersebut dieksekusi secara paralel. Dalam pembagian task , diperlukan juga  pembangunan graf ketergantungan task  untuk menentukan ketergantungan antar task  (saat suatu task  membutuhkan hasil komputasi dari task  lain). Pembagian pogram menjadi task -task  juga harus memperhatikan granularity (perbandingan antara waktu komputasi dengan waktu komunikasi) dari task -task  tersebut. Semakin besar granularity (coarse-grained ), akan semakin kecil beban yang dibutuhkan untuk interaksi antar task . Tujuan utama penggunaan komputasi paralel adalah untuk mempersingkat waktu eksekusi  program yang menggunakan komputasi serial. Beberapa alasan lain yang menjadikan suatu  program menggunakan ko mputasi paralel antara lain : 1. Untuk permasalahan yang besar, terkadang sumber daya komputasi yang ada sekarang  belum cukup mampu untuk mendukung penyelesa ian terhadap permasalahan tersebut 2. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan atau internet

Upload: dion-prayoga

Post on 04-Jun-2018

234 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 1/32

 

II-1

BAB II

DASAR TEORI

II.1 Komputasi Paralel

II.1.1 Pengenalan Komputasi Paralel

Pada umumnya sebuah perangkat lunak dibangun dengan menggunakan paradigma komputasi

serial, di mana perangkat lunak tersebut dirancang untuk dieksekusi oleh sebuah sebuah mesin

yang mempunyai sebuah CPU. Pada komputasi serial, permasalahan diselesaikan dengan

serangkaian instruksi yang dieksekusi satu demi satu oleh CPU, di mana hanya satu instruksi

yang bisa berjalan pada satu waktu saja. Hal ini akan memunculkan permasalahan untuk eksekusi

 program yang membutuhkan sumber daya komputasi (prosesor dan memori) yang besar, yaitu

waktu eksekusi yang panjang, padahal beberapa instruksi atau kumpulan instruksi sebenarnya

dapat dieksekusi secara bersamaan tanpa mengganggu kebenaran program.

Permasalahan yang muncul dalam komputasi serial tersebut dapat diatasi dengan menggunakan

komputasi paralel, di mana waktu eksekusi program dapat dipersingkat dengan membagi program

menjadi task-task   yang dapat dikerjakan secara terpisah untuk kemudian dieksekusi secara

 paralel. Tidak semua task  dapat dikerjakan secara terpisah (sebagai contoh adalah penghitungan

deret Fibonacci), sehingga tidak semua permasalahan dapat memperoleh keuntungan jika solusi permasalahan tersebut dieksekusi secara paralel. Dalam pembagian task , diperlukan juga

 pembangunan graf ketergantungan task  untuk menentukan ketergantungan antar task  (saat suatu

task   membutuhkan hasil komputasi dari task   lain). Pembagian pogram menjadi task -task   juga

harus memperhatikan granularity  (perbandingan antara waktu komputasi dengan waktu

komunikasi) dari task -task   tersebut. Semakin besar granularity  (coarse-grained ), akan semakin

kecil beban yang dibutuhkan untuk interaksi antar task .

Tujuan utama penggunaan komputasi paralel adalah untuk mempersingkat waktu eksekusi

 program yang menggunakan komputasi serial. Beberapa alasan lain yang menjadikan suatu

 program menggunakan komputasi paralel antara lain :

1.  Untuk permasalahan yang besar, terkadang sumber daya komputasi yang ada sekarang

 belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan tersebut

2.  Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan atau internet

Page 2: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 2/32

 

II-2

3.  Penghematan biaya pengadaan perangkat keras, dengan menggunakan beberapa mesin

yang murah sebagai alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun

menggunakan n buah prosesor

4.  Adanya keterbatasan kapasitas memori pada mesin untuk komputasi serial

Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan untuk

eksekusi program mempunyai beberapa hambatan. Hambatan-hambatan tersebut antara lain

adalah :

1.  Hukum Amdahl : percepatan waktu eksekusi program dengan menggunakan komputasi

 paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program

yang harus dieksekusi secara serial.

2.  Hambatan yang diakibatkan karena beban jaringan : dalam eksekusi program secara

 paralel, prosesor yang berada di mesin yang berbeda memerlukan pengiriman dan penerimaan data (atau instruksi) melalui jaringan. Untuk program yang dibagi menjadi

task -task   yang sering membutuhkan sinkronisasi, network latency  menjadi masalah

utama. Permasalahan ini muncul karena ketika suatu task  membutuhkan data dari task  

yang lain, state  ini dikirimkan melalui jaringan di mana kecepatan transfer data kurang

dari kecepatan prosesor yang mengeksekusi instruksi task  tersebut. Hal ini menyebabkan

task   tersebut harus menunggu sampai data sampai terlebih dahulu, sebelum

mengeksekusi instruksi selanjutnya. Jumlah waktu yang dibutuhkan untuk berkomunikasi

melalui jaringan antar dua titik adalah jumlah dari startup time,  per-hop time, dan  per-

word transfer time.

3.  Hambatan yang terkait dengan beban waktu untuk inisiasi task , terminasi task , dan

sinkronisasi.

II.1.2 Arsitektur Komputer Paralel

Taksonomi Flynn membagi arsitektur komputer paralel dengan menggunakan sudut pandang

instruksi dan data, sehingga terdapat empat jenis arsitektur komputer paralel :

SISD

(Single Instruction, Single Data)

SIMD

(Single Instruction, Multiple Data)

MISD

( Multiple Instruction, Single Data)

MIMD

( Multiple Instruction, Multiple Data)

1.  SISD (Single Instruction, Single Data) : arsitektur ini adalah arsitektur yang mewakili

komputer serial, di mana hanya ada satu prosesor dan satu aliran masukan data (memori),

Page 3: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 3/32

 

II-3

sehingga hanya ada satu task   yang dapat dieksekusi pada suatu waktu. Arsitektur von

 Neumann termasuk dalam jenis ini.

2.  SIMD (Single Instruction, Multiple Data) : pada arsitektur ini, eksekusi sebuah instruksi

akan dilakukan secara bersamaan oleh beberapa prosesor, di mana suatu prosesor dapat

menggunakan data yang berbeda dengan prosesor lain. Karakteristik lain dari arsitektur ini

adalah alur eksekusi instruksi yang deterministik (state dari instruksi dan data pada suatu

waktu dapat dengan mudah diketahui). Arsitektur ini cocok untuk program yang dapat dibagi

menjadi task -task  yang mempunyai derajat keteraturan yang tinggi, misalnya sistem pengolah

grafik.

3.  MISD ( Multiple Instruction, Single Data) : pada arsitektur ini, berbagai instruksi akan

dieksekusi secara bersamaan oleh beberapa prosesor dengan menggunakan data yang sama.

Arsitektur ini kurang populer karena hanya sedikit permasalahan yang membutuhkan solusi

dengan menggunakan karakteristik arsitektur ini. Contoh permasalahan yang mungkin

membutuhkan arsitektur ini antara lain adalah multiple frequency filter  dan program pemecah

sandi yang menggunakan beberapa algoritma kriptografi sekaligus.

4.  MIMD ( Multiple Instruction, Multiple Data) : pada arsitektur ini, berbagai instruksi dapat

dieksekusi oleh beberapa prosesor di mana masing-masing prosesor dapat menggunakan data

yang berbeda. Eksekusi instruksi pada arsitektur ini dapat dilakukan secara sinkron (pada

suatu rentang waktu, jumlah instruksi yang dieksekusi oleh semua prosesor adalah sama)

maupun asinkron, deterministik maupun non-deterministik. Selain itu, arsitektur ini dapat

melakukan pekerjaan sesuai dengan karakteristik dari ketiga asitektur sebelumnya.

Pada komputasi paralel, cara pengaksesan memori mempunyai pendekatan yang berbeda dengan

komputasi serial. Pada umumnya, ada dua buah arsitektur memori pada komputer paralel, yaitu

shared memory dan distributed memory.

1.  Shared memory  : arsitektur ini menyediakan global addressing sehingga berbagai prosesor

mempunyai cara pengaksesan memori yang seragam. Setiap perubahan pada suatu lokasi

memori oleh suatu prosesor akan selalu terlihat oleh prosesor lain. Kelebihan dari arsitektur

ini antara lain adalah pengaksesan memori yang user friendly  dan performansi yang baik

dalam penggunaan data bersama antar task . Sedangkan kekurangannya antara lain adalah

kurangnya skalabilitas ketika terjadi penambahan prosesor, di mana akan terjadi peningkatan

traffic antara prosesor ke shared memory dan antara cache coherent system dengan memori

sebenarnya.

Page 4: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 4/32

 

II-4

Berdasarkan frekuensi akses, ada dua jenis shared memory :

a.  Uniform Memory Access  (UMA) : setiap prosesor memiliki hak pengaksesan yang

seragam dengan prosesor lain. UMA biasanya digunakan oleh mesin-mesin yang

mempunyai jenis prosesor yang sama (Symmetric Multiprocessor  / SMP). Istilah lain

yang sering digunakan untuk jenis shared memory  ini adalah CC-UMA atau Cache

Coherent  UMA, di mana cache coherent  mempunyai arti bahwa jika sebuah prosesor

mengubah isi suatu alamat di suatu memori, maka prosesor lainnya akan

mendapatkan nilai yang baru jika mengakses alamat memori tersebut. Cache

coherency dilakukan di tingkat hardware.

 b.   Non Uniform Memory Access  (NUMA) : tidak semua prosesor memiliki hak yang

sama dalam mengakses memori. Biasanya jenis ini digunakan oleh mesin yang

memiliki lebih dari satu jenis prosesor. Jenis NUMA yang mempunyai fasilitas cache

coherency disebut CC-NUMA.

Gambar II-1. (a)UMA, (b) CC-UMA, dan (c) NUMA

2.   Distributed memory : arsitektur ini mempunyai karakteristik di mana setiap prosesor memiliki

memorinya masing-masing, sehingga eksekusi instruksi dapat berjalan secara independen

antara satu prosesor dengan yang lain. Prosesor akan menggunakan jaringan ketika

membutuhkan akses ke memori non lokal. Akses ini sepenuhnya menjadi tanggung jawab

 penulis program. Kelebihan dari arsitektur ini adalah terjaganya skalabilitas ketika terjadi

 penambahan prosesor. Sedangkan kekurangannya adalah penulis program harus berurusandengan detail komunikasi data antara prosesor dan memori non lokal.

Page 5: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 5/32

 

II-5

Gambar II-2. Arsitektur distributed memory 

3.   Hybrid Distributed-Shared Memory  : gabungan antara arsitektur shared memory  dan

distributed memory. Arsitektur ini biasanya digunakan untuk sistem yang terdiri dari

 beberapa mesin yang memiliki kumpulan SMP (Symmetric Multiprocessor ), di mana antara

mesin satu dengan yang lain berkomunikasi menggunakan jaringan.

II.1.3 Komunikasi Antar Task 

Penggunaan komputasi paralel dapat dilakukan baik di tingkat sistem operasi, maupun di tingkat

 bahasa pemrograman. Secara umum, paradigma komputasi paralel dapat dibagi menjadi dua

 jenis, yaitu paralelisme implisit dan paralelisme eksplisit. Paralelisme implisit merupakan suatu

 pendekatan di mana penulis program tidak perlu memperhatikan masalah pembagian task   ke

 beberapa prosesor dan memori beserta sinkronisasinya. Pembagian task   dan sinkronisasi

ditangani oleh sistem di bawah program (sistem operasi atau virtual machine) atau oleh compiler .

Berbeda dengan komputasi paralel yang menggunakan paradigma paralelisme implisit, penulis

 program yang menggunakan paradigma paralelisme eksplisit harus memperhatikan dan

menangani masalah pembagian task  dan komunikasinya. Komunikasi antar dua atau lebih task  

 pada umumnya dilakukan dengan menggunakan shared memory atau message passing. Trade-off  

yang muncul pada kedua pilihan ini adalah trade-off   antara skalabilitas dengan kemudahan

 pemrograman.

1.  Shared memory 

Pada model komunikasi ini, task -task  menggunakan address space yang sama, di mana masing-

masing task   dapat menulis atau membaca secara asinkron. Berbagai mekanisme sinkronisasi

seperti lock  atau semaphore dibutuhkan untuk mengatur akses ke memori. Kelebihan dari model

komunikasi ini adalah penulis program tidak perlu memikirkan komunikasi antar task   secara

eksplisit. Model ini hanya dapat digunakan pada arsitektur komputer yang menggunakan shared

memory sebagai cara pengaksesan memori.

Page 6: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 6/32

 

II-6

2.   Message Passing 

Pada model komunikasi ini, setiap task   mempunyai address space  lokal, dan paradigma yang

digunakan adalah paradigma paralelisme eksplisit. Contoh sumber daya komputasi yang cocok

menggunakan pemodelan ini adalah beberapa workstation  yang dijadikan cluster . Sekumpulan

workstation  ini tidak mempunyai mekanisme khusus untuk saling berbagi address  space,

sehingga proses yang berjalan di salah satu workstation  hanya bisa melakukan akses terhadap

address space di mana proses tersebut berada. Akibat dari adanya address space yang terbagi-

 bagi ini adalah diperlukannya pembagian dan penempatan data secara eksplisit, serta

dibutuhkannya sinkronisasi antar proses (dua task  yang berada pada dua proses), di mana salah

satu proses membutuhkan data dari proses yang lain. Karakteristik ini juga dapat menyebabkan

 perilaku proses menjadi tidak alamiah, di mana suatu proses harus melayani permintaan data

sedangkan proses tersebut secara logis sebenarnya tidak mempunyai hubungan apa-apa dengan

 proses yang melakukan permintaan data tersebut. Kekurangan dari pemodelan komunikasi ini

adalah dibutuhkannya analisa terhadap program serial untuk menentukan bagian-bagian yang

dapat didekomposisi menjadi task -task   untuk kemudian dieksekusi secara paralel, dengan

memperhatikan aspek efisiensi dan efektifitas, agar keseluruhan komputasi dapat memberikan

hasil yang optimal.

II.1.4 Model Pemrograman

Untuk mempermudah pengembangan program di lingkungan komputasi paralel, dikembangkan

model pemrograman yang menjadi cara untuk menggambarkan struktur algoritma paralel, sesuai

dengan pilihan metode dekomposisi dan pemetaan proses. Model-model tersebut akan menjadi

 pendekatan dalam melakukan desain komputasi paralel. Model-model pemrograman tersebut

adalah :

1.   Data-Parallel Model : pada model ini, task  dipetakan secara statik pada proses dan masing-

masing proses melakukan operasi yang sama terhadap data yang berbeda secara konkuren.

Karena setiap task  melakukan operasi yang sama, maka metode dekomposisi yang digunakan

adalah data decomposition.

2.  Task Graph Model  : model pemrograman ini menggunakan dasar bahwa setiap komputasi

 paralel dapat digambarkan sebagai task-dependency graph. Model pemrograman ini

digunakan jika beban pemindahan data yang diperlukan suatu task  relatif lebih besar daripada

 beban komputasi task   tersebut. Pada umumnya task   dipetakan secara statis agar beban

 pemindahan data antar task  bisa dikurangi.

Page 7: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 7/32

 

II-7

3.  Work Pool Model  : model pemrograman ini mempunyai karakteristik yaitu pemetaan task  

dilakukan secara dinamis, sehingga setiap proses mempunyai kemungkinan yang sama dalam

mengeksekusi suatu jenis task . Pointer   ke suatu task   yang sedang dieksekusi oleh suatu

 proses diletakkan pada satu tempat (dapat sebagai list , queue, atau hash  table). Model ini

dipilih ketika beban pemindahan data yang diperlukan oleh suatu task   relatif lebih kecil

daripada beban komputasi task tersebut, sehingga pemindahan data pada saat runtime  tidak

merupakan beban yang berarti, yang mempengaruhi efisiensi keseluruhan komputasi.

4.   Master Slave Model  : pada model premrograman ini, satu atau lebih proses master  

membangkitkan task  dan memetakannya ke proses slave secara dinamis. Proses master  dapat

memetakan task   ke proses slave  secara seimbang jika proses master   bisa memperkirakan

 beban komputasi task   yang dibangkitkannya. Jika beban komputasi task   tidak dapat

diperkirakan, proses master   akan menjadi sumber bottleneck   keseluruhan komputasi, yaitu

 pada kondisi waktu yang dibutuhkan untuk pembangkitan task  tidak seimbang dengan waktu

yang dibutukan oleh suatu proses slave  saat mengeksekusi task   yang sedang dibebankan

 padanya.

5.  Pipeline / Producer-Consumer Model  : pada model pemrograman ini, data mengalir dari

suatu proses ke proses suksesornya (output  dari proses yang satu menjadi input  dari proses

yang lain). Pendekatan ini biasa disebut dengan stream  parallelism, di mana operasi-operasi

yang bebeda dilakukan terhadap aliran data. Overhead   dapat terjadi jika salah satu proses

yang terlibat dalam rantai  producer-consumer   mempunyai beban komputasi yang besar,

sehingga proses suksesornya harus menunggu lama sampai komputasi tersebut

selesai[GRA03].

II.2 Komputasi Paralel Message Passing

Sesuai dengan namanya, karakteristik dasar dari komputasi paralel ini adalah message passing

atau pertukaran pesan. Pertukaran pesan dilakukan oleh prosesor-prosesor yang terlibat dalam

komputasi paralel untuk melakukan komunikasi yang berupa pertukaran data dan sinkronisasi

antar prosesor[GRA03]. Organisasi lojik dari sebuah sistem message-passing adalah sekumpulan

simpul pemrosesan. Setiap simpul pemrosesan tersebut dapat terdiri dari satu prosesor. Dalam

sistem seperti ini, setiap simpul pemrosesan berinteraksi dengan medium pesan (message).

Pertukaran pesan digunakan untuk pengiriman data, pengiriman kerja, atau pun sinkronisasi aksi

antar proses. Sistem message-passing juga memungkinkan setiap proses mengeksekusi program

yang berbeda.

Page 8: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 8/32

 

II-8

Jaringan komputer message passing  dibuat dengan menghubungkan sekumpulan komputer

melalui sebuah jaringan interkomunikasi. Setiap komputer memiliki sebuah prosesor dan memori

lokal, seperti ditunjukkan pada Gambar II-3, dan komunikasi antar komputer dilakukan melalui

 jaringan interkoneksi. Jaringan interkoneksi digunakan untuk pengiriman pesan antar komputer.

Pesan tersebut berisikan data yang diperlukan dalam komputasi.

Gambar II-3 Model Komputer Message Passing

II.2.1 MPI

MPI ( Message Passing Interface) adalah standar yang dikembangkan untuk mengatasi masalah

 portabilitas program antar arsitektur komputer paralel, yaitu agar program yang dikembangkan

dengan menggunakan pemodelan message passing pada suatu mesin dapat berjalan di mesin lain.

Standar ini dikembangkan karena pada awalnya setiap mesin mempunyai mekanisme / library 

masing-masing untuk melakukan message  passing. Pada saat ini, implementasi MPI sudah

tersedia di hampir semua komputer paralel.

 Library MPI mengandung 125 rutin yang harus diimplementasikan oleh vendor  mesin. Di antara

125 rutin tersebut, 6 buah rutin utama yang minimal harus dipakai untuk mengembangkan sebuah

aplikasi adalah (implementasi MPI dalam C) [MPI95].

Tabel II-1 Fungsi Dasar MPI

MPI _I ni t Rutin untuk inisialisasi MPI

MPI _Fi nal i ze Rutin untuk terminasi MPI

Page 9: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 9/32

 

II-9

MPI _Comm_si ze Rutin untuk mendapatkan jumlah proses

MPI _Comm_r ank Rutin untuk mendapatkan label dari pemanggil rutin ini

MPI _Send Rutin untuk mengirim sebuah pesan

MPI _Recv Rutin untuk menerima sebuah pesan

Selain fungsi-fungsi dasar diatas, [WIL99] menyebutkan ada beberapa fungsi dasar tambahan

dalam MPI. Fungsi-fungsi ini disebutkan dalam tabel di bawah:

Tabel II-2 Fungsi Dasar Tambahan MPI

MPI _Bcast Mengirim pesan yang sama ke banyak komputer (operasi

broadcast )MPI _Scat t er

Mengirim tiap elemen array dari data ke komputer yang berbeda

(operasi scatter )

MPI _Gat her Sebuah komputer mengumpulkan data dari beberapa komputer lain(operasi gather )

Ketiga fungsi di atas, dimodelkan dalam gambar-gambar di bawah:

Gambar II-4 MPI_Broadcast

Page 10: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 10/32

 

II-10

Gambar II-5 MPI_Scatter

Gambar II-6 MPI_Gather

Selain rutin, spesifikasi MPI juga menyediakan tipe data dan konstanta yang juga menggunakan

 prefiks MPI _ . Sebagai contoh, berikut ini adalah pemetaan tipe data pada implementasi MPI

dalam C dengan tipe data pada C.

Tabel II-3 Tipe Data MPI

MPI _CHAR signed char

MPI _SHORT signed short intMPI _I NT signed int

MPI _LONG signed long int

MPI _UNSI GNED_CHAR unsigned char

MPI _UNSI GNED_SHORT unsigned short int

MPI _UNSI GNED unsigned int

Page 11: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 11/32

 

II-11

MPI _UNSI GNED_LONG unsigned long int

MPI _FLOAT Float

MPI _DOUBLE Double

MPI _LONG_DOUBLE long double

Setiap program MPI harus diawali dengan pemanggilan rutin MPI _I ni t . Tujuan dari

 pemanggilan rutin ini adalah untuk menyiapkan lingkungan MPI. MPI _Fi nal i ze digunakan

untuk melakukan terminasi program MPI, dan akan membersihkan semua sumber daya yang

digunakan oleh lingkungan MPI.

Salah satu konsep utama dari MPI adalah communication domain, yaitu kumpulan dari proses

yang dapat berkomunikasi antara satu dengan yang lainnya. Informasi mengenai communication 

domain dapat diletakkan pada variabel dengan tipe data MPI _Comm, yang biasa disebut dengan

communicator . Communicator   ini digunakan sebagai argumen pemanggilan rutin oleh semua

rutin pengiriman pesan. Sebuah proses dapat mempunyai relasi ke satu atau lebih communicator  

(pemetaan m ke n). Sekumpulan proses yang berada pada satu communicator   membentuk

communication domain yang telah disebutkan sebelumnya. MPI mendefinisikan sebuah standar

communicator   yaitu MPI _WORLD. Communicator   MPI _WORLD  ini terdiri dari semua proses

yang terlibat dalam komputasi paralel, sehingga dimungkinkan setiap proses dapat mengirim

 pesan ke salah satu atau semua proses lainnya.

Untuk mengetahui informasi mengenai suatu communicator , MPI menyediakan rutin

MPI _Comm_si ze  dan MPI _Comm_r ank. MPI _Comm_si ze  adalah rutin yang digunakan

untuk mengetahui jumlah proses yang berada pada suatu communicator . Sedangkan

MPI _Comm_r ank  adalah rutin yang digunakan untuk mengetahui label (identitas) dari

 pemanggil rutin tersebut.

II.2.2 MPICH

MPICH (MPI CHameleon) merupakan salah satu implementasi dari standar MPI. MPICH

didesain dengan tujuan untuk mengkombinasikan portabilitas dengan performansi yang tinggi.

Komputer paralel NoW dan MPICH sebagai satu kesatuan akan disebut sebagai sistem message-

 passing. Dalam tugas akhir ini, digunakan MPICH versi nt.1.2.5 yang merupakan implementasi

dari standar MPI versi 1.1.

Page 12: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 12/32

 

II-12

Dalam sebuah komputer paralel NoW, MPICH merupakan kesatuan dari implementasi library

MPI dan daemon pengeksekusi program paralel. Pada setiap komputer dalam komputer paralel

 NoW terdapat daemon  yang bertugas untuk mempersiapkan, inisiasi eksekusi suatu program

 paralel, serta mengakhiri suatu eksekusi program paralel.

Penciptaan proses dalam MPI tidak didefinisikan dalam standar MPI sehingga sangat tergantung

 pada implementasi. Dalam MPI, hanya penciptaan proses secara statik yang didefinisikan. Hal ini

 berarti semua proses mesti didefinisikan sebelum eksekusi dan semua proses harus dimulai secara

 bersamaan.

Sintaks perintah untuk memulai suatu eksekusi program MPI adalah

mpi r un –np 4 pr ogr am. exe

Perintah untuk memulai suatu eksekusi program MPI ( mpi r un) dengan 4 proses ( - np 4)

untuk progr am. exe

Baris perintah mpirun cukup dimasukkan di salah satu komputer dalam komputer paralel NoW.

Komputer dimana baris perintah mpirun dieksekusi disebut sebagai komputer launcher .

Komputer launcher akan membuat sebuah proses bernama launcher   yang akan menginisiasi

eksekusi suatu program paralel. Secara umum, launcher akan menugaskan setiap daemon  pada

komputer lain untuk mengeksekusi program paralel, kemudian daemon  akan menginisiasi

eksekusi program paralel dan memberikan informasi pada launcher  ketika program paralel telah

selesai dieksekusi pada komputer tersebut.  Launcher   akan menyelesaikan eksekusi program

 paralel saat semua daemon yang bekerja telah melaporkan akhir eksekusi program paralel oleh

setiap komputer.

II.3 Network of Workstations Untuk Komputasi Paralel

 NoW adalah jaringan komputer yang terdiri dari workstation-workstation yang digunakan untuk

memenuhi kebutuhan pemakaian sehari-hari. Jaringan komunikasi untuk NoW sebagian besar

 bertipe ethernet  dengan topologi bus atau star . Jaringan komputer yang digunakan dalam tugas

akhir ini juga bertipe ethernet dengan topologi star .

Page 13: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 13/32

Page 14: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 14/32

 

II-14

commcomp par  t t t    +=   (Rumus II-1)

compt  = waktu komputasi

commt  = waktu komunikasi

II.5 Performansi Komputer Paralel Message Passing

Performansi didefinisikan sebagai total waktu eksekusi program. Dalam tugas akhir ini, akan

digunakan pengukuran waktu eksekusi dengan konsep response time atau turnaround time. 

Waktu eksekusi yang singkat menunjukkan performansi yang semakin tinggi. Salah satu tujuan

utama eksekusi program secara paralel dengan banyak prosesor adalah pengurangan waktu

eksekusi dibandingkan dengan eksekusi serial oleh satu prosesor. Karena commcomp par  t t t    +=  

maka performansi komputasi paralel suatu NoW dibagi menjadi performansi komunikasi dan

 performansi komputasi.

II.5.1 Performansi Komputasi Teoritis

Waktu komputasi ( compt  ) dapat diperkirakan dengan cara yang sama untuk algoritma sekuensial.

Jika satu proses dieksekusi bersamaan, hanya diperlukan jumlah komputasi pada proses yang

 paling kompleks. Analisis terhadap waktu komputasi dilakukan dengan asumsi semua prosesor

sama dan beroperasi pada kecepatan yang sama. Hal ini benar untuk komputer paralel yang

didesain secara khusus tapi belum tentu benar untuk komputer paralel NoW.

Waktu komputasi ( compt  ) dalam eksekusi paralel akan dinormalisasi dalam ukuran satuan

eksekusi operasi aritmatika yang tergantung pada sistem yang dipakai. Satuan tersebut

menyatakan waktu yang diperlukan untuk eksekusi satu operasi aritmatika (   ÷×−+ ,,,  ), ataucpt  .

Jika suatu komputasi memerlukan sejumlah 1k   langkah maka cp1 t k t comp   ×=  

Dalam suatu lingkungan pemrograman paralel, komputer yang dipergunakan dapat memiliki

kemampuan komputasi yang berbeda. Kemampuan komputasi tiap komputer akan dinyatakan

dalam suatu satuan Floating Point Instruction  per Second   (FLOPS). Satuan FLOPS dipakai

karena sebagian besar program paralel melakukan komputasi numerik dan komputasi numerik

Page 15: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 15/32

 

II-15

tersebut adalah perhitungan terhadap angka bertipe floating point . Dari FLOPS tiap-tiap komputer

ditentukan satuan waktu yang diperlukan untuk eksekusi satu satuan Floating Point Instruction

(FLOP). Waktu untuk eksekusi satu satuan FLOP adalah cpt   bagi masing-masing komputer. 

Untuk lingkungan dengan komputer yang sama, cpt  akan sama untuk tiap komputer karena

 performansi komputasi tiap komputer sama.. Sedangkan untuk lingkungan dengan komputer yang

memiliki performansi beragam, cpt  akan diambil dari komputer dengan performansi terendah

karena komputer dengan performansi terendah akan mendominasi waktu komputasi secara

keseluruhan.

II.5.2 Performansi Komunikasi Teoritis

Dengan mengetahui bandwidth suatu jaringan komputer dapat ditentukan besarnya waktu yang

diperlukan untuk pengiriman satu satuan data (  bt  ). Sedangkan, secara teoritis,waktu pengiriman

suatu data ( transmisit  ) dengan panjang b satuan data dapat dinyatakan dalam rumus [WIL99]:

 bstartuptransmisi t bt t    ×+=   (Rumus II-2)

Dimana startupt  adalah waktu startup atau seringkali disebut dengan message latency  atau sering

disingkat latency. Latency adalah waktu yang diperlukan untuk pengiriman pesan tanpa data atau

waktu yang diperlukan untuk mempersiapkan data yang dikirimkan dan mempersiapkan data

yang diterima. Menurut [PAT04], latency pada Local Area Network  (LAN) untuk Ethernet (IEEE

802.3) adalah 3000 milidetik, Fast Ethernet   (IEEE 802.3u) 500 milidetik , Gigabit Ethernet

(IEEE 802.3ab) 340 milidetik, dan 10 Gigabit Ethernet   (802.3ae) 190 milidetik . Seperti

ditunjukkan grafik pada Gambar II-7, waktu startup atau latency diasumsikan konstan sedangkan

waktu transmisi data menaik secara linear sesuai dengan penambahan jumlah data yang

ditransmisikan.

Page 16: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 16/32

Page 17: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 17/32

 

II-17

Speedup maksimum adalah n dengan n prosesor. Speedup maksimum n  dapat dicapai jika

komputasi dapat dibagi menjadi proses-proses dengan durasi yang sama dengan tiap proses

dipetakan ke satu prosesor dan tidak ada overhead .

n

nt 

t nS    ==

/

)(

ser 

ser   

Menurut [WIL99], ada beberapa faktor yang merupakan overhead   pada komputasi paralel dan

membatasi speedup,

1. Periode ketika tidak semua prosesor melakukan komputasi.

2. Komputasi tambahan pada komputasi paralel yang tidak ada pada komputasi serial, misal:

 penghitungan nilai variabel yang diperlukan untuk membagi task  ke komputer-komputer

yang tersedia.

3. Waktu komunikasi untuk pengiriman pesan.

Peningkatan kecepatan komputasi yang ideal untuk komputasi dengan n prosesor dibandingkan

dengan 1 prosesor adalah sebesar n. Pada praktek, hal ini jarang terjadi. Karena pada komputasi

 paralel ada bagian yang harus dieksekusi secara serial pada satu komputer. Komputasi yang ideal

adalah ketika semua prosesor bekerja bersamaan.

Jika fraksi komputasi yang tidak dapat dibagi-bagi menjadi bagian-bagian konkuren adalah  f  dan

tidak ada overhead yang terjadi ketika pembagian komputasi menjadi bagian-bagian paralel,

waktu yang diperlukan untuk melakukan komputasi dengan n  buah prosesor (  par t  ) adalah

[WIL99]:

n

t  f t  f t  par 

ser ser 

)1(   ×−

+×=   (Rumus II-4)

dengan s  adalah total waktu yang dibutuhkan untuk melakukan keseluruhan komputasi secara

serial. Maka, speedup factor  menjadi,

 f nn

n

t  f t  f 

t nS ×−+

=

×−

=

)1(1)1()(

ser ser 

ser    (Rumus II-5)

 persamaan di atas dikenal sebagai Hukum Amdahl [WIL99].

.

Page 18: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 18/32

 

II-18

II.6.2 Granularity

Pada pemrograman paralel, ada pembagian proses komputasi menjadi beberapa proses.

Granularity adalah besar ukuran proses. Pada coarse granularity komputasi dibagi menjadi sub-

sub komputasi yang berukuran sangat besar sehingga sebuah proses dapat terdiri dari ratusan ribu

sampai jutaan instruksi serial. Pada fine granularity komputasi dibagi menjadi sub-sub komputasi

yang berukuran sangat kecil sehingga sebuah proses mungkin terdiri dari ratusan, sampai satu

instruksi saja. Medium granularity terletak di tengah-tengah coarse dan fine [WIL99].

Dalam pemecahan suatu problem, saat pembagian problem menjadi bagian-bagian

 paralel, pada satu saat waktu komunikasi akan mendominasi waktu komputasi. Menurut [WIL99],

 ygranularit t 

t ===

comm

comp

komunikasiwaktu

komputasiwaktukomunikasikomputasirasio (Rumus II-6)

rasio antara komputasi dan komunikasi dapat digunakan sebagai ukuran untuk granularity (G).

Dengan adanya overhead implementasi, maka granularity  pada NoW dirumuskan dengan rumus

 berikut [AVI06] :

comm

comp

t t 

t G

+

=

oi

  (Rumus II-7)

Dalam tugas akhir ini, yang digunakan sebagai rumusan granularity adalah

(Rumus II-7.

II.6.2.1 Granularity Minimum

Granularity  minimum ( minG ) yaitu nilai granularity sehingga waktu eksekusi paralel paling

sedikit sama dengan waktu eksekusi serial atau speedup paling kecil adalah satu. Rumusan nilai

minG  untuk suatu sistem paralel adalah :

( ))1(

)1(min

 f  f nn

 f  f nG

−+×−

−+×=   (Rumus II-8)

Page 19: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 19/32

 

II-19

dengan n adalah jumlah komputer dan f adalah fraksi komputasi yang tidak bisa dibagi

lag[AVI06].

II.6.2.2 Granularity OptimumDalam hubungannya dengan nilai granularity, speedup dapat dirumuskan sebagai berikut

[AVI06]:

1

)1(

+

−+

=

G

n

 f  f 

G

ν   

dengan mengganggap

n

 f  f 

)1(

1

−+

=µ   maka,

1+

×=

G

Gµ ν    (Rumus II-9)

Dari rumusan di atas, terlihat bahwa penambahan granularity  secara terus-menerus tidak akan

menambah speedup secara signifikan, nilai speedup hanya mendekati .

µ µ 

ν    =

+

×

∞→

=

1lim

G

G

Untuk komputasi serial yang seluruhnya dapat dibagi-bagi menjadi bagian konkuren atau sebuah pembagian ideal untuk komputasi paralel, nilai µ   sama dengan jumlah proses (n). Secara teoritis,

fungsi speedup terhadap granularity untuk pembagian ideal tersebut adalah.

1+

×=

G

Gnν    (Rumus II-10)

Rumusan ini diperlihatkan pada Gambar II-8 di bawah.

Page 20: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 20/32

 

II-20

Gambar II-8 Grafik Ideal Speedup terhadap Granularity

Dari grafik pada Gambar II-8 di atas terlihat ada nilai granularity optimum ( optG ) yaitu suatu

nilai granularity dimana penambahan granularity setelah optG   tidak menambah speedup  secara

signifikan atau suatu nilai granularity dimana kurva speedup mulai mendatar [AVI06].

II.6.3 Skalabilitas

Sebuah sistem paralel disebut scalable  jika sistem tersebut memiliki kemampuan untuk

mempertahankan efisiensi bersamaan dengan peningkatan jumlah elemen pemrosesan dan jumlahdata yang diproses. Skalabilitas sebuah sistem paralel adalah ukuran kapasitas sistem tersebut

untuk meningkatkan speedup yang sebanding dengan jumlah elemen pemrosesan. Skalalabilitas

dapat dibagi menjadi skalabilitas perangkat keras dan skalabilitas algoritmik. Skalabilitas

 perangkat keras dalam sebuah komputer paralel adalah peningkatan performansi suatu eksekusi

 program paralel jika ada peningkatan jumlah komputer atau prosesor pengeksekusi. Skalabilitas

algoritmik adalah kemampuan sebuah sistem paralel untuk mempertahankan performansi seiring

dengan peningkatan jumlah langkah komputasi sebanding dengan peningkatan jumlah data.

Skalabilitas merepresentasikan kemampuan sebuah sistem paralel untuk menggunakan peningkatan jumlah elemen pemrosesan secara efektif. Skalabilitas ideal direpresentasikan dalam

gambar di bawah. Sistem dengan skalabilitas ideal memiliki speedup  yang sebanding dengan

 jumlah elemen pemrosesan.

Page 21: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 21/32

 

II-21

Gambar II-9 Peningkatan Speedup Ideal terhadap Jumlah Elemen Pemrosesan

II.6.4 Model Algoritma

Pemodelan algoritma paralel ditentukan oleh perancangan dekomposisi, tasks, graf

ketergantungan, serta jumlah proses yang akan digunakan dalam suatu program.

II.6.4.1 Model Data-Parallel

Model data-parallel adalah model algoritma paralel yang paling sederhana. Pada model ini, kerja

setiap proses ditentukan di awal dan setiap proses melakukan kerja yang sama terhadap data yang

 berbeda. Pada model paralel yang disebut data-parallelism  ini, operasi yang sama dilakukan

secara konkuren terhadap data atau bagian data yang berbeda. Kerja setiap proses dapat dilakukan

secara bertahap dan data yang dikerjakan dalam setiap tahap mungkin berbeda. Secara umum,

tahap-tahap dalam komputasi secara data-parallel diselingi dengan sinkronisasi kerja atau untuk

mendapatkan data baru untuk dikerjakan. Karena setiap kerja melakukan komputasi yang sama,

dekomposisi persoalan menjadi kerja dilakukan berdasarkan partisi dari data yang sudah cukup

untuk menjamin keseimbangan pembagian kerja.

Komputasi paralel ideal tercapai jika komputasi total dapat dibagi menjadi bagian-bagian yang

tidak saling tergantung dan dapat dieksekusi secara bersamaan. Komputasi paralel ini disebut

 Embarassing / pleasantly parallel. Komputasi  pleasantly parallel sejati tidak memerlukan

komunikasi antar proses. Setiap proses mengerjakan data yang berbeda dan menghasilkan

keluaran tanpa memerlukan hasil keluaran dari proses lain.

Page 22: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 22/32

 

II-22

Gambar II-10 Model Komputasi Paralel Ideal

II.6.4.2 Model Master-Slave

Pada model  Master-Slave  atau kadang-kadang disebut manager-worker , satu atau beberapa

 proses yang disebut  Master   membangkitkan kerja dan mengalokasikannya pada proses-proses

yang disebut Slave. Setiap kerja dapat dialokasikan secara statik sebelum eksekusi program ataudialokasikan secara dinamik sebagai mekanisme load balancing. Pada alokasi secara dinamik,

 proses-proses dialokasikan beban kerja yang berbeda. Pengalokasian secara dinamik cocok jika

waktu yang diperlukan  Master   untuk membangkitkan kerja bagi seluruh proses relatif lama.

Komputasi dalam model Master-Slave dapat dilakukan secara bertahap dengan sinkronisasi antar

 Master  dan Slave dalam setiap pergantian tahapan.

Gambar II-11 Model Eksekusi Paralel Master-Slave

Model Master-Slave dapat digunakan sebagai varian lain untuk model data-parallel. Pada model

ini, pada saat awal komputasi dan akhir komputasi hanya ada satu proses yang beroperasi

sendirian. Proses  Master pada awal eksekusi akan mengirimkan data ke seluruh Slave kemudian

Slave akan memproses data tersebut dan kemudian  Master   akan mengumpulkan seluruh hasil

 pemrosesan dari Slave.

Kumpul Hasil

Master

Slave

Kirim Data

Proses

 Hasil

 Data Masukan

Page 23: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 23/32

 

II-23

Gambar II-12 Model Eksekusi Paralel Master-Slave Berulang

Pada eksekusi model data-parallel  atau pun  Master-Slave  yang dilakukan bertahap, dilakukan

sinkronisasi antar proses untuk saling berbagi data yang diperlukan atau pun mengumpulkan data

 pada suatu proses dan mendapatkan data baru untuk dikerjakan.

Gambar II-13 Model Algoritma Paralel dengan Sinkronisasi

 Master

Slave

Kirim

Proses

Kumpul Hasil

Kumpul Hasil

Kirim Data

KirimSlave

Proses

 Aktif

WaitSinkronisasi

Page 24: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 24/32

Page 25: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 25/32

 

II-25

sebuah problem menjadi subproblem dengan bentuk sama seperti problem semula. Subproblem

akan dibagi-bagi lagi menjadi subproblem yang lebih kecil secara rekursif.

Gambar II-16 Pembagian Persoalan secara Divide & Conquer 

Subproblem akhir akan diselesaikan sehingga menjadi subsolusi. Subsolusi tersebut akan

digabungkan menjadi subsolusi yang semakin besar sampai menjadi solusi terhadap problem

awal (solusi akhir).

Gambar II-17 Penggabungan Solusi secara Divide & Conquer

II.7 Model Algoritma Paralel untuk Komputer Paralel NOW

Karakteristik utama yang membedakan komputer paralel NOW dengan komputer paralel yang

didesain secara khusus adalah waktu komunikasi yang relatif jauh lebih besar dibandingkan

dengan waktu komputasi. Hal tersebut disebabkan karena kecepatan pemrosesan oleh prosesor

relatif sangat besar dibandingkan bandwidth dari jaringan komputer pada NOW. Oleh karena itu,

 program paralel yang relatif lebih cocok untuk komputer paralel NOW adalah program yang

memiliki waktu eksekusi komputasi yang jauh lebih besar daripada komunikasi. Program paralel

yang bagian komputasi lebih besar daripada bagian komunikasi disebut dengan computation

intensive sedangkan sebaliknya disebut data intensive.

Sub solusi

Penggabung

an Solusi

Solusi Akhir 

Problem awal

Pembagi

an

Page 26: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 26/32

 

II-26

Pemilihan model algoritma paralel yang cocok untuk komputer paralel NOW ditentukan oleh

 banyaknya komunikasi untuk pengiriman data yang diperlukan. Model algoritma yang

membutuhkan banyak pengiriman data dapat dipastikan tidak cocok untuk dieksekusi pada

komputer paralel NOW.

Analisis untuk model-model berikut, akan dilakukan dengan asumsi eksekusi program paralel

hanya dilakukan satu kali dan jumlah tranmisi dalam komunikasi seminimal mungkin. Dalam

algoritma sebuah program paralel, pekerjaan yang direpresentasikan oleh model berikut dapat

dilakukan berulang-ulang. Asumsi ini dipilih karena komputer paralel NOW memiliki

 performansi komunikasi yang relatif lebih rendah dan jika program paralel sudah memiliki

 performansi yang buruk untuk satu kali eksekusi maka eksekusi berulang-ulang akan memiliki

 performansi yang jauh lebih buruk.

II.7.1 Model Data-Parallel

Model data-parallel dapat diabaikan dalam komputer paralel NOW karena secara praktis,

eksekusi program paralel dalam suatu lingkungan NOW membutuhkan komunikasi. Komunikasi

yang diperlukan dalam komputer paralel NOW setidak-tidaknya mencakup komunikasi untuk

mempersiapkan proses-proses yang akan terlibat dalam eksekusi program paralel. Di samping itu,

komputer paralel NOW yang memiliki bandwidth komunikasi yang cukup tinggi sehingga waktu

komunikasi tidak dapat diabaikan. Jadi, model data-parallel tidak mungkin dalam komputer

 paralel NOW. 

II.7.2 Model Master-Slave

Untuk eksekusi paralel  Master-Slave seperti pada Gambar II-11, diperlukan pengiriman data

sebanyak n - 1 (jumlah Slave) dan pengiriman data sebanyak n – 1 untuk fase kumpul hasil.

Sehingga, total transmisi data yang diperlukan adalah )1(2   −× n .

II.7.3 Model Pipeline

Pada proses  pipeline, ada sebanyak m instans data yang akan dilewatkan kepada sebanyak n

 proses untuk diproses. Jumlah transmisi data yang diperlukan untuk setiap instans adalah 1−n .

Jika ada sebanyak m  instans data yang harus diproses dalam  pipeline, total transmisi data yang

diperlukan adalah )1(   −× nm .

Page 27: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 27/32

Page 28: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 28/32

Page 29: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 29/32

 

II-29

and conquer  pohon biner membutuhkan waktu startup sebesar startup)1(2 t n   ×−×  dengan n adalah

 jumlah proses yang terlibat dalam eksekusi program paralel. Model  Master-Slave dengan rutin

komunikasi kolektif  MPI_Scatter dan MPI_Gather ternyata membutuhkan waktu startup 

yang lebih sedikit dibandingkan model task-graph atau pun Master-Slave dengan MPI_Send dan

MPI_Recv. 

Perbedaan performansi kedua primitif komunikasi tersebut dapat juga dilihat dari hasil

eksperimen untuk menghitung performansi MPI_Scatter dan MPI_Gather MPI_Send 

dan MPI_Recv. Lampiran D.1 dan D.2 berisi data hasil eksperimen performansi primitif

komunikasi MPICH. Gambar III-15 dan III-16 menunjukkan salah satu hasil pengukuran

 performansi untuk tujuh prosesor dan panjang pesan sampai 2 MegaByte.

Scatter dan Send

-1.00000

0.00000

1.00000

2.00000

3.00000

4.00000

5.00000

6.00000

7.00000

8.00000

0 500,000 1,000,000 1,500,000 2,000,000 2,500,000

Panjang pesan (byte)

   W  a   k   t  u   (  s  e   k  o  n   )

Scatter 7 Komp

Send 7 Komp

 

Gambar II-18 Perbandingan performansi MPI_Scatter dan MPI_Send

Gambar II-18 menunjukkan bahwa performansi MPI_Scatter  jauh lebih baik dibandingkan

 performansi dengan  MPI_Send. Sedangkan performansi MPI_Gather  seperti yang

ditunjukkan pada Gambar II-19 cenderung sama dengan MPI_Recv  tetapi performansi

MPI_Recv  masih lebih rendah dari MPI_Gather.

Page 30: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 30/32

 

II-30

Gather dan Recv

0.000000

0.500000

1.000000

1.500000

2.000000

2.500000

0 500,000 1,000,000 1,500,000 2,000,000 2,500,000

Panjang pesan (byte)

   W  a   k   t  u   (  s  e   k  o  n   )

Gather 7 KompRecv 7 Komp

 

Gambar II-19 Perbandingan performansi MPI_Gather dan MPI_Recv

Hasil pengukuran performansi di atas ditambah dengan informasi bahwa dalam lingkungan LAN

komputer paralel NOW bahwa waktu startup dapat mencapai 3000 milisekon. Sehingga, dapat

disimpulkan bahwa secara teoritis maupun praktis, model yang paling cocok untuk dieksekusi

oleh suatu komputer paralel NOW adalah model Master-Slave dengan penggunaan rutin

komunikasi kolektif MPI_Scatter  dan MPI_Gather.  Oleh sebab itu, eksperimen dalam

tugas akhir ini dilakukan untuk program yang menggunakan model Master-Slave dengan primitif

komunikasi MPI_Scatter dan MPI_Gather[AVI06]. 

II.8 Pengukuran Performansi Operasi MPI

Pengukuran performansi operasi MPI dilakukan untuk mengukur performansi operasi primitif-

 primitif MPI pada suatu lingkungan NoW tertentu. Pengukuran ini sangat penting dilakukan

karena semua komunikasi antar proses dilakukan dengan menggunakan operasi MPI.

II.8.1 Hambatan dan Kesalahan Umum Dalam Pengukuran

Menurut [GRO98] ada beberapa kesalahan yang sering terjadi dalam pengukuran performansi

operasi MPI :

1.  Tidak memperhitungkan waktu untuk inisialisasi jalur komunikasi

Komunikasi yang dilakukan untuk pertama kali seringkali membutuhkan waktu yang

lebih lama karena memerlukan inisialisasi jalur komunikasi.

2.  Mengabaikan pengaruh aplikasi lain yang sedang berjalan. Aplikasi lain yang sedang

 berjalan bisa menggunakan jalur komunikasi yang sama dengan program paralel sehingga

Page 31: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 31/32

 

II-31

memenuhi bandwidth  jaringan. Pada jaringan yang bandwidth-nya penuh, kecepatan

 pengiriman data berkurang sehingga mengurangi performansi komunikasi antar proses.

3.  Menyamakan antara CPU time dan elapsed time. Perbedaan antara keduanya adalah CPU

time tidak termasuk waktu untuk menunggu kedatangan data.

4.  Melakukan pengukuran hanya dengan menggunakan dua prosesor

5.  Pengukuran operasi yang membutuhkan waktu sangat kecil dibandingan dengan clock

CPU.

Jika waktu operasi sangat kecil dibandingkan dengan clock CPU, kemungkinan besar

akan terjadi kesalahan dalam pengukuran waktu yang dibutuhkan operasi tersebut.

6.  Mengabaikan pengaruh cache 

Pengukur harus mengetahui benar apakah data yang dikirim telah berada di cache. Baik

di sisi pengirim maupun di sisi penerima.

II.8.2 Syarat Pengukuran Performansi Primiti f MPI yang Baik

[GR098] menyebutkan beberapa hal yang perlu diperhatikan dalam melakukan pengukuran

 performansi operasi MPI sehingga bisa menghindari kesalahan-kesalahan di atas, yaitu :

1.  Pengukuran dilakukan berulang kali dan dihitung waktu rata-rata.

Waktu yang diperlukan untuk eksekusi program paralel bisa berubah-ubah, tergantung

kondisi faktor-faktor yang mempengaruhinya. Dengan melakukan percobaan berulang

kali diharapkan waktu yang dihasilkan adalah waktu yang sesungguhnya. Hal ini juga

dilakukan untuk menghindari kesalahan umum karena mengabaikan waktu yang

diperlukan untuk melakukan inisialisasi jalur komunikasi.

Pengulangan juga dilakukan untuk memperbesar waktu operasi yang relatif kecil

dibandingkan dengan clock CPU

2.  Variasi Panjang Pesan

Performansi operasi MPI bukanlah fungsi sederhana dari panjang pesan. Oleh karena itu

 pengukuran tidak boleh dilakukan hanya untuk panjang pesan tertentu

3.  Penjadwalan Pengukuran

Performansi primitif MPI dipengaruhi oleh sibuk tidaknya jalur komunikasi yang

digunakan. Oleh karena itu pengukuran harus dilakukan berulang-ulang dalam waktu

yang berbeda sehingga didapatkan hasil yang sesuai dengan karakteristik jaringan

tersebut.

4.  Fitur yang disediakan

Page 32: Komputasi Pararel (landasan teori)

8/13/2019 Komputasi Pararel (landasan teori)

http://slidepdf.com/reader/full/komputasi-pararel-landasan-teori 32/32

 

Aplikasi pengukuran sebaiknya menyediakan fitur-fitur sebagai berikut:

•  Pengaturan jumlah prosesor/komputer yang digunakan

Pengguna bisa memilih jumlah prosesor/komputer yang digunakan untuk

 pengukuran.

•  Cache effects

Aplikasi bisa memeriksa pengaruh penggunaan cache terhadap performansi

operasi primitif MPI.

•  Communication patterns / Model Komunikasi

Aplikasi bisa melakukan pengukuran dengan menggunakan bermacam-macam

model komunikasi

•  Communication and computation overlaps 

Aplikasi bisa memeriksa pengaruh overlapping antara komunikasi dan komputasi

terhadap performansi operasi primitif MPI.

•   Nonblocking communication 

Pada mode operasi nonblocking, prosesor yang mengeksekusi suatu primitif

komunikasi tidak akan menunggu selesainya komunikasi untuk melanjutkan

komputasi. Sedangkan pada mode operasi blocking, prosesor yang mengeksekusi

 primitif komunikasi akan menunggu selesainya komunikasi untuk sebelum

melanjutkan komputasi. Di beberapa aplikasi komputasi paralel digunakan

operasi nonblocking  yang performansinya bisa lebih cepat daripada operasi

blocking.

II.9 QT

QT adalah C++ toolkit   untuk pembangunan aplikasi GUI yang cross platform. Dengan

menggunakan QT, GUI yang kita buat dapat berjalan di sistem operasi Windows, Mac OS X,

Linux,  Embedded   Linux, dan varian-varian Unix yang lain. QT telah digunakan sebagai basis

 pembuatan KDE. Sedangkan KDE adalah salah satu desktop environment   di Linux paling

 populer, penggunaan di KDE ini membuktikan bahwa QT telah teruji dan terbukti di

lapangan[QT05]. Dalam tugas akhir ini penulis akan memakai QT untuk implementasi GUI

 perangkat lunak.