Makalah Arkom Paralel Processing

19
Parallel Processing Makalah Disusun Sebagai Salah Satu Tugas Mata Kuliah Arsitektur dan Organisasi Komputer Disusun oleh M Rangga Permana 108091000015 Ajeng Aulia 109091000107 Lutfiyanti 108091000022 KELAS TI 5 B Peminatan Jaringan PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

Transcript of Makalah Arkom Paralel Processing

Page 1: Makalah Arkom Paralel Processing

Parallel Processing

Makalah

Disusun Sebagai Salah Satu Tugas Mata Kuliah Arsitektur dan Organisasi Komputer

Disusun oleh

M Rangga Permana 108091000015Ajeng Aulia 109091000107Lutfiyanti 108091000022

KELAS TI 5 BPeminatan Jaringan

PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA2010

Parallel Processing

Page 2: Makalah Arkom Paralel Processing

1. 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:

Page 3: Makalah Arkom Paralel Processing

· algoritma

· bahasa pemrograman

· compiler

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

2. Arsitektur Komputer Parallel

a. Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam

1. Asymmetric Multiprocessing (ASMP)

2. Symmetric Multiprocessing (SMP)

3. Non-uniform memory access (NUMA) multiprocessing

a) Pengertian

Page 4: Makalah Arkom Paralel Processing

Non-Uniform Memory Access atau Non-Uniform Memory

Arsitektur (NUMA) adalah memori komputer Rancangan

yang digunakan dalam multiprocessors , dimana waktu akses

memori tergantung pada lokasi memori relatif terhadap

prosesor. Under NUMA, Dalam NUMA, prosesor dapat

mengakses memori lokal sendiri lebih cepat dari memori non-

lokal, yaitu, memori lokal ke prosesor atau memori bersama

antara prosesor.

NUMA architectures logically follow in scaling from symmetric

multiprocessing (SMP) architectures. Arsitektur NUMA logis

mengikuti skala dari symmetric multiprocessing (SMP)

arsitektur. pembangunan komersial mereka datang bekerja

dengan Burroughs (kemudian Unisys ), Convex Komputer

(kemudian Hewlett-Packard ), Silicon Graphics , Sekuen Sistem

Komputer , Data General dan Digital selama tahun 1990-an.

Teknik yang dikembangkan oleh perusahaan-perusahaan ini

kemudian ditampilkan dalam berbagai Unix-seperti sistem

operasi , dan agak dalam Windows NT .

b) Konsep Dasar

Modern CPU beroperasi jauh lebih cepat daripada memori

utama yang mereka terpasang. In the early days of computing

and data processing the CPU generally ran slower than its

memory. Pada hari-hari awal komputasi dan pengolahan data

CPU umumnya berlari lebih lambat dari memori. Garis kinerja

menyeberang pada tahun 1960 dengan munculnya pertama

superkomputer dan kecepatan komputasi tinggi. Sejak saat itu,

CPU, semakin kelaparan untuk data, harus kios sementara

mereka menunggu untuk mengakses memori untuk

menyelesaikan. Banyak superkomputer desain 1980-an dan

90-an terfokus pada penyediaan akses kecepatan tinggi

Page 5: Makalah Arkom Paralel Processing

memori sebagai lawan dari prosesor yang lebih cepat, yang

memungkinkan mereka untuk bekerja pada set data besar

pada kecepatan sistem lain tidak bisa pendekatan.

Membatasi jumlah akses memori yang disediakan kunci untuk

mengekstrak kinerja tinggi dari komputer modern. For

commodity processors, this means installing an ever-increasing

amount of high-speed cache memory and using increasingly

sophisticated algorithms to avoid "cache misses". Untuk

prosesor komoditas, ini berarti untuk memasang meningkat

jumlah yang tinggi kecepatan memori cache dan

menggunakan algoritma semakin canggih untuk menghindari

"cache misses". Namun peningkatan dramatis dalam ukuran

sistem operasi dan aplikasi yang dijalankan pada mereka telah

umum kewalahan perbaikan ini cache-pengolahan. Multi-

processor systems make the problem considerably worse.

Sistem multi-prosesor membuat masalah jauh lebih buruk.

Sekarang sistem bisa kelaparan beberapa prosesor pada saat

yang sama, terutama karena hanya satu prosesor dapat

mengakses memori pada suatu waktu.

NUMA berupaya untuk mengatasi masalah ini dengan

menyediakan memori terpisah untuk masing-masing prosesor,

menghindari kinerja beberapa prosesor menyerang ketika

mencoba untuk mengatasi memori yang sama. Untuk masalah

yang melibatkan data menyebar (umum untuk server dan

aplikasi serupa), NUMA dapat meningkatkan kinerja selama

