Anda di halaman 1dari 16

Parallel Computing

Tugas kelompok Sistem Operasi

Disusun oleh :
Alvin Putra

[12.111.0839]

Fausta Leonardo

[12.111.0502]

Roberto

[12.111.0502]

MOBILE & WEB-A SORE

PROGRAM STUDI TEKNIK INFORMATIKA


SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
MIKROSKIL
MEDAN
2014

I. PENGERTIAN KOMPUTASI PARALEL


Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan
memanfaatkan beberapa komputer independen secara bersamaan. Umumnya diperlukan saat
kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di
industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak.
Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di
bidang fisika (fisika komputasi), kimia (kimia komputasi) dan lain sebagainya.
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 angka 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.
Komputasi paralel membutuhkan :
1. Algoritma
2. Bahasa pemrograman
3. Compiler
Sebagian 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.
Pada sistem komputasi paralel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada
2 teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan
message passing. Berdasarkan cara mengorganisasikan memori ini, komputer paralel dibedakan
menjadi shared memory parallel machine dan distributed memory parallel machine.

Prosesor dan memori ini di dalam mesin paralel dapat dihubungkan (interkoneksi) secara statis
maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system.
Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor.
Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan
memori.

Gbr 1. Contoh struktur pengiriman, permintaan dan jawaban dari parallel processing
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa
program sekaligus. Parallel processing disebut juga parallel computing. Walaupun beberapa
orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa
melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang diberlakukan pada
sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan
komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan
beberapa prosesor atau komputer. Selain itu, komputasi paralel tidak menggunakan arsitektur
Von Neumann.

II. TUJUAN KOMPUTASI PARALEL


Tujun utama 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 komputasi yang sangat kompleks, terkadang sumber daya (resource) yang ada sekarang
belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan secara cepat.
2. Adanya keterbatasan memori pada mesin untuk komputasi serial
3. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan lokal atau internet.
4. Penghematan biaya pengadaan perangkat keras. Dengan menggunakan beberapa mesin yang
murah (P-Processor / Multicore) sebagai alternatif penggunaan satu mesin yang bagus tetapi
mahal.

III. HAMBATAN KOMPUTASI PARALEL


Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan,
namun untuk eksekusi program mempunyai beberapa hambatan. Hambatan-hambatan tersebut
antara lain adalah :
1. Hukum Amdahl, yaitu percepatan waktu ekeskusi program dengan menggunakan komputasi
paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program yang
harus dieksekusi secara serial.
2. Hambatan yang diakibatkan beban jaringan, dalam eksekusi program secara paralel, prosesor
yang berada di mesin yang berbeda memerlukan pertukaran data melalui jaringan. Untuk
program yang dibagi menjadi task-task membutuhkan sinkronisasi, network latency
(keterlambatan jaringan) menjadi masalah utama. Permasalahan ini muncul karena ketika
suatu task membutuhkan data dari task yang lain, bagian ini dikirimkan melalui jaringan
dimana kecepatan transfer data kurang dari kecepatan prosesor yang mengeksekusi instruksi
task tersebut. Hal ini menyebabkan task tersebut harus menunggu sampai data tiba terlebih
dahulu, sebelum mengeksekusi instruksi selanjutnya.

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

IV. ARSITEKTUR KOMPUTER PARALEL


Dalam sebuah artikel yang direferensikan oleh Flynn, dalam mendesain sebuah komputer di
karakteristikkan oleh perjalanan (alur) dari instruksi-instruksi yang akan diselesaikan oleh suatu
arsitektur komputer. Taksonomi ini diklasifikasikan dan disesuaikan dengan perjalanan dari
gabungan instruksi dan data. Taksonomi ini menghasilkan empat kemungkinan kombinasi dari
pengoperasian instruksi. Yang terlihat pada tabel di bawah ini.

Dibawah ini adalah Taksonomi Flynn dan model pemrosesan parallel :

1. SISD (Single Instruction, Single Data) hanya menggunakan satu buah prosesor. Oleh karena
itu, model ini bisa dikatakan sebagai model untuk komputasi tunggal (Uni processor).
Sedangkan, ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa
prosesor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1,
IBM 360, CDC 7600, Cray 1 dan PDP 1.

Gbr 4.1 Skema SISD


