Anda di halaman 1dari 25

KOMPUTASI PARALEL DAN

TERDISTRIBUSI
By.CopyPaste

copyPaste
TUGAS
Riview Materi
(Komputasi Pararel Dan Terdistribusi)

DOSEN PENGAMPUH
Wawan Firgiawan, S. T., M. Kom

Di susun :
Nama : Juhari
Nim : D0221322
Kelas : E Informatika

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK UNIVERSITAS
SULAWESI BARAT 2023

1
Pemrosesan Paralel dan Komputasi Paralel
1. Komputasi Paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan
dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini
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) dll.

Komputasi Paralel membutuhkan

• Algoritma
• Bahasa pemrograman
• Compiler

Teknologi komputasi paralel sudah berkembang lebih dari dua dekade,


penggunaannya semakin beragam mulai dari kebutuhan perhitungan di laboratorium
fisika nuklir, simulasi pesawat luar angkasa, hingga prakiraan cuaca. Komputasi
paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara
simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer
paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh
setiap prosesor (CPU) dalam waktu yang bersamaan/simultan (concurrent). Prinsip
ini disebut paralelisme.

Paralelisme dalam komputasi paralel merupakan hal yang diciptakan dan


dimanfaatkan. Sebenarnya prinsip paralelisme juga sudah diterapkan dalam
komputer serial misal dengan pipelining dan superscalar-nya namun demikian tidak
2
memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan
terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena
memory bottleneck. Perkembangan penerapan paralelisme pada prosesor dari masa
ke masa ditunjukkan pada Gambar 1.1.

Dari gambar tersebut kita dapatkan beberapa tingkat paralelisme dalam


komputasi khususnya pada prosesor, di antaranya :

1) Paralelisme bit-level. Contoh : prosesor 32 bit dan prosesor 64 bit.

2) Paralelisme instruction set-level. Contoh : CISC dan RISC.

3) Paralelisme thread-level. Contoh : Intel hyperthreading.

Paralelisme lain yang juga berkembang dalam komputasi paralel adalah


paralelisme data dan paralelisme fungsi (task).

Perkembangan teknologi prosesor memberikan pengaruh yang besar pada


komputasi paralel. Mulai dari prosesor singlecore superscalar, chip multiprocessor,
prosesor multicore, hingga prosesor cell memberikan kontribusi terhadap
peningkatan performansi komputer paralel. Supercomputer seperti Roadrunner
misalnya menggunakan teknologi multiprosesor, prosesor cell, atau gabungan dari
keduanya (hybrid system). Jumlah prosesor yang dipakai HPC juga semakin tidak
terbatas sehingga arsitekturnya disebut Massively Parallel Processing (MPP).
Namun demikian penggunaan cluster PC menjadi tren dalam komputasi paralel
karena faktor biaya dan skalabilitas. Dari Tabel 1.1. diperoleh data bahwa cluster
menjadi pilihan terbanyak para pengembang HPC.

3
a . Arsitektur Komputer Paralel
Berdasarkan jumlah dan prinsip kerja prosesor pada komputer paralel, A.J.
Van der Steen dan J. Donggara menyebutkan terdapat empat arsitektur utama
komputer paralel menurut Flynn (1972) yaitu:

1) SISD (Single Instruction – Single Data). 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. Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel.
Skema SISD ditunjukkan pada Gambar 1.2.

2) SIMD (Single Instruction – Multiple Data). 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. Skema SIMD ditunjukkan pada Gambar 2.3.

4
3) MISD (Multiple Instructions – Single Data). 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. Skema MISD ditunjukkan pada Gambar 1.4.