memori bersama tunggal dengan faktor kira-kira jumlah

prosesor (atau bank memori yang terpisah).

Tentu saja, tidak semua data akhirnya terbatas pada satu

tugas, yang berarti bahwa lebih dari satu prosesor mungkin

memerlukan data yang sama. Untuk menangani kasus ini,

Page 6: Makalah Arkom Paralel Processing

sistem NUMA termasuk tambahan perangkat keras atau

perangkat lunak untuk memindahkan data antar bank. Operasi

ini memiliki efek memperlambat prosesor yang melekat pada

bank-bank, sehingga meningkatkan kecepatan keseluruhan

karena NUMA akan sangat bergantung pada sifat yang tepat

dari tugas berjalan pada sistem pada suatu waktu tertentu.

4. Clustering

a) Pengertian

Cluster, dalam ilmu komputer dan jaringan komputer 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 dengan

Clustering. Komponen cluster biasanya saling terhubung

dengan cepat melalui sebuah interkoneksi yang sangat cepat,

atau bisa juga melalui jaringan lokal (LAN).

Karena menggunakan lebih dari satu buah server, maka

manajemen dan perawatan sebuah cluster jauh lebih rumit

dibandingkan dengan manajemen server mainframe tunggal

yang memiliki skalabilitas tinggi (semacam IBM AS/400), meski

lebih murah.

b) Kategori kluster komputer

Kluster komputer terbagi ke dalam beberapa kategori, sebagai

berikut:

Kluster untuk ketersediaan yang tinggi (High-availability

clusters)

High-availability cluster, yang juga sering disebut

sebagai Failover Cluster pada umumnya diimplementasikan

untuk tujuan meningkatkan ketersediaan layanan yang

disediakan oleh kluster tersebut. Elemen kluster akan

Page 7: Makalah Arkom Paralel Processing

bekerja dengan memiliki node-node redundan, yang

kemudian digunakan untuk menyediakan layanan saat

salah satu elemen kluster mengalami kegagalan. Ukuran

yang paling umum dari kategori ini adalah dua node, yang

merupakan syarat minimum untuk melakukan redundansi.

Implementasi kluster jenis ini akan mencoba untuk

menggunakan redundansi komponen kluster untuk

menghilangkan kegagalan di satu titik (Single Point of

Failure).

Ada beberapa implementasi komersial dari sistem kluster

kategori ini, dalam beberapa sistem operasi. Meski

demikian, proyek Linux-HA adalah salah satu paket yang

paling umum digunakan untuk sistem operasi GNU/Linux.

Dalam keluarga sistem operasi Microsoft Windows NT,

sebuah layanan yang disebut dengan Microsoft Cluster

Service (MSCS) dapat digunakan untuk menyediakan

kluster kategori ini. MSCS ini diperbarui lagi dan telah

diintegrasikan dalam Windows 2000 Advanced Server dan

Windows 2000 Datacenter Server, dengan nama Microsoft

Clustering Service. Dalam Windows Server 2003,

Microsoft Clustering Service ini ditingkatkan lagi kinerjanya.

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). Umumnya

kluster ini akan dikonfigurasikan sedmikian rupa dengan

beberapa front-end load-balancing redundan. Karena setiap

elemen dalam sebuah kluster load-balancing menawarkan

Page 8: Makalah Arkom Paralel Processing

layanan penuh, maka dapat dikatakan bahwa komponen

kluster tersebut merupakan sebuah kluster aktif/kluster HA

aktif, yang bisa menerima semua permintaan yang diajukan

oleh klien.

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.

Sebagai contoh, sebuah kluster mungkin mendukung

simulasi komputasional untuk perubahan cuaca atau

tabrakan kendaraan. Perbedaan utama untuk kategori ini

dengan kategori lainnya adalah seberapa eratkah

penggabungan antar node-nya. Sebagai contoh, sebuah

tugas komputasi mungkin membutuhkan komunikasi yang

sering antar node--ini berarti bahwa kluster tersebut

menggunakan sebuah jaringan terdedikasi yang sama,

yang terletak di lokasi yang sangat berdekatan, dan

mungkin juga merupakan node-node yang bersifat

homogen. Desain kluster seperti ini, umumnya disebut juga

sebagai Beowulf Cluster. Ada juga desain yang lain, yakni

saat sebuah tugas komputasi hanya menggunakan satu

atau beberapa node saja, dan membutuhkan komunikasi

antar-node yang sangat sedikit atau tidak ada sama sekali.

Desain kluster ini, sering disebut sebagai "Grid". Beberapa

compute cluster yang dihubungkan secara erat yang

didesain sedemikian rupa, umumnya disebut dengan

"Supercomputing". Beberapa perangkat lunak Middleware

