Anda di halaman 1dari 8

Nama : Ari Ghiffari

Stambuk : F55118031
Kelas :A

Prinsip Komputasi Paralel dan Terdistribusi Komputasi awan adalah tren teknologi
baru yang mendukung pemanfaatan infrastruktur TI yang lebih baik, layanan dan
aplikasi. Ini mengadopsi model pemberian layanan berdasarkan pendekatan bayar
per penggunaan, di pengguna mana yang tidak memiliki infrastruktur, platform atau
aplikasi, tetapi menggunakannya untuk saat ini butuh mereka. Aset TI ini dimiliki dan
dipelihara oleh penyedia layanan yang membuatnya dapat diakses melalui Internet.

A. Era komputasi
Dua model komputasi fundamental dan dominan adalah sekuensial dan paralel. Era
komputasi sekuensial dimulai pada 1940-an, era komputasi paralel dan terdistribusi
mengikutinya dalam satu dekade. Empat elemen kunci komputasi berkembang
selama era ini adalah arsitektur, kompiler, aplikasi, dan lingkungan pemecahan
masalah. Era komputasi dimulai dengan perkembangan arsitektur perangkat keras,
yang sebenarnya memungkinkan pembuatan perangkat lunak system terutama di
bidang penyusun dan sistem operasi yang mendukung pengelolaan sistem tersebut
dan pengembangan aplikasi. Pengembangan dari aplikasi dan sistem adalah
elemen utama yang menarik bagi kami, dan saat itu menyangkut konsolidasi
lingkungan pemecahan masalah dirancang dan diperkenalkan untuk memfasilitasi
dan memberdayakan para insinyur. Inilah saat paradigma yang mencirikan
komputasi mencapai kematangan dan menjadi arus utama.

B. Komputasi paralel vs. terdistribusi


Istilah komputasi paralel dan komputasi terdistribusi sering digunakan secara
bergantian, bahkan meskipun artinya sedikit berbeda. Istilah paralel menyiratkan
sistem yang berpasangan erat, sedangkan terdistribusi mengacu pada kelas sistem
yang lebih luas, termasuk yang berpasangan erat. Lebih tepatnya, istilahnya
komputasi paralel mengacu pada model di mana komputasi dibagi di antara
beberapa prosesor yang berbagi memori yang sama. Arsitektur sistem komputasi
paralel sering dicirikan oleh homogenitas komponen: setiap prosesor memiliki tipe
yang sama dan memiliki kemampuan yang sama dengan yang lain. Memori
bersama memiliki ruang alamat tunggal, yang dapat diakses oleh semua prosesor.
Program paralel kemudian dipecah menjadi beberapa unit eksekusi yang dapat
dialokasikan ke prosesor yang berbeda dan dapat berkomunikasi satu sama lain
melalui memori bersama. Awalnya sistem paralel hanya arsitektur yang
menampilkan banyak prosesor yang berbagi memori fisik yang sama dan yang
dianggap sebagai satu komputer. Seiring waktu, pembatasan ini telah dilonggarkan,
dan sistem paralel sekarang mencakup semua arsitektur yang didasarkan pada
konsep memori bersama, baik hadir secara fisik atau dibuat dengan dukungan
pustaka, perangkat keras tertentu, dan infrastruktur jaringan yang sangat efisien.

Syarat komputasi terdistribusi meliputi arsitektur atau sistem apa pun yang
memungkinkan komputasi dipecah menjadi beberapa unit dan dijalankan secara
bersamaan pada elemen komputasi yang berbeda, baik prosesor pada node yang
berbeda, prosesor pada komputer yang sama, atau inti dalam prosesor yang sama.
Oleh karena itu, komputasi terdistribusi mencakup sistem dan aplikasi yang lebih
luas daripada komputasi paralel dan sering dianggap sebagai istilah yang lebih
umum.

C. Elemen komputasi paralel