4) MIMD (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. Skema MIMD
ditunjukkan pada Gambar 1.5.

5
Sistem komputer paralel dibedakan dari cara kerja memorinya menjadi shared
memory dan distributed memory. Shared memory berarti memori tunggal diakses
oleh satu atau lebih prosesor untuk menjalankan instruksi sedangkan distributed
memory berarti setiap prosesor memiliki memori sendiri untuk menjalankan
instruksi. Menurut A.J. Van der Steen dan J. Donggara baik sistem shared memory
maupun distributed memory merupakan SIMD atau MIMD.

Top500 Team membagi arsitektur komputer paralel dalam 6 kelompok


berdasarkan daftarnya sejak tahun 1993 yaitu : SIMD, Single Processor, SMP,
MPP, Constellation dan Cluster. Dari keenam arsitektur tersebut hanya 3 kelompok
yang masih bertahan dalam daftar di Nopember 2009 seperti ditunjukkan dalam
Gambar 1.6.

Pada penelitian ini arsitektur yang digunakan adalah cluster PC multicore yang
merupakan penerapan arsitektur MIMD dengan distributed shared memory. Skema
arsitektur ini ditunjukkan pada Gambar 1.7. Adapun komponen-komponen utama
dari arsitektur komputer paralel cluster PC antara lain :

1. Prosesor (CPU). Bagian paling penting dalam sistem, untuk


multicore terdapat lebih dari satu core yang mengakses sebuah
memori (shared memory).
2. Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian
penyusunnya seperti RAM, cache memory dan memori eksternal.
3. Sistem Operasi. Software dasar untuk menjalankan sistem komputer.
4. Cluster Middleware. Antarmuka antara hardware dan software.

6
5. Programming Environment dan Software Tools. Software yang
digunakan untuk pemrograman paralel termasuk software
pendukungnya.
6. User Interface. Software yang menjadi perantara hardware dengan
user.
7. Aplikasi. Software berisi program permasalahan yang akan
diselesaikan.
8. Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain
sehingga memungkinkan pemanfaatan sumberdaya secara simultan.

2. Komputer Multicore
Pada saat ini PC secara umum telah menggunakan paralelisme thread-level
dengan berkembangnya teknologi multicore. Teknologi ini menempatkan lebih dari
satu general purpose processor pada satu keping mikroprosesor sehingga
memungkinkan lebih dari satu thread bekerja secara simultan. Prosesor multicore
umumnya menggunakan prinsip shared-memory, dimana masing-masing core
processor terhubung dengan sebuah memori internal (cache memory) yang menjadi
perantara baginya dengan memori eksternal seperti RAM. Hal ini ditunjukkan
dengan Gambar 1.8. Namun demikian adapula prosesor multicore yang
menggunakan prinsip message passing untuk berkomunikasi antar core.

7
Paralelisme fisik pada prosesor multicore sebenarnya tidak serta merta
mendorong peningkatan performansi komputer. Jumlah core yang banyak tidak
akan berpengaruh bila tidak didukung dengan algoritma dan aplikasinya. Program
paralel dengan berbagai level paralelisme dapat diterapkan untuk mengoptimalkan
kinerja prosesor, mulai dari instruction-level parallelism (ILP) hingga thread-level
parallelism (TLP).

Keuntungan teknologi multicore di antaranya adalah :

1. Percepatan proses dengan adanya cache coherency circuitry.


2. Penghematan ruang yang berarti semakin kecil ukuran fisik
mikroprosesor.
3. Penghematan energi karena daya yang digunakan oleh dua
singlecore lebih besar dibandingkan dengan sebuah dualcore.
Selain keuntungan, prosesor multicore juga tidak lepas dari kekurangan yaitu :

1. Perlu pembaruan software sehingga mendukung kinerja core yang


tersedia.
2. Kesulitan mengelola panas yang dihasilkan oleh kerja prosesor.
3. Kesulitan meningkatkan performansi prosesor karena keterbatasan
bandwidth memori dan bus sharing.

3. Algoritma Paralel
Komputasi paralel digunakan untuk menyelesaikan permasalahan komputasi
yang besar atau komplek. Program paralel dibuat khusus atau dimodifikasi dari
8
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 algortima paralel yang berbeda.

Algoritma paralel menjelaskan langkah-langkah yang ditempuh oleh komputer


paralel dalam menyelesaikan permasalahan. Hal-hal yang ada dalam algoritma
paralel meliputi :

1) Identifikasi terhadap beban permasalahan 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 algortima paralel, di antaranya : data parallel, task
graph, work pool, master-slave (message passing), dan pipeline. Algoritma paralel
yang digunakan untuk arsitektur cluster PC umumnya menggunakan message
passing, di mana 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 granularitas.

a. Dekomposisi (pembagian beban kerja)

Pembagian beban pekerjaan adalah hal utama dalam algoritma paralel, karena
tujuan utama komputasi paralel adalah mempercepat proses dengan mengerjakan
permasalahan menggunakan sumberdaya yang dimiliki secara bersamaan.
Berdasarkan obyek yang dibagi, dekomposisi dibedakan menjadi dekomposisi data
(domain) dan dekomposisi fungsi.

Dekomposisi menyesuaikan permalasahan yang dikerjakan, semisal untuk


permasalahan yang melibatkan pengulangan (iterasi) input data yang besar di mana
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.

9
b. Mapping (pemetaan beban kerja)

Mapping terkait erat dengan arsitektur dan kapasitas komputer paralel yang
digunakan. Mapping juga terkait erat dengan dekomposisi, di mana beban pekerjaan
yang dibagi-bagi akan diberikan pada proses-proses secara paralel.

Pada arsitektur homogen di mana 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.

c. 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 dari pada 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.

4. Algortima Multithreading

Definisi komputasi paralel memberikan pemahaman bahwa komponen-


komponen dalam komputer menjadi bagian yang dieksploitasi untuk meningkatkan
performansi terutama kecepatannya. Selain pengembangan hardware seperti
prosesor dan memori, yang juga dikembangkan adalah eksploitasi terhadap
pemrograman aplikasinya (software). Eksploitasi software merupakan solusi yang
mungkin dilakukan dengan biaya ringan, salah satunya penggunaan teknik
pemrograman paralel dengan multithreading.