seperti MPI atau Parallel Virtual Machine (PVM) mengizinkan

program compute clustering agar dapat dijalankan di dalam

kluster-kluster tersebut.

Page 9: Makalah Arkom Paralel Processing

Grid computing

Grid pada umumnya adalah compute cluster, tapi

difokuskan pada throughput seperti utilitas perhitungan

ketimbang menjalankan pekerjaan-pekerjaan yang sangat

erat yang biasanya dilakukan oleh Supercomputer.

Seringnya, grid memasukkan sekumpulan komputer, yang

bisa saja didistribusikan secara geografis, dan kadang

diurus oleh organisasi yang tidak saling berkaitan.

Grid computing dioptimalkan untuk beban pekerjaan yang

mencakup banyak pekerjaan independen atau paket-paket

pekerjaan, yang tidak harus berbagi data yang sama antar

pekerjaan selama proses komputasi dilakukan. Grid

bertindak untuk mengatur alokasi pekerjaan kepada

komputer-komputer yang akan melakukan tugas tersebut

secara independen. Sumber daya, seperti halnya media

penyimpanan, mungkin bisa saja digunakan bersama-sama

dengan komputer lainnya, tapi hasil sementara dari sebuah

tugas tertentu tidak akan mempengaruhi pekerjaan lainnya

yang sedang berlangsung dalam komputer lainnya.

Sebagai contoh grid yang sangat luas digunakan adalah

proyek Folding@home, yang menganalisis data yang akan

digunakan oleh para peneliti untuk menemukan obat untuk

beberapa penyakit seperti Alzheimer dan juga kanker.

Proyek lainnya, adalah SETI@home, yang merupakan

proyek grid terdistribusi yang paling besar hingga saat ini.

Proyek SETI@home ini menggunakan paling tidak 3 juta

komputer rumahan yang berada di dalam komputer

rumahan untuk menganalisis data dari teleskop radio

observatorium Arecibo (Arecibo Observatory

radiotelescope), mencari bukti-bukti keberadaan makhluk

luar angkasa. Dalam dua kasus tersebut, tidak ada

Page 10: Makalah Arkom Paralel Processing

komunikasi antar node atau media penyimpanan yang

digunakan bersama-sama.

c) Implementasi

Daftar semi-tahunan organisasi TOP500, yang mencantumkan

500 komputer tercepat di dunia umumnya mencakup banyak

kluster. TOP500 adalah sebuah kolaborasi antara Universitas

Mannheim, Universitas Tennessee, dan National Energy

Research Scientific Computing Center di Lawrence Berkeley

National Laboratory. Hingga 18 Juni 2008, superkomputer

tercepat yang tercatat di dalam TOP500 adalah sistem

Roadrunner yang dimiliki oleh Department of Energy Amerika

Serikat, yang kinerjanya mencapai 1026 TeraFlops (Triliun

Floating Point Operation per Second) dalam benchmark High-

Performance LINPACK.

d) Kluster dan Grid di Indonesia

Beberapa kluster yang ada di Indonesia adalah:

