PARALLEL PROCESSING
Konsep keparalelan itu sendiri dapat ditinjau
dari aspek design mesin paralel, perkembangan
bahasa pemrograman paralel atau dari aspek
pembangunan dan analisis algoritma paralel
Paralel Processing adalah penggunaan lebih
dari satu cpu untuk menjalankan sebuah
program secara simultan dengan tujuan untuk
meningkatkan performa komputasi
Salah satu teknik melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa
komputer secara bersamaan
Komputasi Paralel membutuhkan
1.
Algoritma
2.
Bahasa pemrograman
3.
Compiler
Teknik
pemrograman
komputer
yang
memungkinkan
eksekusi
perintah
atau
operasi secara bersamaan baik dalam
komputer dengan satu (prosesor tunggal)
ataupun banyak (prosesor ganda dengan
mesin paralel) CPU
ARSITEKTUR PARALLEL
SSID
SIMD
MISD
Komputer ini memiliki hanya satu prosesor dan satu
instruksi yang dieksekusi secara serial. Komputer ini adalah
tipe komputer konvensional. Menurut mereka tipe komputer
ini tidak ada dalam praktik komputer paralel karena bahkan
mainframe pun tidak lagi menggunakan satu prosesor
Contoh : UNIVAC1, CDC 7600, PDP1, IBM 360, Cray1
Komputer ini memiliki lebih dari satu prosesor, tetapi hanya
mengeksekusi satu instruksi secara paralel pada data yang
berbeda pada level lock-step. Komputer vektor adalah salah satu
komputer paralel yang menggunakan arsitektur ini
Contoh : ILLIAC IV, MasPar, Cray X-MP, CrayY-MP,
Thingking MachineCM-2, Cell Processor (GPU)
Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami. Sampai saat ini belum ada komputer yang menggunakan model MISD
Contoh : IBM POWER5, HP/CompaqAlphaServer, Intel IA32,
AMDOpteron, Cray XT3, IBMBG/L
Multiple Instructions – Multiple Data. Komputer ini
memiliki lebih dari satu prosesor dan mengeksekusi lebih
dari satu instruksi secara paralel. Tipe komputer ini yang
paling banyak digunakan untuk membangun komputer
paralel, bahkan banyak supercomputer yang menerapkan
arsitektur ini
1.
Processor ( CPU )
2.
Memory
3.
Sistem Operasi
4.
Cluster Middleware
5.
Programming and Environment dan Software Tools
6.
User Interface
7.
Aplikasi
8.
Jaringan
Storage adalah sebuah perangkat digital yang berfungsi untuk
menyimpan berbagai macam data digital yang dapat di simpan
dalam kurun waktu yang tidak menentu tergantung usia dan
perawatan dari perangkat storage itu sendiri
Jenis dan Contoh Perangkat Storage :
1.
Primary Storage adalah sebuah media penyimpanan yang
berfungsi untuk menyimpan data, primary Storage di sebut
juga dengan memori internal, primary Storage biasanya
memiliki kecepatan aksen yang lebih cepat dari pada
secondary Storage, selain itu primary Storage hanya
memiliki kapasitas yang terbatas dan cenderung lebih kecil
dari pada secondary Storage
• RAM (Random Access Memory), adalah sebuah perangkat
penyimpanan sementara yang bertugas untuk melayani processor dalam mengolah data, fungsi dari RAM sangat penting karena Harddisk biasa tidak bisa melayani secara langsung dalam pengolahan data di processor, karena kecepatan olah data processor berkali-kali lipat lebih cepat dari pada kecepatan harddisk, sehingga dalam pemrosesan data di butuhkan yang namanya RAM yang menyediakan layanan penyimpanan sementara yang datanya di ambil dari harddisk kemudian di salurkan ke processor
• ROM (Read Only Memory), adalah sebuah memori penyimpanan
data yang hanya dapat di baca oleh pengisi ROM sendiri, biasanya ROM di pasang secara khusus oleh pihak pabrik, berikut juga dengan isinya. Sehingga memori ROM biasanya tidak boleh untuk di lakukan manipulasi ulang, karena bisa merusak perangkat secara keseluruhan
2. Secondary Storage adalah sebuah media penyimpanan data
secara permanen yang di simpan untuk melayani pemrosesan data yang dilakukan oleh CPU
Kenapa disebut permanen ? karena secondary Storage (Non Volatile) ini sama sekali tidak bergantung pada listrik seperti primary. Ketika listrik padam maka data yang tersimpan di dalam secondary Storage akan tetap ada dan dapat kita akses ketika listrik menyala, namun berbeda dengan primary (Volatile) di atas, yang ketika listrik padam maka data yang tersimpan di dalamnya akan terhapus
Contoh dari Secondary Storage :
• Harddisk, adalah perangkat penyimpanan yang secara khusus
biasanya digunakan pada perangkat komputer untuk menyimpan data. Harddisk adalah perangkat yang berjalan dengan perputaran kepingan di dalamnya
• Disket, walaupun saat ini sudah jarang atau bahkan tidak
digunakan lagi oleh pengguna komputer. Pengguna komputer menggunakan disket untuk menyimpan berbagai macam data termasuk sistem operasi, namun ukurannya yang tergolong kecil, sehingga ketika harddisk ditemukan, akhirnya pengguna komputer tidak lagi menggunakan disket sebagai media penyimpananya
• CD/DVD, adalah sebuah perangkat penyimpanan yang sudah
tergolong lama untuk menyimpan data, karena inovasi dari perangkat ini yang terus dilakukan
• SSD (Solid State Drive atau Solid State Disk), adalah perangkat
penyimpan data yang menggunakan serangkaian IC sebagai memori yang digunakan untuk menyimpan data atau informasi
• Memory Card atau Kartu Memori, merupakan alat
penyimpanan yang digunakan untuk perangkat elektronik seperti smartphone, kamera, dan konsol game
1.
MPI (Message Passing Interface)
2.
PVM (Parallel Virtual Machine)
BAHASA PEMROGRAMAN YANG DIGUNAKAN PADA
PEMROGRAMANPARALLEL
Sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara
parallel dengan spesifikasi library pemrograman untuk
meneruskan pesan (message-passing), yang diajukan sebagai
standar oleh berbagai komite dari vendor, pelaksana dan
Pemakai. MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan
Suatu standar protokol yang digunakan untuk pemrograman
paralel dan terdistribusi. Proses pertukaran pesan atau data
antar proses adalah dengan mengirimkan pesan melalui media
komunikasi. Model ini juga dapat di implementasikan pada
bermacam-macam
platform,
seperti
shared-memory
Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero
Kegunaan MPI
1. Menyediakan fungsi-fungsi untuk menukar pesan
2. Menulis kode paralel secara portable
3. Mendapatkan performa yang tinggi dalam pemrograman paralel
4. Menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel
•
MPICH (MPI/Chameleon)
•
MPICH2 adalah implementasi Message Passing
Interface (MPI)
•
MPI merupakan standar spesifikasi library untuk
program message-passing, yang diajukan sebagai
standar oleh vendor, implementor, dan user
PVM (Parallel Virtual Machine) adalah paket software yang
mendukung pengiriman pesan untuk komputasi parallel antar
komputer. PVM dapat berjalan diberbagai macam variasi UNIX
atau pun windows dan telah portable untuk banyak arsitektur
seperti PC, workstation, multiprocessor dan super komputer
Perangkat lunak yang memungkinkan sekumpulan komputer yang
heterogen terlihat seperti satu sistem komputer paralel dan dapat
digunakan sebagai sebuah sumber daya komputasi yang koheren
Istilah virtual machine mengacu pada konfigurasi komputer dengan
memori tersebar, sedangkan istilah host ditujukan untuk komputer
yang merupakan anggota dari virtual machine. Host dapat terdiri
dari komputer yang berbeda-beda dan terpisah lokasinya secara
fisik
1.
PVM daemon. Daemon dari PVM, atau disebut PVM daemon
(PVMD). Daemon merupakan semacam program yang
berjalan di “belakang” dan biasanya menangani program dari
klien. Komponen ini berada pada setiap komputer yang
terhubung dalam virtual machine. PVM Berguna untuk
membentuk konfigurasi host dalam PVM dan mengkoordinir
komunikasi antar host
2.
PVM libraries. Komponen ini berisi rutin-rutin antarmuka
pemakai
PVM
untuk
melakukan
pengiriman
pesan,
pembuatan proses, koordinasi proses dan modifikasi virtual
machine. Pustaka PVM ini memungkinkan adanya interaksi
antar task, yang bisa dilakukan dengan menggunakan fungsi
packing dan unpacking pesan
Secara umum, langkah implementasi komputasi parallel
sebagai berikut :
•
Jalankan PVM daemon pada setiap mesin dalam cluster
•
Jalankan program master pada master daemon
•
Master daemon akan menjalankan proses slave
Untuk mengimplementasikannya, dapat memakai tools :
•
PVM versi 3.4.5, virtual machine dan routine untuk komputasi
parallel
•
rsh (remote shell), aplikasi untuk authentikasi dan komunikasi
proses antar komputer
•
xpvm versi 1.2, interface grafis untuk PVM dengan animasi
eksekusi komputasi parallel yang dapat dilihat dilayar
Komputasi Tunggal Komputasi Parallel
PERBEDAAN ANTARA KOMPUTASI TUNGGAL DENGAN KOMPUTASI PARALEL