10
Komputasi paralel sangat dipengaruhi oleh perkembangan teknologi komputer,
terutama prosesor. Komputer singlecore telah menggunakan teknik pemrograman
paralel untuk meningkatkan kinerjanya, sebagai contoh penggunaan hyperthreading
pada prosesor Intel. Sedangkan untuk komputer multicore ada beberapa teknik yang
diterapkan, salah satunya adalah multithreading. Bila dalam sistem operasi kita
mengenal task, process dan thread, maka multithreading adalah paralelisme thread-
level sebagaimana penerapan multitasking dan multiprocessing. Sebuah thread
adalah sebuah aliran kendali tunggal di dalam suatu program sehingga teknik
multithreading diartikan sebagai teknik yang memanfaatkan lebih dari satu aliran
kendali di dalam suatu program.

Teknik multithreading berdasarkan survey bila dipadukan dengan teknologi


multicore terbukti meningkatkan performansi CPU. Dalam beberapa penelitian
termasuk, penggunaan thread-level programming menjadi solusi bagi peningkatan
performansi komputer paralel, sehingga keunggulan message passing dipadukan di
antara dua pustaka paralel seperti MPI dan OpenMP.

a. Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan
jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi
memori yang tersedia, menggunakan program counter dan mengeksekusi program
secara independen. Sistem operasi menempatkan satu thread pada prosesor dan
menukarnya dengan thread lain yang hendak menggunakan prosesor itu.

Mekanisme ini terhitung lambat, karenanya disebut dengan static. Selain itu
teknik ini tidak mudah diterapkan dan rentan kesalahan. Alasannya, pembagian
pekerjaan yang dinamis di antara thread-thread menyebabkan load balancing-nya
cukup rumit. Untuk memudahkannya programmer harus menggunakan protokol
komunikasi yang kompleks untuk menerapkan scheduler load balancing. Kondisi
ini mendorong pemunculan concurrency platforms yang menyediakan layer untuk
mengkoordinasi, menjadwalkan, dan mengelola sumberdaya komputasi paralel.
Sebagian platform dibangun sebagai runtime libraries atau sebuah bahasa
pemrograman paralel lengkap dengan compiler dan pendukung runtime-nya.

11
b. Dynamic Multithreading
Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan
untuk kemudahan karena dengannya programmer tidak harus pusing dengan
protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static
threading. Concurrency platform ini menyediakan scheduler yang melakukan load
balacing secara otomatis. Walaupun platformnya masih dalam pengembangan
namun secara umum mendukung dua fitur : nested parallelism dan parallel loops.

Nested parallelism memungkinkan sebuah subroutine di-spawned


(ditelurkan dalam jumlah banyak seperti telur katak) sehingga program utama tetap
berjalan sementara subroutine menghitung hasilnya. Sedangkan parallel loops
seperti halnya fungsi for namun memungkinkan iterasi loop dilakukan secara
bersamaan. Salah satu contoh paltform ini adalah Cilk++.

4. Aplikasi Pengujian
Membahas tentang aplikasi yang digunakan dalam pengujian algortima
paralel yaitu perkalian matrik dan pengurutan data.

a. Perkalian Matriks

Perkalian matriks adalah sebuah operasi dasar pada berbagai aplikasi aljabar
linier. Perkalian matrik digunakan di banyak penelitian yang berhubungan dengan
pengujian kinerja komputasi paralel. Ukuran-ukuran matriks yang digunakan
merupakan range sampel pengujian algoritma paralel.

Untuk mengalikan dua matriks n x n digunakan algoritma rekursif. Misal


matriks C adalah hasil perkalian matriks A dan matriks B seperti ditunjukkan oleh
Persamaan 1.1 maka operasi yang dilakukan adalah 8 perkalian dan 4 penjumlahan
dari submatriks (n/2) x (n/2).

b. Pengurutan Data (Sorting)


12
Pengurutan data (sorting) adalah operasi sederhana yang melibatkan iterasi yang
besarnya tergantung pada jumlah dan komposisi datanya. Operasi ini juga
digunakan dalam berbagai penelitian sebagai aplikasi pengujian komputasi paralel.
Panjang rangkaian data acak yang digunakan merupakan range sampel pengujian
algoritma paralel. Ilustrasi sorting abjad ditunjukkan pada Gambar 1.9.

Algortima sorting yang dikenal ada beberapa di antaranya : insertion sort,


merge sort, dan quick sort. Adapun secara umum algoritma sorting menggunakan
prinsip divide and conquer.

c. Algoritma Serial Aplikasi Pengujian


Kedua aplikasi tersebut biasa dikerjakan secara serial (sekuensial) dengan
algortima seperti terlihat pada Gambar 1.10 dan Gambar 1.11. Dari algoritma
tersebut diperoleh jumlah operasi untuk aplikasi perkalian matriks yang harus
diproses adalah berjumlah n x n x n perkalian dan n penjumlahan atau total n 3 + n2
operasi.

Sedangkan untuk aplikasi sorting jumlah operasi yang harus diproses adalah
berjumlah n log n (dengan asumsi menggunakan algoritma quick sort).

13
d. Kontribusi Parallel Processing
Parallel Processing 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 lain.