Sekarang jelas bahwa chip prosesor berbasis silikon telah mencapai batas fisiknya.
Kecepatan pemrosesan dibatasi oleh kecepatan cahaya, dan kepadatan transistor
yang dikemas dalam prosesor dibatasi oleh batasan termodinamika. Solusi yang
layak untuk mengatasi keterbatasan ini adalah dengan menghubungkan beberapa
prosesor yang bekerja dalam koordinasi satu sama lain untuk memecahkan
masalah. Langkah pertama ke arah ini mengarah pada pengembangan komputasi
paralel, yang mencakup teknik, arsitektur, dan sistem untuk melakukan banyak
aktivitas secara paralel. Istilahnya komputasi paralel telah mengaburkan tepinya
dengan istilah komputasi terdistribusi dan sering digunakan sebagai pengganti istilah
terakhir. Di bagian ini, mengacu pada karakterisasi yang tepat, yang melibatkan
pengenalan paralelisme dalam satu komputer dengan mengoordinasikan aktivitas
beberapa prosesor secara bersamaan.

a. Apa itu pemrosesan paralel?


Pemrosesan beberapa tugas secara bersamaan pada beberapa prosesor disebut
proses paralel. Program paralel terdiri dari beberapa proses aktif secara bersamaan
memecahkan masalah yang diberikan. Tugas yang diberikan dibagi menjadi
beberapa subtugas menggunakan teknik divide-and-conquer, dan setiap subtugas
diproses pada unit pemrosesan pusat (CPU) yang berbeda. Pemrograman pada
sistem multiprosesor dengan menggunakan teknik divide-and-conquer
disebutpemrograman paralel.

Perkembangan pemrosesan paralel dipengaruhi oleh banyak faktor. Yang menonjol


di antara mereka adalah sebagai berikut:
• Persyaratan komputasi semakin meningkat di bidang komputasi ilmiah dan bisnis.
Masalah komputasi teknis, yang membutuhkan daya komputasi berkecepatan tinggi,
terkait dengan ilmu kehidupan, dirgantara, sistem informasi geografis, desain dan
analisis mekanis, dan sejenisnya.
• Arsitektur sekuensial mencapai batasan fisik karena dibatasi oleh hukum
kecepatan cahaya dan termodinamika. Kecepatan di mana CPU sekuensial dapat
beroperasi mencapai titik jenuh, dan karenanya cara alternatif untuk mendapatkan
kecepatan komputasi yang tinggi adalah dengan menghubungkan beberapa CPU
• Perbaikan perangkat keras dalam pipelining, superscalar, dan sejenisnya tidak
dapat diskalakan dan membutuhkan teknologi kompiler yang canggih.
Mengembangkan teknologi kompilator adalah tugas yang sulit
• Pemrosesan vektor berfungsi dengan baik untuk jenis masalah tertentu. Ini cocok
terutama untuk masalah ilmiah dan pemrosesan grafis. Ini tidak berguna untuk area
lain, seperti database
• Teknologi pemrosesan paralel sudah matang dan dapat dieksploitasi secara
komersial
• Perkembangan signifikan dalam teknologi jaringan membuka jalan bagi komputasi
heterogen.

b. Arsitektur perangkat keras untuk pemrosesan parallel


Elemen inti dari pemrosesan paralel adalah CPU. Berdasarkan jumlah instruksi dan
aliran data yang dapat diproses secara bersamaan, sistem komputasi
diklasifikasikan ke dalam empat kategori berikut:
• Sistem instruksi tunggal, data tunggal (SISD)
• Sistem instruksi tunggal, banyak data (SIMD)
• Sistem multi-instruksi, data tunggal (MISD)
• Sistem multi-instruksi, multi data (MIMD)

1. Sistem instruksi tunggal, data tunggal (SISD)


Sistem komputasi SISD adalah mesin uniprosesor yang mampu menjalankan
instruksi tunggal, yang beroperasi pada aliran data tunggal. Di SISD, instruksi mesin
diproses secara berurutan, maka komputer yang mengadopsi model ini disebut
dengan populerkomputer sekuensial. Sebagian besar komputer konvensional dibuat
menggunakan model SISD. Semua instruksi dan data yang akan diproses harus
disimpan di memori primer. Kecepatan elemen pemrosesan dalam model SISD
dibatasi oleh kecepatan di mana komputer dapat mentransfer informasi secara
internal. Sistem SISD perwakilan yang dominan adalah IBM PC, Macintosh, dan
workstation.

2. Sistem instruksi tunggal, banyak data (SIMD)


