1.
Paralel
Computing
Paralel Processing adalah kemampuan menjalankan
tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara Bersama atau
secara simultan pada sebuah computer. Secara umum. Ini adalah sebuah Teknik dimana
sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses
penyelesaian masalah.
Terdapat dua hokum yang berlaku dalam sebuah parallel
processing, yaitu :
1.
Hukum Amdhal
Amhdal berpedapat “Peningkatan kecepatan
secara parallel akan menjadi linear, melipat gadndakan kemampuan proses sebuah computer
dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan
sebuah masalah.
2.
Hukum Gustafson
Pendapat yang dikemukakan Gustafson hampir
sama dengan Amdhal, tetapi pemikiranya Gustafson sebuah computer parallel berjalan
dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah
dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses
tiap-tiap mesin yang digunakan.
Contoh dalam penggunaan parallel computing adalah
cloud computing, sebagai data storage online, dengan cara kerja client-server.
2 . Paralelism Concept
Paralelisme (parallelism)
lahir dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk
menerapkan konsep pemrosesan konkuren. Teknik ini meningkatkan kecepatan proses
dengan cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi
secara simultan disertai dengan membentuk beberapa proses yang bekerja secara
simultan pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan
paralel adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada
eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi.Pemrosesan
paralel dapat terjadi pada beberapa tingkatan (level) proses. Tingkatan
tertinggi pemrosesan paralel terjadi pada proses di antara banyak job
(pekerjaan) atau pada program yang menggunakan multiprogramming, time sharing,
dan multiprocessing. Multiprogramming kemampuan eksekusi terhadap beberapa
proses perangkat lunak dalam sebuah system secara serentak, jika dibandingkan
dengan sebuah proses dalam satu waktu, dan timesharing berarti menyediakan
pembagian selang waktu yang tetap atau berubah-ubah untuk banyak program.
Multiprocessing adalah dukungan sebuah sistem untuk mendukung lebih dari satu
prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
Multiprocessing sering diimplementasikan dalam perangkat keras (dengan
menggunakan beberapa CPU sekaligus), sementara multiprogramming sering
digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua
kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali. Pemrosesan
paralel dapat juga terjadi pada proses di antara prosedurprosedur atau perintah
perintah (segmen program) pada sebuah program.
Contoh penggunaan Adapun
proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya
pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan
suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer
yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan
menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri
dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk
menyelesaikan suatu masalah.
3.
Distributed Data Processing
Distributed data processing (DDP) system merupakan
bentuk yang sering digunakan
sekarang sebagai
perkembangan dari time sharing system. Bila beberapa sistem komputer yang bebas
tersebar yang masing-masing dapat memproses data sendiri dan dihubungkan dengan
jaringan telekomunikasi, maka istilah time sharing sudah tidak tepat lagi. DDP
system dapat didefinisikan sebagai suatu sistem komputer interaktif yang
terpencar secara geografis dan dihubungkan dengan jalur telekomunikasi dan
seitap komputer mampu memproses data secara mandiri dan mempunyai kemampuan
berhubungan dengan komputer lain dalam suatu sistem.
Contoh
dari Distributed Data Processing System adalah: ATM, komputer yang
dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial,
penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server
yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah
mempunyai server masing-masing. Seperti di indonesia mempunyai server
tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah
masing-masing, dll.
4.
Architectural Paralel Computer
·
SIMD
Peningkatan kecepatan SIMD
proporsional dengan jumlah processing unit yang ada.
·
MISD
MISD berdasarkan prinsip
pipelining
Proses dibagi menjadi
beberapa tahap & beberapa proses (secara simultan)
Prinsip pipelining dapat
digunakan pada dua level yang berbeda:
Pipeline unit aritmatika
Pipeline unit control
Operasi pipeline dapat
dilaksanakan secara siklus yaitu cyclic pipeline, dimana dapat dibagi dalam 5
tahap:
Operasi baca (dari shared
memories)
Operasi transfer (memori ke
elemen pemroses)
Operasi eksekusi (di elemen
pemroses)
Operasi transfer (elemen
pemroses ke memori)
Operasi simpan (di shared
memories)
·
MIMD
Sistem MIMD merupakan
sistem multiprocessing atau multicomputer
Komputer MIMD terdiri dari:
sistem tightly coupled
(global memory)
loosely coupled (local
memory).
5.
Pengantar Thread Programming
Pengertian
Thread Programming :
Thread
adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara
independen dengan sebagian program lainnya. Dalam threading anda dapat
menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua
atau lebih bagian dari kode dapat dijalankan secara simultan.
Ms.
Dos merupakan salah contoh OS yang hanya mampu menjalankan satu proses dengan
hanya 1 thread. Sebaliknya Unix Family 1980 mendukung banyak proses tapi dengan
setiap proses hanya memiliki satu thread. Contoh OS yang mampu menjalankan
banyak thread dalam suatu proses yaitu, Mac, Windows dan Linux, selain itu
bahasa yang memiliki OS mini seperti java yang memiliki Java Virtual Machine
juga satu proses yang mampu menjalankan banyak thread.
Keuntungan Penggunaan
Thread :
· Komunikasi
thread lebih efisien
· Waktu
pembuatan lebih cepat
· Waktu
pemberhentian lebih cepat
· Waktu
penggantian antar thread lebih cepat
Kerugian penggunaan Thread
:
· Keamanan
yang kurang karena penggunaan shared data
6.
Pengantar Message Passing, OpenMP
Merupakan
sebuah bentuk dari komunikasi yang digunakan di komputasi paralel, OOT (Object
Oriented Programming) atau Pemrograman Berbasis Objek dan komunikasi
interproses. MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram
untuk membuatsebuah aplikasi yang dapat dijalankan secara paralel. Proses yang
dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing –
masing compute node yang kemudian masing – masing compute node tersebut
mengolah dan mengembalikan hasilnya ke komputer head node.Untuk merancang
aplikasi paralel tentu membutuhkan banyak pertimbangan -
pertimbangandiantaranya adalah latensi dari jaringan dan lama sebuah tugas
dieksekusi oleh prosesor .
Ø Terdapat beberapa metode dalam pengiriman
pesan yaitu
- Synshronous Message Parsing
Pengirim
menunggu untuk mengirim pesan sampai penerima siap untuk menerima pesan. Oleh
karena itu tidak ada buffering. Selain itu Pengirim tidak bisa mengirim pesan
untuk dirinya sendiri.
- Ansynchronous Message Passing
Pengirim
akan mengirim pesan kapanpun dia mau. Pengirim tidak peduli ketika penerima
belum siap untuk menerima pesan. Oleh karena itu diperlukan buffering untuk
menampung pesan sementara sampai penerima siap menerima pesan. Selain itu
pengirim dapat pesan untuk dirinya sendiri.
Ø OPENMP
OpenMP
merupakan antarmuka pemrograman aplikasi(API) yang mendukung multi-platform
berbagi memori multiprocessing pemrograman C , C + + , dan Fortran , pada
kebanyakan arsitektur prosesor dan system operasi , termasuk Solaris , AIX ,
HP-UX , GNU / Linux , Mac OS X , dan Windows platform. Ini terdiri dari satu
set perintah kompiler, rutinitas library, dan variable lingkungan yang
mempengaruhi perilaku run-time. OpenMP dikelola oleh nirlaba teknologi
konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP), bersama-sama
didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor
perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu , Nvidia ,
NEC , Microsoft , Texas Instruments , Oracle Corporation , dan banyak lagi.