e. Bioinformatika
Bioinformatika adalah ilmu yang mempelajari penerapan teknik
komputasional untuk mengelola dan menganalisis informasi biologis. Bidang ini
mencakup penerapan metode-metode matematika, statistika, dan informatika untuk
memecahkan masalah-masalah biologis, terutama dengan menggunakan sekuens
DNA dan asam amino serta informasi yang berkaitan dengannya. Contoh topik
utama bidang ini meliputi basis data untuk mengelola informasi biologis,
penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan
bentuk struktur protein maupun struktur sekunderRNA, analisis filogenetik, dan
analisis ekspresi gen.

Bioinformatika adalah teknologi pengumpulan, penyimpanan, analisis,


interpretasi, penyebaran dan aplikasi dari data-data biologi molekul. Perangkat
utama Bioinformatika adalah software dan didukung oleh kesediaan internet dan
server World Wide Web (WWW).

5. Apa itu Komputasi Terdistribusi

Komputasi terdistribusi adalah metode menggabung beberapa komputer


bekerja sama untuk memecahkan masalah umum. Komputasi ini membuat jaringan

14
komputer muncul sebagai sebuah komputer tunggal yang tangguh dan menyediakan
sumber daya berskala besar untuk menghadapi tantangan yang kompleks.

a. cara kerja Komputasi Terdistribusi

Agar suatu masalah atau aktivitas tersebar ke beberapa sumber daya komputer,
komputasi terdistribusi terlebih dahulu membaginya menjadi bagian-bagian yang
lebih kecil dan lebih mudah dikelola. Kemudian, setiap node menyelesaikan bagian
tugas tertentu sementara bagian tersebut dikerjakan secara bersamaan. Setelah setiap
komponen selesai, komponen tersebut dikirim kembali ke server pusat atau node,
yang mencampur semuanya untuk membuat produk jadi.

Sistem komputasi terdistribusi menggunakan protokol komunikasi seperti Message


Passing Interfaces (MPI) dan Remote Procedure Calls (RPC) untuk memudahkan
komunikasi antar node. Protokol ini memungkinkan berbagi data dan sinkronisasi
tugas antar node. Middleware, yang mengontrol komunikasi node-to-node, dan
penyeimbang beban, yang mendistribusikan beban kerja secara merata antar node,
merupakan komponen sistem selanjutnya.

Mengelola sinkronisasi dan koordinasi beberapa node merupakan salah satu kesulitan
utama dalam komputasi terdistribusi. Untuk memastikan bahwa setiap node bekerja
pada bagian pekerjaan yang tepat pada waktu yang tepat, diperlukan perencanaan dan
administrasi yang cermat. Karena tugas dan data rentan terhadap serangan atau akses
ilegal, pengendalian keamanan sistem komputasi terdistribusi sangatlah penting.

b. Jenis-jenis Komputasi Terdistribusi

Aplikasi yang berjalan di banyak komputer dibandingkan hanya satu komputer


dibuat untuk komputasi terdistribusi. Dengan mengembangkan program, Anda dapat
membuat banyak komputer bekerja sama untuk menyelesaikan berbagai tugas dan
memberikan hasil yang diinginkan. Daftar berikut mencakup empat tipe utama
arsitektur terdistribusi;

 Arsitektur klien-server: Arsitektur klien-server adalah jenis organisasi perangkat


lunak sistem terdistribusi yang paling umum. Dua kategori yang memisahkan
pekerjaan adalah klien dan server. Kemampuan klien untuk memproses informasi

15
terbatas. Sebaliknya, server, yang mengontrol sebagian besar data dan sumber daya
lainnya, mendapatkan kueri. Anda mengirimkan pertanyaan ke klien, yang merespons
ke server atas nama Anda. Akses sumber daya dikoordinasikan dan dikelola oleh
sistem server. Menanggapi pertanyaan klien, mereka memberikan statistik atau
pembaruan status. Satu server seringkali mempunyai kapasitas untuk bereaksi
terhadap permintaan yang berasal dari beberapa komputer.

Arsitektur client-server memiliki keunggulan keamanan dan kemudahan pengelolaan


berkelanjutan. Anda hanya harus fokus pada menjaga peralatan server. Demikian
pula, perbaikan sistem basis data hanya memerlukan perubahan di sisi
server. Kerugian dari arsitektur client-server adalah kemungkinan terjadinya
hambatan komunikasi yang disebabkan oleh server, terutama ketika banyak stasiun
kerja mengirimkan permintaan secara bersamaan.

 Arsitektur tiga tingkat: Dengan sistem terdistribusi tiga tingkat, mesin klien terus
menjadi lapisan pertama yang Anda temui. Ada dua kategori lagi untuk mesin server
di sisi lain. Komunikasi tingkat menengah dilakukan oleh server aplikasi. Mereka
terdiri dari operasi inti atau logika program yang dirancang untuk sistem
terdistribusi. Server basis data membentuk lapisan ketiga untuk menangani dan
menyimpan data. Mereka bertugas mengambil data dan menjaga integritas
data. Dengan menyebarkan tanggung jawab server, sistem terdistribusi tiga tingkat
mengurangi kemacetan komunikasi dan meningkatkan efektivitas komputasi
terdistribusi.

 Arsitektur N-tier: Model N-tier menggunakan beberapa sistem klien-server yang