Sistem komputasi SIMD adalah mesin multiprosesor yang mampu menjalankan
instruksi yang sama pada semua CPU tetapi beroperasi pada aliran data yang
berbeda. Mesin yang didasarkan pada model SIMD sangat cocok untuk komputasi
ilmiah karena melibatkan banyak operasi vektor dan matriks.

3. Sistem multi-instruksi, data tunggal (MISD)


Sistem komputasi MISD adalah mesin multiprosesor yang mampu menjalankan
instruksi berbeda pada PE yang berbeda tetapi semuanya beroperasi pada
kumpulan data yang sama. Mesin yang dibangun menggunakan model MISD tidak
berguna di sebagian besar aplikasi, beberapa mesin dibuat tetapi tidak satupun dari
mereka tersedia secara komersial. Mereka lebih menjadi latihan intelektual daripada
konfigurasi praktis.

4. Sistem multi-instruksi, multi-data (MIMD)


Sistem komputasi MIMD adalah mesin multiprosesor yang mampu menjalankan
banyak instruksi pada beberapa kumpulan data. Setiap PE dalam model MIMD
memiliki instruksi dan aliran data yang terpisah, karenanya mesin yang dibangun
menggunakan model ini sangat cocok untuk segala jenis aplikasi. Tidak seperti
mesin SIMD dan MISD, PE di mesin MIMD bekerja secara asynchronous. Mesin
MIMD secara luas dikategorikan ke dalam memori bersama MIMD dan memori
terdistribusi MIMD berdasarkan cara PE digabungkan ke memori utama.

c. Pendekatan pemrograman parallel


Program sekuensial adalah program yang berjalan pada prosesor tunggal dan
memiliki satu jalur kontrol. Untuk membuat banyak prosesor bekerja secara kolektif
pada satu program, program harus dibagi menjadi potongan independen yang lebih
kecil sehingga setiap prosesor dapat bekerja pada potongan masalah yang terpisah.
Program yang diuraikan dengan cara ini adalah program paralel. Berbagai macam
pendekatan pemrograman paralel tersedia. Yang paling menonjol di antara mereka
adalah sebagai berikut:
• Paralelisme data
• Paralelisme proses
• Model petani-dan-pekerja
Ketiga model ini semuanya cocok untuk paralelisme tingkat tugas. Dalam kasus
paralelisme data, teknik divide-and-conquer digunakan untuk membagi data menjadi
beberapa set, dan setiap set data diproses pada PE yang berbeda menggunakan
instruksi yang sama. Pendekatan ini sangat cocok untuk pemrosesan pada mesin
berdasarkan model SIMD. Dalam kasus paralelisme proses, operasi tertentu
memiliki banyak aktivitas yang dapat diproses pada beberapa prosesor.

d. Tingkat paralelisme
Tingkat paralelisme ditentukan berdasarkan gumpalan kode yang dapat menjadi
kandidat potensial untuk paralelisme. Semua pendekatan ini memiliki tujuan yang
sama, meningkatkan efisiensi prosesor dengan menyembunyikan latensi. Untuk
menyembunyikan latensi, harus ada utas lain yang siap dijalankan setiap kali
operasi yang berkepanjangan terjadi. Idenya adalah untuk mengeksekusi secara
bersamaan dua atau lebih aplikasi single-threaded, seperti kompilasi, pemformatan
teks, pencarian database, dan simulasi perangkat.

Seperti yang ditunjukkan pada tabel dan digambarkan dalam, paralelisme dalam
aplikasi dapat terdeteksi di beberapa level:
• Butir besar (atau level tugas)
• Butir sedang (atau level kontrol)
• Butir halus (tingkat data)
• Butir sangat halus (masalah instruksi-ganda)

e. Hukum kehati-hatian
Sekarang kita telah memperkenalkan beberapa aspek umum komputasi paralel
dalam hal arsitektur dan model, kita dapat membuat beberapa pertimbangan yang
diambil dari pengalaman merancang dan mengimplementasikan sistem semacam
itu. Pertimbangan ini adalah pedoman yang dapat membantu kita memahami
seberapa besar manfaat yang dapat diperoleh aplikasi atau sistem perangkat lunak
dari paralelisme. Secara khusus, yang perlu kita ingat adalah bahwa paralelisme
digunakan untuk melakukan banyak aktivitas bersama sehingga sistem dapat
meningkatkan throughput atau kecepatannya. Tetapi hubungan yang mengontrol
kenaikan kecepatan tidak linier.
Berikut adalah dua pedoman penting yang harus diperhatikan:
• Kecepatan komputasi sebanding dengan akar kuadrat dari biaya sistem; mereka
tidak pernah meningkat sejak awal. Oleh karena itu, semakin cepat suatu sistem,
semakin mahal untuk meningkatkan kecepatannya.
• Kecepatan oleh komputer paralel meningkat seiring dengan logaritma jumlah
prosesor.