LIPI Public Cluster (http://www.cluster.lipi.go.id/)

Kluster Rekayasa Komputasional ITB

(http://computational.engineering.or.id)

NL Grid UGM (http://grid.te.ugm.ac.id/docs/)

Grid UI (http://grid.ui.ac.id/)

b. Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam

(lihat Taksonomi Flynn)

Taksonomi Flynn dan model pemrosesan parallel

Page 11: Makalah Arkom Paralel Processing

Keempat kelompok komputer tersebut adalah :

1. Komputer SISD (Single Instruction stream-Single Data

stream)

SIMD adalah singkatan dari Single Instruction, Multiple Data,

merupakan sebuah istilah dalam komputasi yang merujuk kepada

sekumpulan operasi yang digunakan untuk menangani jumlah

data yang sangat banyak dalam paralel secara efisien, seperti

yang terjadi dalam prosesor vektor atau prosesor larik. SIMD

pertama kali dipopulerkan pada superkomputer skala besar, meski

sekarang telah ditemukan pada komputer pribadi.

Contoh aplikasi yang dapat mengambil keuntungan dari SIMD

adalah aplikasi yang memiliki nilai yang sama yang ditambahkan

ke banyak titik data (data point), yang umum terjadi dalam

aplikasi multimedia. Salah satu contoh operasinya adalah

mengubah brightness dari sebuah gambar. Setiap pixel dari

sebuah gambar 24-bit berisi tiga buah nilai berukuran 8-bit

brightness dari porsi warna merah (red), hijau (green), dan biru

Page 12: Makalah Arkom Paralel Processing

(blue). Untuk melakukan perubahan brightness, nilai R, G, dan B

akan dibaca dari memori, dan sebuah nilai baru ditambahkan

(atau dikurangkan) terhadap nilai-nilai R, G, B tersebut dan nilai

akhirnya akan dikembalikan (ditulis kembali) ke memori.

Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni:

Data langsung dapat dipahami dalam bentuk blok data,

dibandingkan dengan beberapa data yang terpisah secara sendiri-

sendiri. Dengan menggunakan blok data, prosesor dapat memuat

data secara keseluruhan pada waktu yang sama. Daripada

melakukan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu,

dst", sebuah prosesor SIMD akan melakukannya dalam sebuah

instruksi saja, yaitu "ambil semua pixel itu!" (istilah "semua"

adalah nilai yang berbeda dari satu desain ke desain lainnya).

Jelas, hal ini dapat mengurangi banyak waktu pemrosesan (akibat

instruksi yang dikeluarkan hanya satu untuk sekumpulan data),

jika dibandingkan dengan desain prosesor tradisional yang tidak

memiliki SIMD (yang memberikan satu instruksi untuk satu data

saja).

Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang

dapat diaplikasikan terhadap semua data dalam satu operasi.

Dengan kata lain, sistem SIMD dapat bekerja dengan memuat

beberapa titik data secara sekaligus, dan melakukan operasi

terhadap titik data secara sekaligus.

Sayangnya, beberapa desainer SIMD terbentur dengan beberapa

pertimbangan desain yang berada di luar kontrol mereka. Salah

satu pertimbangan tersebut adalah harus menambahkan banyak

register untuk menampung data yang akan diproses. Idealnya, hal

ini dapat dilakukan dengan menambahkan unit SIMD ke dalam

prosesor agar memiliki registernya sendiri, tetapi beberapa

Page 13: Makalah Arkom Paralel Processing

desainer terpaksa menggunakan register yang telah ada,

umumnya yang digunakan adalah register floating-point. Register

floating-point umumnya memiliki ukuran 64-bit, yang lebih kecil

daripada yang dibutuhkan oleh SIMD agar bekerja secara optimal,

meskipun hal ini dapat mendatangkan masalah jika kode hendak

mencoba untuk menggunakan instruksi floating-point dan SIMD

secara bersamaan.

Pada pendesainan awal SIMD, terdapat beberapa prosesor yang

khusus disiapkan untuk melakukan tugas ini, yang seringnya

disebut sebagai Digital Signal Processor (DSP). Perbedaan utama

antara SIMD dan DSP adalah DSP merupakan prosesor yang

komplit dengan set instruksinya sendiri (yang meskipun lebih sulit

digunakan), sementara SIMD hanya bergantung pada register

general-purpose untuk menangani detail program, dan instruksi

SIMD hanya menangani manipulasi data.

Penggunaan instruksi SIMD pertama kali dilakukan dalam

superkomputer vektor dan dipopulerkan oleh Cray pada tahun

1970-an. Akhir-akhir ini, SIMD skala kecil (64-bit atau 128-bit) telah

menjadi populer dalam CPU yang bersifat general purpose, yang

dimulai pada tahun 1994 dengan set instruks MAX yang

diaplikasikan pada Hewlett-Packard PA-RISC. Instruksi SIMD, saat

ini dapat ditemukan dalam kebanyakan prosesor, seperti halnya

AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3,

SSE4, AMD 3DNow! dalam prosesor Intel x86; VIS dalam prosesor

prosesor SPARC; MAX dalam Hewlett-Packard PA-RISC; MDMX serta

MIPS-3D dalam MIPS serta MVI dalam prosesor DEC Alpha.

Meskipun demikian, perangkat lunak pada umumnya tidak

mengeksploitasi instruksi, dan bahkan instruksi ini hanya

digunakan dalam aplikasi yang khusus, seperti pengolahan grafik.

Page 14: Makalah Arkom Paralel Processing

Meskipun hal ini secara umum telah membuktikan bahwa sulitnya

mencari aplikasi komersial yang dikhususkan untuk prosesor SIMD,

ada beberapa kesuksesan yang terjadi seperti halnya aplikasi

GAPP yang dikembangkan oleh Lockheed Martin. Versi yang lebih

baru dari GAPP bahkan menjadi aplikasi yang dapat memproses

video secara waktu-nyata (real-time) seperti halnya konversi antar

bermacam-macam standar video yang (seperti konversi NTSC ke

PAL atau sebaliknya, NTSC ke HDTV atau sebaliknya dan lain-lain),

melakukan deinterlacing, pengurangan noise (noise reduction),

kompresi video, dan perbaikan citra gambar (image

enhancement).

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

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

Page 15: Makalah Arkom Paralel Processing

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.

c. Berdasarkan kedekatan antar prosesor, dapat dibagi ke dalam

Loosely coupled

Thightly coupled