bekerja sama untuk memecahkan satu masalah. Banyak sistem terdistribusi
kontemporer memiliki arsitektur n-tier, dengan sejumlah aplikasi bisnis yang bekerja
sama sebagai satu sistem di latar belakang.

 Arsitektur peer-to-peer: Sistem terdistribusi peer-to-peer menetapkan tugas yang


sama untuk setiap mesin jaringan. Komputer tidak terbagi antara tipe klien dan server,
dan masing-masing mampu melakukan pekerjaan apa pun. Arsitektur peer-to-peer
menjadi lebih populer untuk digunakan dalam pertukaran konten, jaringan blockchain,
dan streaming media.

16
c. penggunaan komputasi terdistribusi

Penerapan aplikasi dan kemampuan otomatisasi dan pendukung keputusan


yang mutakhir, serta skalabilitas dan kecepatan pengembangan yang lebih besar,
semuanya dimungkinkan oleh cloud terdistribusi dan komputasi edge.

 Peningkatan pengelolaan dan visibilitas: Peningkatan visibilitas dan pengelolaan


infrastruktur hybrid cloud/multi-cloud: Cloud terdistribusi memungkinkan visibilitas
dan administrasi infrastruktur hybrid cloud/multi-cloud dari satu konsol dengan
seperangkat alat, yang dapat membantu keuntungan bisnis apa pun kontrol yang lebih
besar terhadapnya.
 Ilmu hayati dan layanan kesehatan: Untuk memodelkan dan mensimulasikan data
ilmu hayati yang kompleks, komputasi terdistribusi digunakan dalam bidang
kesehatan dan ilmu hayati. Sistem terdistribusi telah meningkatkan kecepatan
pemrosesan gambar, pengembangan obat, dan analisis struktur gen. Contohnya
adalah: Model molekuler dapat dilihat dalam tiga dimensi, yang dapat mempercepat
pembuatan obat dengan pendekatan berbasis struktur. Dapatkan wawasan awal
mengenai kanker, fibrosis kistik, dan penyakit Alzheimer dengan mempercepat
pemrosesan data genetik. Mengembangkan sistem cerdas yang dapat menganalisis
sejumlah besar gambar rumit dari MRI, X-ray, dan CT scan untuk membantu dokter
dalam mendiagnosis pasien.
 Penilaian Teknik: Insinyur dapat mewakili konsep fisika dan mekanik yang
kompleks menggunakan jaringan terdistribusi. Studi ini digunakan untuk membuat
bangunan yang lebih rumit, mobil yang lebih cepat, dan desain produk yang lebih
baik.

Dinamika fluida komputasi meneliti bagaimana cairan berperilaku dan menggunakan


temuannya untuk membuat dan membalap pesawat terbang. Untuk menilai teknik pabrik
baru, elektronik, dan barang konsumsi, teknik berbantuan komputer memerlukan alat
simulasi yang intensif secara komputasi.

 Jasa Keuangan: Sistem terdistribusi digunakan oleh perusahaan jasa keuangan untuk
menjalankan simulasi ekonomi cepat yang membantu menganalisis risiko portofolio,
memprediksi pergerakan pasar, dan mendukung pengambilan keputusan
keuangan. Mereka mungkin merancang aplikasi web yang dapat melakukan tugas-

17
tugas berikut dengan memanfaatkan sistem terdistribusi: Memberikan premi
individual yang terjangkau. Untuk mendukung transaksi keuangan dalam jumlah
besar dengan aman, gunakan database terdistribusi. Pengguna yang diautentikasi
melindungi klien dari penipuan.

 Aplikasi yang berpusat pada data: Data kini mengalir dari berbagai perangkat IoT
baru serta sensor, perangkat pintar, peralatan ilmiah, dan sumber lainnya. Ledakan
data melibatkan jaringan secara signifikan. Grid digunakan untuk mengumpulkan,
menyimpan, dan menganalisis data serta mendapatkan pola dari data untuk
menciptakan pengetahuan.

Untuk aplikasi berorientasi data, kasus penggunaan DAME (lingkungan pemeliharaan


pesawat terdistribusi) cocok. Inggris menciptakan DAME, sistem diagnostik
terdistribusi untuk mesin pesawat. Data penerbangan dalam jumlah besar yang
dikumpulkan oleh pesawat yang beroperasi dikelola melalui teknologi
jaringan. Sistem pendukung keputusan untuk diagnosis dan pemeliharaan pesawat
dirancang dan dikembangkan menggunakan sumber daya dan data yang tersebar
secara global.

 Aplikasi bisnis: Ketika sumber daya yang menuntut komputasi, seperti komputer dan