2. SIMD (Single Instruction, Multiple Data) menggunakan banyak prosesor dengan instruksi
yang sama, namun setiap prosesor mengolah data yang berbeda (Array Processor). Array
Processor disebut juga Vector Processor merupakan sebuah komputer dimana aritmatika
unitnya mampu untuk melakukan perhitungan secara simultan dalam bentuk array atau data
pada tabel. Sebagai contoh, kita ingin mencari angka 27 pada deretan angka yang terdiri dari
100 angka, dan kita menggunakan 5 prosesor. Pada setiap prosesor, kita menggunakan
algoritma atau perintah yang saman, namun data yang diproses berbeda. Misalnya, prosesor 1
mengolah data dari deretan / urutan pertama hingga urutan ke-20, prosesor 2 mengolah data
dari urutan 21 sampai urutan 40, begitu pun untuk prosesor-prosesor yang lain. Beberapa
contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP,
Cray Y-MP, Thinking Machine CM-2 dan Cell Processor (GPU).

Gbr 4.2 Skema SIMD


3. MISD (Multpile Instruction, Single Data) menggunakan banyak prosesor dengan setiap
prosesor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini
merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang
sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD, jika
pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari
urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap
prosesor. Sampai saat ini, belum ada komputer yang menggunakan model MISD.

Gbr 4.3 Skema MISD


4. MIMD (Multiple Instruction, Multiple Data) menggunakan banyak prosesor dengan setiap
prosesor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun, banyak
komputer yang menggunakan model MIMI juga memasukkan komponen untuk model SIMD.
Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq
AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Gbr .4.4 Skema MIMD

Berdasarkan konfigurasi memori, MIMD dapat dibagi ke dalam 2 jenis yaitu shared memory
(tightly coupled) dan distributed memory (loosely coupled).
Shared memory adalah memori tunggal yang diakses oleh satu atau lebih prosesor untuk
menjalankan instruksi sedangkan distributed memory adalah setiap prosesor memiliki memori
sendiri untuk menjalankan instruksi.
Shared Memory (Tightly Coupled)
1. SMP (Symentric Multi Processing)
Sistem multiprosesor dengan masing-masing prosesor bekerja secara sendiri (tidak saling
bergantung). Pada sistem ini, sebuah CPU bisa jadi sedang menangani suatu proses. Misalkan,
sedang mengolah lembar kerja dan CPU lain sedang melakukan proses grafis.
2. NUMA (Non Uniform Memory Access)
Memori komputer rancangan yang digunakan dalam multiprocessor, dimana waktu akses
memori tergantung pada lokasi memori relatif terhadap prosesor.
Distributed Memory (Loosely Coupled)
Cluster adalah sekumpulan komputer (umumnya, server jaringan) independen yang beroperasi
serta bekerja secara erat dan terlihat oleh klien jaringan seolah-olah komputer-komputer tersebut
adalah satu buah unit komputer.
Proses menghubungkan beberapa komputer agar dapat bekerja seperti itu dinamakan clustering.
Komponen cluster biasanya saling terhubung dengan cepat melalui sebuah interkoneksi yang
sangat cepat atau bisa juga melalui jaringan LAN.
Cluster terbagi menjadi beberapa kategori, yakni :
1. Kluster untuk ketersediaan yang tinggi (High-availability clusters). Disebut juga failover
cluster pada umumnya, diimplementasikan untuk tujuan meningkatkan ketersediaan layanan
yang disediakan oleh kluster.
2. Kluster untuk pemerataan beban komputasi (Load-balancing clusters). Kluster kategori ini
beroperasi dengan mendistribusikan beban pekerjaan secara merata melalui beberapa node
yang bekerja di belakang (back-end node).

