You are on page 1of 14

Parallel Processing

Makalah

Disusun Sebagai Salah Satu Tugas Mata Kuliah Arsitektur dan Organisasi Komputer

Disusun oleh

M Rangga Permana Ajeng Aulia Lutfiyanti

108091000015 109091000107 108091000022

KELAS TI 5 B Peminatan Jaringan

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2010

Parallel 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: 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. 2. 3. Asymmetric Multiprocessing (ASMP) Symmetric Multiprocessing (SMP) Non-uniform memory access (NUMA) multiprocessing a) Pengertian

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 1990an. 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 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 highspeed 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, 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 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 LinuxHA 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 loadbalancing redundan. Karena setiap elemen dalam sebuah kluster load-balancing menawarkan 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. 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 bersamasama 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 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 HighPerformance 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

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 (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 desainer terpaksa menggunakan register yang telah ada, umumnya yang digunakan adalah register floatingpoint. 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.

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

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

You might also like