Perkembangan yang sangat cepat dalam pemrosesan paralel dan bidang terkait
telah mengaburkan batasan konseptual, menyebabkan banyak kebingungan
terminologis. Bahkan perbedaan yang terdefinisi dengan baik seperti memori
bersama dan memori terdistribusi bergabung karena kemajuan teknologi baru.

D. Elemen komputasi terdistribusi


Komputasi terdistribusi dan lebih tepatnya memperkenalkan pedoman dan pola yang
paling umum untuk menerapkan sistem komputasi terdistribusi dari perspektif
perancang perangkat lunak.

a. Konsep dan definisi umum


Komputasi terdistribusi mempelajari model, arsitektur, dan algoritme yang digunakan
untuk membangun dan mengelola sistem terdistribusi. Sistem terdistribusi adalah
kumpulan komputer independen yang tampak bagi penggunanya sebagai sistem
koheren tunggal. Definisi ini cukup umum untuk memasukkan berbagai jenis sistem
komputasi terdistribusi yang secara khusus berfokus pada penggunaan terpadu dan
agregasi sumber daya terdistribusi. Komunikasi adalah aspek fundamental lain dari
komputasi terdistribusi. Karena sistem terdistribusi terdiri dari lebih dari satu
komputer yang berkolaborasi bersama, maka perlu disediakan semacam pertukaran
data dan informasi di antara mereka, yang umumnya terjadi melalui jaringan.

b. Komponen sistem terdistribusi


Sistem terdistribusi adalah hasil interaksi beberapa komponen yang melintasi
seluruh tumpukan komputasi dari perangkat keras ke perangkat lunak. Ini muncul
dari kolaborasi beberapa elemen yang dengan bekerja sama memberi pengguna
ilusi dari satu sistem yang koheren.

Di lapisan paling bawah, komputer dan perangkat keras jaringan merupakan


infrastruktur fisik; komponen-komponen ini langsung dikelola oleh sistem operasi,
yang menyediakan layanan dasar untuk komunikasi antarproses (IPC), penjadwalan
dan pengelolaan proses, dan pengelolaan sumber daya dalam hal sistem file dan
perangkat lokal. Secara bersama-sama, kedua lapisan ini menjadi platform di
atasnya perangkat lunak khusus digunakan untuk mengubah satu set komputer
jaringan menjadi sistem terdistribusi.

Penggunaan standar terkenal di tingkat sistem operasi dan bahkan lebih di tingkat
perangkat keras dan jaringan memungkinkan pemanfaatan yang mudah dari
komponen heterogen dan organisasinya ke dalam sistem yang koheren dan
seragam. Misalnya, konektivitas jaringan antara perangkat yang berbeda dikontrol
oleh standar, yang memungkinkan mereka untuk berinteraksi dengan mulus. Di
tingkat sistem operasi, layanan IPC diimplementasikan di atas protokol komunikasi
standar seperti Transmission Control Protocol / Internet Protocol (TCP / IP), User
Datagram Protocol (UDP) atau lainnya.

Lapisan middleware memanfaatkan layanan tersebut untuk membangun lingkungan


yang seragam untuk pengembangan dan penerapan aplikasi terdistribusi. Lapisan
ini mendukung paradigma pemrograman untuk sistem terdistribusi. Dengan
mengandalkan layanan yang ditawarkan oleh sistem operasi, middleware
mengembangkan protokol, format data, dan bahasa pemrograman atau kerangka
kerjanya sendiri untuk pengembangan aplikasi terdistribusi.