jaringan penyimpanan, diperlukan, misalnya dalam berbagai aplikasi komersial,
seperti game online dan sektor hiburan, komputasi terdistribusi sangat
membantu. Sumber daya dipilih dalam sistem grid untuk bermain game tergantung
pada kebutuhan komputasi. Ini mempertimbangkan variabel seperti volume lalu lintas
dan jumlah peserta.

Meskipun meminimalkan biaya awal sumber daya perangkat keras dan


perangkat lunak dalam permainan berdasarkan permintaan, jaringan tersebut
mendorong permainan kooperatif. Dengan menggabungkan efek khusus, komputasi
terdistribusi meningkatkan daya tarik estetika film gerak di sektor media.

d. Keuntungan Komputasi Terdistribusi

Melalui komputasi terdistribusi, komputer cluster beroperasi seolah-olah


mereka adalah satu mesin. Terlepas dari kompleksitas model multi-komputer,
keunggulan berikut ini lebih besar daripada komputasi terdistribusi:
18
 Fleksibilitas dan Skalabilitas: Sistem terdistribusi memudahkan untuk menambah
atau menghapus node (komputer) dari jaringan dan beradaptasi dengan perubahan
kebutuhan. Untuk menjamin bahwa Anda selalu memiliki sumber daya yang Anda
perlukan, skala sistem ditingkatkan atau diturunkan seperlunya, baik untuk sementara
maupun permanen. Selain itu, memungkinkan untuk mengakomodasi lebih banyak
pengguna dan menangani beban kerja yang lebih berat tanpa jeda atau gangguan apa
pun. Hal ini berbeda dengan sistem terpusat, yang membuat penskalaan menjadi sulit
karena semua data dan kekuatan pemrosesan terkonsentrasi di satu lokasi.
 Penyimpanan yang diperluas: Penyimpanan yang lebih besar dimungkinkan berkat
komputasi terdistribusi. Hal ini disebabkan oleh fakta bahwa data tersebar di beberapa
komputer dan bukannya disimpan di satu lokasi terpusat. Artinya, data tetap tersedia
dari komputer lain meskipun salah satu komputer rusak. Ini menyiratkan bahwa Anda
dapat dengan mudah menambahkan lebih banyak komputer ke jaringan jika Anda
memerlukan kapasitas penyimpanan lebih besar.
 Peningkatan keamanan: Distribusi data di antara banyak komputer mempersulit
peretas untuk memasuki sistem dan mencuri data. Hal ini karena data tidak
dikonsolidasikan di satu lokasi, sehingga lebih sulit untuk diretas. Anda dapat
membangun jaringan yang lebih terdiversifikasi dan aman dengan memanfaatkan
banyak stasiun kerja. Mesin lain akan tetap aman meskipun ada yang diretas. Data
Anda selalu aman berkat ini.
 Kinerja: Jumlah total waktu yang diperlukan untuk eksekusi berkurang ketika
pekerjaan dibagi ke beberapa komputer. Hal ini bertujuan agar total waktu eksekusi
menjadi berkurang. Setiap mesin berfokus pada satu bagian tugas pada satu
waktu. Untuk memproses data dalam jumlah besar, peningkatan kinerja ini sangat
membantu. Misalnya, menyebarkan tugas ke beberapa stasiun kerja akan
mempercepat pemrosesan secara signifikan jika Anda mencoba menganalisis data
dalam jumlah besar.
 Peningkatan keandalan: Peningkatan ketergantungan adalah salah satu manfaat
utama komputasi terdistribusi. Kemungkinan terjadinya kesalahan sangat rendah
ketika tugas diselesaikan pada banyak mesin. Hal ini dimaksudkan agar, jika terjadi
kegagalan komputer, komputer lainnya tetap dapat menyelesaikan pekerjaannya.
 Efektivitas biaya: Ada beberapa faktor yang menjadikan komputasi terdistribusi
sebagai pilihan yang ekonomis. Pertama, hal ini memungkinkan perusahaan untuk
memanfaatkan aset mereka saat ini dibandingkan mengeluarkan uang untuk
19
infrastruktur baru. Ini membantu menurunkan beban server dan penggunaan energi,
menjadikannya lebih ramah lingkungan.
 Latensi Rendah: Jumlah waktu yang diperlukan paket data untuk berpindah dari satu
lokasi ke lokasi lain dikenal sebagai latensi. Latensi rendah adalah keuntungan utama
komputasi terdistribusi karena memungkinkan pergerakan data dalam jumlah besar
dengan cepat. Sistem beroperasi lebih cepat, semakin cepat data dapat diproses dan
dikirim kembali. Sebagian besar sistem terdistribusi saat ini memiliki latensi kurang
dari 100 milidetik, berkat kemajuan teknologi. Dengan melakukan ini, Anda dapat
yakin bahwa aplikasi Anda akan beroperasi dengan sempurna. Faktanya, mengurangi
latensi adalah salah satu tujuan utama komputasi terdistribusi, menurut Universitas
Stanford.

e. Kekurangan Komputasi Terdistribusi

 Transfer jaringan lambat: Data harus diangkut antar node ketika tersebar di