3. Kluster hanya untuk komputasi (Compute clusters). Seringnya, penggunaan utama kluster
komputer adalah untuk tujuan komputasi, ketimbang penanganan operasi yang berorientasi
I/O seperti layanan web atau basis data.
4. Grid computing. Grid pada umumnya adalah compute cluster, tapi difokuskan pada
throughput seperti utitlitas perhitungan ketimbang menjalankan pekerjaan-pekerjaan yang
sangat erat yang biasanya dilakukan oleh supercomputer.
Implementasi
Daftar semi-tahunan organisasi TOP500, yang mencantumkan 500 komputer di dunia umumnya
mencakup banyak cluster. TOP500 adalah sebuah kolabarosi antara universitas Mannheim,
Universitas Tennesseee dan National Energy Research Scientific Computing Center di Lawrence
Berkeley National Laboratory.
Beberapa kluster yang ada di Indonesia adalah :
1. LPI Public Cluster (http://www.cluster.lipi.go.id)
2. Kluster Rekayasa Komputasional ITB (http://computational.engineering.or.id)
3. NL Grid UGM (http://grid.te.ugm.ac.id/docs/)
4. Grid UI (http://grid.ui.ac.id/)
Perbedaan antara arsitektur shared memory dan distributed memory sebagai berikut :
1. Pada shared memory, beberapa CPU menggunakan satu resource memory secara bersaamaan,
dimana antara CPU dengan memori tersebut dihubungkan dengan bus. Sedangkan, pada
arsitektur distributed memory, masing-masing CPU mempunyai sendiri (dalam satu
komputer) yag tersebar dan terintegrasi dalam satu jaringan komputer.
2. Pada shared memory, setiap CPU memiliki hak akses yang sama pada suatu memory
sedangkan pada distributed memory, penggunaan memori pada satu CPU sifatnya adalah
private. Maksudnya, suatu CPU tidak akan bisa mengakses alamat memori dari CPU yang
lain.

V. PARADIGMA KOMPUTASI PARALEL


Secara umum, paradigma komputasi paralel dapat dibagi menjadi dua jenis, yaitu paralelisme
implisit dan paralelisme eksplisit.
Paralelisme implisit merupakan suatu pendekatan dimana penulis program (programmer) tidak
perlu memperhatikan masalah pembagian task ke beberapa prosesor dan memori beserta
sinkronisasinya. Pembagian task dan sinkronisasi ditangani sepenuhnya oleh sistem dibawah
program (sistem operasi atau mesin virtual) atau compiler.
Berbeda dengan paradigma paralelisme eksplisit yang 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.
1. Shared Memory
Pada model komunikasi ini, task-task menggunkan memori (address space) yang sama,
dimana masing-masing task dapat menulis atau membaca secara asinkron.
2. Message Passing
Pada model komunikasi ini, setiap task mempunyai memori (address space) lokal masingmasing dan paradigma yang digunakan adalah parallelisme eksplisit. Contoh sumber daya
komputasi yang cocok menggunakan pemodelan ini adalah beberapa workstation yang
dijadikan cluster.
Message passing dilakukan oleh prosesor-prosesor yang terlibat dalam komputasi paralel
untuk melakukan pertukaran data dan sinkronisasi antar prosesor. Pertukaran data pada
message passing dibuat dengan menghubungkan sekumpulan komputer melalui sebuah
interkoneksi jaringan.
Setiap komputer memiliki sebuah prosesor dan memori lokal, seperti ditunjukkan pada
gambar di bawah ini dan komunikasi antar komputer dilakukan melalui interkoneksi jaringan.
Pesan tersebut berisikan data yang diperlukan dalam komputasi.

Model komputer message passing :

VI. WAKTU EKSEKUSI PROGRAM PARALEL


Waktu eksekusi program paralel adalah lamanya waktu sejak dimulai sampai berakhir eksekusi
program paralel. Secara praktis, waktu ini dimulai sejak input untuk memulai program
dimasukkan oleh user sampai dengan konfirmasi bahwa program telah selesai muncul ke layar.
Dalam eksekusi serial, waktu total eksekusi program hanyalah waktu eksekusi komputasi
program tersebut. Sedangkan eksekusi paralel, waktu total eksekusi adalah waktu komputasi
program tersebut ditambah dengan waktu untuk melakukan komunikasi antar proses yang bisa
berupa pertukaran data maupun sinkronisasi.
Jika waktu keseluruhan eksekusi program paralel dilambangkan dengan tparalel maka persamaan
untuk waktu eksekusi program paralel adalah :
tparalel = tkomputasi + tkomunikasi
Keterangan :
tkomputasi adalah waktu komputasi
tkomunikasi adalah waktu komunikasi

VII. ALGORITMA PARALEL

Komputasi paralel digunakan untuk menyelesaikan permasalahan komputasi yang besar atau
kompleks. Program paralel dibuat khusus atau dimodifikasi dari program serial. Algoritma
paralel digunakan untuk menggantikan algoritma serial menyesuaikan arsitektur komputer yang
digunakan. Berdasarkan klasifikasi arsitektur komputer paralel di atas komputer paralel shared
memory dan distributed memory tentu saja menggunakan algoritma paralel yang berbeda.
Algortima paralel menjelaskan langkah-langkah yang ditempuh oleh komputer paralel dalam
menyelesaikan permasalahan. Hal-hal yang ada dalam algoritma paralel meliputi :
1. Identifikasi terhadap beban permasalahaDan yang akan dikerjakan secara paralel.
2. Pemetaan porsi pekerjaan yang dibebankan kepada tiap-tiap proses.
3. Distribusi data input, output dan perantara yang terkait dengan program.
4. Pengaturan data yang diakses bersamaan oleh beberapa prosesor.
5. Menyelaraskan fungsi prosesor pada setiap langkah pekerjaan.
Ada beberapa model algoritma paralel, diantaranya : data parallel, task graph, work pool,
master-slave (message passing) dan pipeline. Algoritma paralel yang digunakan untuk arsitektur
cluster PC umumnya menggunakan message passing, dimana data dari memori sebuah PC
dikirimkan ke memori PC lain melalui suatu jaringan. Beberapa konsep penting terkait dengan
hal di atas adalah dekomposisi, mapping, dan granulatis.
Dekomposisi
Pembagian beban pekerjaan adalah hal utama dalam algoritma paralel, karena tujuan utama
komputasi paralel adalah mempercepat proses dengan mengerjakan permasalahan menggunakan
sumber daya yang dimiliki secara bersamaan. Berdasarkan objek yang dibagi, dekomposisi
dibedakan menjadi dekomposisi data (domain) dan dekomposisi fungsi.
Dekomposisi menyesuaikan permasalahan yang dikerjakan, misalnya untuk permasalahan yang
melibatkan perulangan (iterasi) input data yang besar dimana fungsi yang digunakan sulit untuk
diparalelkan maka dekomposisi data lebih baik digunakan. Untuk permasalahan lain dengan
fungsi yang beragam bisa menggunakan dekomposisi fungsi. Pemilihan dekomposisi ini sangat
berpengaruh pada performansi komputer paralel.

Mapping (pemetaan beban kerja)


Mapping terkait erat dengan arsitektur dan kapasitas komputer paralel yang digunakan. Mapping
juga terkait erat dengan dekomposisi, dimana beban pekerjaan yang dibagi-bagi akan diberikan
pada proses-proses secara paralel.
Pada arsitektur homogen dimana kemampuan dan kapasitas setiap node sama maka mapping
menjadi lebih mudah, setiap node mendapatkan porsi yang sama untuk dekomposisi data. Untuk
komputer paralel heterogen, mapping akan dilakukan dengan terlebih dahulu mengukur kapasitas
dari setiap node, sehingga mapping beban kerja memberikan porsi yang berbeda-beda kepada
setiap node.
Granularitas
Faktor penting lain dalam algoritma paralel adalah perbandingan komputasi dan komunikasi.
Komputasi di sini diartikan proses yang dilakukan pada setiap prosesor sedangkan komunikasi
adalah proses pertukaran informasi yang dilakukan antar prosesor. Permasalahan dengan fungsi
sederhana biasanya memberikan porsi komputasi lebih besar daripada komunikasi (coarse
grain), sebaliknya permasalahan dengan banyak fungsi menyebabkan porsi komunikasi hampir
sama dengan porsi komputasinya (fine grain).
Algoritma paralel mengatur granularitas sehingga tidak terjadi defisiensi proses baik komputasi
maupun komunikasi. Porsi komputasi dan komunikasi juga disesuaikan dengan arsitektur
komputer paralel.
VIII. PERBEDAAN KOMPUTASI TUNGGAL DENGAN KOMPUTASI PARALEL
Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa
digambarkan pada gambar di bawah ini.

Gbr 7.1 Penyelesaian Sebuah Masalah pada Komputasi Tunggal

Gbr 7.2 Penyelesaian Sebuah Masalah pada Komputasi Paralel


Dari perbedaan kedua gambar di atas, terlihat bahwa kinerja komputasi paralel lebih efektif dan
dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.
Komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah
data dalam jumlah yang besar. Namun, keefektifan akan hilang ketika kita hanya mengolah data
dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita
menggunkan komputasi tunggal.

REFERENSI
http://akhmadilman46.blogspot.com/2013/05/komputasi-paralel.html
http://mahadisuta.blogspot.com/2012/12/implementasi-komputasi-paralel-dalam.html
https://ceerfullvhye.wordpress.com/
http://www.scribd.com/doc/244885180/MAKALAH-Komputasi-Paralel
http://puskaradim.blogspot.com/2010/06/universitas-baiturrahmah.html
http://mahar.staff.umm.ac.id/2013/01/14/parallelisme-dengan-shared-memory/
http://seto.citravision.com/berita-48-parallel-computation--architectural-parallel-computer.html
http://fiveriel.blogspot.com/2012/01/perbedaan-antara-multiprocessor-dan.html

Anda mungkin juga menyukai