Bagian atas tumpukan sistem terdistribusi diwakili oleh aplikasi dan layanan yang
dirancang dan dikembangkan untuk menggunakan middleware. Ini dapat melayani
beberapa tujuan dan sering kali menampilkan fitur-fiturnya dalam bentuk antarmuka
pengguna grafis (GUI) yang dapat diakses secara lokal atau melalui Internet melalui
browser Web.

c. Gaya arsitektur untuk komputasi terdistribusi


Meskipun sistem terdistribusi terdiri dari interaksi beberapa lapisan, lapisan
middleware adalah lapisan yang memungkinkan komputasi terdistribusi, karena
menyediakan lingkungan runtime yang koheren dan seragam untuk aplikasi. Ada
banyak cara berbeda untuk mengatur komponen yang, jika digabungkan,
membentuk lingkungan seperti itu. Interaksi di antara komponen-komponen ini dan
tanggung jawabnya memberikan struktur pada middleware dan mengkarakterisasi
tipenya atau, dengan kata lain, mendefinisikan arsitekturnya.

Pola desain membantu dalam menciptakan pengetahuan umum dalam komunitas


insinyur perangkat lunak dan pengembang tentang bagaimana menyusun hubungan
komponen dalam aplikasi dan memahami organisasi internal aplikasi perangkat
lunak. Gaya arsitektur melakukan hal yang sama untuk keseluruhan arsitektur
sistem perangkat lunak. Gaya arsitektur untuk sistem terdistribusi sangat membantu
dalam memahami berbagai peran komponen dalam sistem dan bagaimana
komponen tersebut didistribusikan ke berbagai mesin. Terdapat dua kelas utama
pada gaya arsitektur:
• Gaya arsitektur perangkat lunak
• Gaya arsitektur sistem

Kelas pertama berkaitan dengan organisasi logis dari perangkat lunak dan kelas
kedua mencakup semua gaya yang menggambarkan organisasi fisik dari sistem
perangkat lunak terdistribusi dalam kaitannya dengan komponen utamanya.

1. Komponen dan konektor


Sebuah komponen mewakili unit perangkat lunak yang merangkum fungsi atau fitur
sistem. Contoh komponen dapat berupa program, objek, proses, pipa, dan filter.
Sebuah penyambung merupakan mekanisme komunikasi yang memungkinkan
kerjasama dan koordinasi antar komponen. Berbeda dari komponen, konektor tidak
dikemas dalam satu kesatuan, tetapi diimplementasikan secara terdistribusi di
banyak komponen sistem.

2. Gaya arsitektur perangkat lunak


Gaya arsitektur perangkat lunak didasarkan pada pengaturan logis dari komponen
perangkat lunak. Mereka sangat membantu karena mereka memberikan pandangan
intuitif dari keseluruhan sistem, terlepas dari penerapan fisiknya. Mereka juga
mengidentifikasi abstraksi utama yang digunakan untuk membentuk komponen
sistem dan pola interaksi yang diharapkan di antara mereka.

Arsitektur berpusat data


Arsitektur ini mengidentifikasi data sebagai elemen fundamental dari sistem
perangkat lunak, dan akses ke data bersama adalah karakteristik inti dari arsitektur
yang berpusat pada data. Oleh karena itu, terutama dalam konteks sistem
komputasi terdistribusi dan paralel, integritas data adalah tujuan keseluruhan dari
sistem tersebut.

Arsitektur aliran data


Dalam kasus aliran data arsitektur, itu adalah ketersediaan data yang mengontrol
komputasi. Berkenaan dengan gaya data-centered, di mana akses ke data adalah
fitur intinya, gaya aliran data secara eksplisit menggabungkan pola aliran data
karena desainnya ditentukan oleh gerakan data yang teratur dari komponen ke
komponen, yang merupakan bentuk komunikasi di antara mereka.

Arsitektur mesin virtual


Mesin virtual kelas gaya arsitektur ditandai dengan adanya lingkungan eksekusi
abstrak, umumnya disebut sebagai amesin virtual yang mensimulasikan fitur yang
tidak tersedia di perangkat keras atau perangkat lunak. Aplikasi dan sistem
diimplementasikan di atas lapisan ini dan menjadi portabel di lingkungan perangkat
keras dan perangkat lunak yang berbeda selama ada implementasi mesin virtual
yang mereka gunakan untuk berinteraksi.

Arsitektur panggilan & kembalikan