beberapa node. Jika koneksi jaringan antar node lamban atau padat, hal ini dapat
mengakibatkan kemacetan. Misalkan sebuah bisnis yang memproses transaksi
penjualan menggunakan sistem komputasi terdistribusi sebagai ilustrasi. Pemrosesan
transaksi tertunda atau bahkan dicegah jika koneksi jaringan antar node lambat.
 Kompleksitas sistem: Peningkatan kompleksitas sistem dihasilkan dari komputasi
terdistribusi. Melacak dan mengelola semua bagian yang bergerak merupakan
tantangan ketika beberapa sistem beroperasi secara bersamaan. Kegagalan sistem dan
data yang tidak konsisten mungkin diakibatkan oleh hal ini.
 Masalah dengan standardisasi: Mungkin sulit menemukan sistem terdistribusi yang
memenuhi kebutuhan unik Anda karena ada begitu banyak jenisnya. Setiap sistem
memiliki serangkaian instruksi dan proses yang unik, sehingga sulit untuk dipahami
dan digunakan.
 Biaya pemeliharaan: Biaya pemeliharaan sistem komputasi terdistribusi
tinggi. Memecahkan masalah dan menyelesaikan masalah ketika masalah terjadi
menjadi lebih sulit karena sistem tersebar di beberapa tempat. Selain itu, jumlah
komponen yang lebih tinggi meningkatkan risiko kegagalan fungsi perangkat keras
dan perangkat lunak. Akibatnya, bisnis sering kali perlu mencurahkan sumber daya
tambahan untuk mendukung sistem komputasi terdistribusi mereka.

20
 Risiko kegagalan komponen yang disebabkan oleh kesalahan manusia:Kesalahan
manusia selalu mungkin terjadi ketika bekerja dengan banyak bagian dan sistem. Hal
ini terjadi ketika pengguna yang tidak terbiasa dengan sistem melakukan kesalahan
yang menyebabkan komponen gagal. Misalnya, jika seorang programmer secara tidak
sengaja menghapus file penting, seluruh sistem menjadi tidak dapat
digunakan. Ilustrasi lainnya adalah jika konfigurasi jaringan telah salah dikonfigurasi
oleh administrator, sehingga melarang pengguna mengakses sistem. Kegagalan
komponen karena kesalahan manusia mungkin saja terjadi, namun ada prosedur yang
dapat dilakukan untuk mengurangi risiko tersebut. Misalnya, untuk mengurangi
kemungkinan pengguna melakukan kesalahan, pengembang dapat membuat
dokumentasi dan materi pelatihan yang menyeluruh. Anda dapat memasukkan checks
and balances ke dalam desain sistem Anda untuk membantu mencegah kesalahan
seperti penghapusan yang tidak disengaja.
 Pembatasan bandwidth: Setiap node dalam sistem harus berbagi sejumlah
bandwidth tertentu agar mereka dapat berinteraksi satu sama lain. Sistem menjadi
terhambat dan kinerja mulai menurun ketika batas ini tercapai. Untuk sistem
terdistribusi skala besar, hal ini sering menjadi masalah karena volume data yang
dibutuhkan mungkin akan melebihi bandwidth. Oleh karena itu, perencanaan dan
desain yang cermat diperlukan untuk menjamin bahwa semua node sistem masih
dapat berinteraksi satu sama lain dengan sukses.
 Mengembangkan hambatan: Semua node (komputer) dalam jaringan harus
memiliki konfigurasi yang sama dan dapat berinteraksi satu sama lain agar sistem
terdistribusi dapat berfungsi dengan baik. Organisasi dengan infrastruktur TI yang
lebih rumit mungkin akan mengalami kesulitan jika personel TI mereka tidak
memiliki keterampilan yang diperlukan.

f. Contoh Komputasi Terdistribusi

 Media sosial: Facebook dengan cepat menampilkan postingan kepada Anda di balik
layar dengan memanfaatkan komputasi terdistribusi. Hal ini menunjukkan bahwa
mereka telah membagi tugas mengawasi postingan menjadi bagian-bagian yang lebih
kecil dan mendistribusikannya ke beberapa komputer di seluruh dunia. Sebuah
komputer memperingatkan kantor perusahaan Facebook ketika menemukan sesuatu

21
yang menarik. Agar Anda dapat melihat postingan di umpan berita Anda, mereka
mengumpulkan semua komunikasi dari berbagai komputer di sana.
 Perbankan online: Anda dengan mudah mengelola rekening Anda tanpa pergi ke
lokasi bank sebenarnya dengan menggunakan perbankan online. Namun, pernahkah
Anda bertanya-tanya bagaimana komputer atau ponsel, misalnya, dapat berinteraksi
dengan komputer bank? Komputasi terdistribusi berisi solusinya. Saat Anda
menggunakan perbankan online, perangkat Anda dapat berkomunikasi dengan
komputer bank menggunakan jaringan semacam ini untuk mengirim dan menerima
data. Hal ini memungkinkan Anda untuk memeriksa saldo rekening Anda,
mentransfer uang, dan membayar tagihan, semuanya dari kenyamanan rumah
Anda. Oleh karena itu, perlu diingat bahwa lain kali Anda menggunakan rekening
perbankan online, Anda mendapatkan manfaat dari salah satu dari banyak aplikasi
komputasi terdistribusi.
 Membandingkan harga: Saat berbelanja online, harga barang dari banyak pengecer
digabungkan menggunakan metode komputasi terdistribusi. Tawaran terbaik bagi
klien ditentukan dengan membandingkan biaya barang yang sebanding atau
identik. Pelanggan menemukan diskon dan kupon menggunakan metode
ini. Perbandingan ini dipercepat dengan komputasi terdistribusi karena menggunakan
banyak komputer, bukan hanya satu komputer. Hal ini memungkinkan pelanggan
untuk membandingkan biaya dan mengidentifikasi penghematan dengan segera.
 Transportasi bersama: Untuk menghubungkan pengemudi dan penumpang,
perusahaan seperti Uber dan Lyft benar-benar menerapkan sistem terdistribusi. Sistem
ini menggunakan ribuan komputer independen, atau "node", untuk menangani
permintaan. Saat Anda meminta tumpangan, komputer Anda mengirimkan sinyal ke
node terdekat, yang kemudian meneruskannya ke node terdekat berikutnya hingga
mencapai pengemudi. Pendekatan ini sangat efektif dan memungkinkan perusahaan
ride-sharing menyediakan layanan mereka di banyak lokasi di seluruh dunia.
 Platform streaming: Komputasi terdistribusi mendukung infrastruktur streaming
video yang digunakan oleh Netflix, Amazon Prime Video, HBO GO, dan Hulu. Anda
mungkin terkejut mengetahui bahwa layanan streaming sering kali memanfaatkan
komputasi terdistribusi untuk menawarkan pengalaman yang terukur dan dapat
diandalkan. Layanan streaming menawarkan tingkat skalabilitas dan ketergantungan
yang jauh lebih tinggi dibandingkan dengan satu komputer dengan memanfaatkan
beberapa mesin yang berlokasi di seluruh dunia.
22
 Alat pencarian: Pertimbangkan kapan terakhir kali Anda menggunakan mesin
pencari untuk mencari sesuatu secara online. Jaringan komputer global yang luas
menerima permintaan Anda saat Anda mengetikkan kueri dan menekan tombol
"enter". Mesin ini, terkadang disebut sebagai server, memproses permintaan Anda dan
mengembalikan hasilnya. Mesin pencari sangat bergantung pada komputasi
terdistribusi untuk memproses sejumlah besar data yang mereka perlukan untuk
mengindeks dan memberikan hasil pencarian. Mesin pencari dapat mengindeks dan
memberikan hasil kepada pengguna dengan cepat dengan membagi operasi pencarian
di beberapa komputer.
 Pertukaran file: Komputer Anda melakukan tugas mengunduh file saat Anda
mengunduh sesuatu dari internet. Meskipun demikian, Anda secara bersamaan
membagikan file tersebut dengan pengguna lain yang mengunduhnya. Oleh karena
itu, Anda semua berbagi pekerjaan dalam arti tertentu.
 Email: Komputer Anda mengirimkan email ke server setiap kali Anda
mengirimnya. Meskipun demikian, komputer Anda juga secara bersamaan menerima
email dari pengguna lain. Anda membagi tugas sekali lagi.

g. Kerangka kerja dan alat komputasi terdistribusi apa yang paling populer

Sekarang mari kita bahas beberapa kerangka kerja paling populer untuk komputasi
terdistribusi. Ini hanya segelintir dari sekian banyak kerangka kerja komputasi
terdistribusi yang tersedia.

 Hadoop: Kerangka kerja komputasi terdistribusi yang paling terkenal tidak diragukan
lagi adalah Hadoop. Ini adalah proyek sumber terbuka yang dibangun berdasarkan
metodologi pemrograman MapReduce dan dibuat oleh Apache Software
Foundation. Data dalam jumlah besar sering kali diproses secara batch menggunakan
Hadoop.

 Spark: Berdasarkan model pemrograman Resilient Distributed Datasets (RDD),


Spark adalah platform komputasi terdistribusi sumber terbuka tambahan. Ini sering
digunakan untuk pemrosesan batch dan streaming karena dimaksudkan agar lebih
cepat dan lebih mudah beradaptasi daripada Hadoop.

23
 Flink: Flink adalah platform sumber terbuka untuk komputasi jaringan yang dibuat
terutama untuk pemrosesan aliran. Karena kapasitasnya untuk menangani data batch
dan streaming serta pemrosesan data real-time, ini menjadi semakin populer.
 Storm: Storm adalah sistem terdistribusi untuk pemrosesan real-time. Ini cocok untuk
kasus penggunaan pemrosesan waktu nyata termasuk analitik, pembelajaran mesin
online, dasbor waktu nyata, dan banyak lagi karena mudah digunakan, dapat
digunakan dengan bahasa pemrograman apa pun, dan lugas.

24

Anda mungkin juga menyukai