Kategori ini mengidentifikasi semua sistem yang diatur ke dalam komponen yang
sebagian besar terhubung bersama melalui panggilan metode. Aktivitas sistem yang
dimodelkan dengan cara ini dicirikan oleh rangkaian panggilan metode yang
eksekusi dan komposisinya secara keseluruhan mengidentifikasi eksekusi satu atau
beberapa operasi. Organisasi internal komponen dan koneksinya mungkin berbeda.

3. Gaya arsitektur sistem


Gaya arsitektur sistem mencakup organisasi fisik komponen dan proses melalui
infrastruktur terdistribusi. Mereka menyediakan satu set model referensi untuk
penerapan sistem semacam itu dan membantu insinyur tidak hanya memiliki kosa
kata umum dalam menjelaskan tata letak fisik sistem tetapi juga dengan cepat
mengidentifikasi keuntungan dan kelemahan utama dari penerapan tertentu dan
apakah itu berlaku untuk suatu penerapan tertentu.

Server klien
Arsitektur ini sangat populer dalam komputasi terdistribusi dan cocok untuk berbagai
macam aplikasi. Seperti yang digambarkan dalam model klien/server memiliki dua
komponen utama yaitu server dan klien. Kedua komponen ini berinteraksi satu sama
lain melalui koneksi jaringan menggunakan protokol yang diberikan. Komunikasi
searah, klien mengeluarkan permintaan ke server, dan setelah memproses
permintaan, server mengembalikan respons.
Model klien/server cocok dalam skenario banyak ke satu, di mana informasi dan
layanan yang diminati dapat dipusatkan dan diakses melalui satu titik akses. Server.
Secara umum, banyak klien tertarik pada layanan tersebut dan server harus
dirancang dengan tepat untuk melayani permintaan yang datang dari klien yang
berbeda secara efisien. Pertimbangan ini berimplikasi pada desain klien dan desain
server. Untuk desain klien, diidentifikasi dua model utama:

•Model klien tipis. Dalam model ini, beban pemrosesan dan transformasi data
diletakkan di sisi server, dan klien memiliki implementasi ringan yang sebagian besar
berkaitan dengan pengambilan dan pengembalian data yang diminta, tanpa
pemrosesan lebih lanjut yang berarti.

• Model klien gemuk. Dalam model ini, komponen klien juga bertanggung jawab
untuk memproses dan mengubah data sebelum mengembalikannya ke pengguna,
sedangkan server memiliki implementasi yang relatif ringan yang sebagian besar
berkaitan dengan pengelolaan akses ke data.

Tiga komponen utama dalam model klien/server yaitu presentasi, logika aplikasi dan
penyimpanan data. Presentasi, logika aplikasi dan penyimpanan data dapat dilihat
sebagai lapisan konseptual, yang lebih tepat disebut tingkatan.

Arsitektur klien/server telah menjadi model referensi yang dominan untuk merancang
dan menyebarkan sistem terdistribusi, dan beberapa aplikasi untuk model ini dapat
ditemukan. Yang paling relevan mungkin adalah Web dalam konsep aslinya. Saat
ini, model klien/server merupakan blok bangunan penting dari sistem yang lebih
kompleks, yang menerapkan beberapa fitur mereka dengan mengidentifikasi server
dan proses klien yang berinteraksi melalui jaringan.

Peer-to-peer
Model peer-to-peer, arsitektur simetris di mana semua komponen, disebut teman
sebaya, memainkan peran yang sama dan menggabungkan kapabilitas klien dan
server dari model klien/server. Lebih tepatnya, setiap rekan bertindak sebagai server
saat memproses permintaan dari rekan lain dan sebagai klien saat mengeluarkan
permintaan ke peer lain. Sehubungan dengan model klien/server yang membagi
tanggung jawab IPC antara server dan klien, model peer-to-peer mengaitkan
tanggung jawab yang sama ke setiap komponen. Oleh karena itu, model ini sangat
cocok untuk arsitektur yang sangat terdesentralisasi, yang dapat menskalakan lebih
baik sepanjang dimensi jumlah peer. Kerugian dari pendekatan ini adalah bahwa
pengelolaan implementasi algoritma lebih kompleks daripada model klien/server.

Anda mungkin juga menyukai