Anda di halaman 1dari 26

TUGAS

MATA KULIAH

“ORGANISASI DAN ARSITEKTUR KOMPUTER”

DISUSUN OLEH:

HAKIM YUSUF HIDAYAT (G.231.20.0148)

PROGRAM STUDI S1-TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI

UNIVERSITAS SEMARANG

2022

1
MASALAH DESAIN SISTEM OPERASI

1. Failure Management

Fault Management adalah mendeteksi, mengisolasi dan memperbaiki operasi – operasi


yang tidak normal dalam jaringan. Fault Management meliputi lima langkah proses yaitu :
pendeteksian masalah, mencari tempat permasalahan, merestorasi layanan,
mengidentifikasi akar penyebab permasalahan dan resolusi pemecahan masalah.Fault
Management melibatkan 5 tahap proses : Fault detection, fault location,service restoration,
identification, dan problem resolution.

ISO (Organisasi Internasional untuk Standardisasi) mendefinisikan kerangka kerja


manajemen jaringan di mana manajemen kesalahan merupakan komponennya. Framework
tersebut adalah FCAPS (Fault management, Configuration, Accounting, Performance, and
Security). Dengan kata lain, manajemen kesalahan berhubungan dengan manajemen
jaringan. Dalam nada yang sama, sistem manajemen jaringan harus mencakup sistem
manajemen kesalahan. Yang terakhir menemukan masalah jaringan dan mengambil
tindakan untuk memperbaikinya. Ini juga mengidentifikasi dan mencegah masalah
potensial atau diketahui yang mungkin terjadi di masa depan.

Oleh karena itu, tujuan utama dari manajemen kesalahan adalah untuk menjaga
konektivitas jaringan setiap saat. Dan dengan mengelola kesalahan dalam jaringan, aplikasi
dan layanan yang bergantung pada jaringan itu tetap aktif dan berjalan. Yang terpenting,
aplikasi dan layanan tersebut tetap dapat diakses dan berfungsi dengan baik.

Fault management yang baik setidaknya harus menjalankan 4 mekanisme berikut : 1)


Mendeteksi (menangkap event-event), 2) Mengisolasi (hanya menampilkan event-event
yang memerlukan tindakan), 3) Menginformasikan (memberi notifikasi kepada admin), 4)
Menyelesaikan (membantu mempercepat penyelesaian masalah)

2
1. Mendeteksi ( Menangkap event-event)

Ada 2 mode monitoring : Active dan Passive.

a. Active Monitoring artinya NMS secara proaktif mendeteksi event dengan mengatur
threshold pada monitor. Contohnya adalah ICMP ping, TCP atau UDP port check,
dan performance counters monitoring.
b. Passive Monitoring artinya NMS secara pasif menerima event-event dari
perangkat. Contohnya adalah SNMP trap dan syslog.

Opmanager melakukan kedua mode monitoring tsb.

2. Mengisolasi ( Hanya menampilkan event – event yang perlu Tindakan )

Fault isolation membantu mengidentifikasi event-event yang memiliki impact terhadap


network. Ada beberapa teknik yang membantu, diantaranya de-duplication, correlation,
dan automation.

a. De-duplication
Adalah teknik yang digunakan untuk men-drop event-event yang sama dan
berulang (duplicate) lalu menampilkannya sebagai history. Misal, CPU utils dari
sebuah server melebihi threshold (high CPU) dalam waktu 20 menit. Jika NMS
mengambil data (poll) dari server setiap 2 menit, alih-alih menampilkan 10 event
high CPU, NMS hanya akan menampilkan 1 event high CPU, bersama dengan
historinya.

3
b. Correlation
Adalah teknik yang menghubungkan event-event, dan menampilkan event yang
perlu saja. Misal, sebuah switch yang terhubung dengan 10 server. Jika switch ini
mati, maka server juga akan terdeteksi down oleh NMS. Tetapi, alih-alih
menampilkan seluruh event (event switch dan 10 server mati), NMS hanya akan
menampilkan event switch mati saja.
Ini dilakukan menggunakan teknik device dependency. Opmanager memiliki fitur
yang secara otomatis memetakan perangkat-perangkat (peta perangkat ini juga
dapat dicustom), sehingga jika parent device down, maka yang ditampilkan
hanyalah event parent down, event child tidak ditampilkan.

4
c. Automation
Adalah teknik yang secara otomatis men-drop “unwarranted events”, yaitu event-
event yang kemungkinan false atau terjadi hanya sesaat. Contoh unwarranted events
antara lain event “spike” mendadak, event-event dalam perangkat yang sedang
dalam maintenance , dll.

Di Opmanager, kita bisa mengabaikan unwarranted event dengan beberapa cara,


misal menyetel “consecutive times” dan “re-arm value” pada threshold untuk active
monitoring. Atau jika perangkat diketahui sedang dalam maintenance, kita dapat
menyetel “Downtime scheduler” agar alarm-alarm yang muncul tidak ditampilkan.
Juga “pause status polling” jika kita ingin NMS berhenti mem-poll data dari
perangkat yang kita ketahui sedang bermasalah dan dalam proses penyelesaian

5
3. Menginformasikan ( memberi notifikasi pada admin)

Fungsi utama dari proses ini adalah memberitahu kita masalah apa yang terjadi di
jaringan. Untuk mempermudah, Opmanager memvisualisasikannya dalam bentuk
dashboard, web alarm, business view, dll. Opmanager juga menginformasikan fault
melalui email, sms, RSS feed, dan twitter. Tampilan yang smartphone/iphone friendly
juga cukup membantu.

Untuk trouble ticketing, Opmanager dapat diintegrasikan dengan ManageEngine


ServiceDesk Plus.

6
4. Menyelesaikan ( membantu mempercepat penyelesaian masalah )

Dapat menyetel Opmanager untuk menjalankan suatu script atau program ketika NMS
mendeteksi suatu masalah. Misal, Jika hard disk dalam MS SQL server terdeteksi full,
kita dapat menjalankan script untuk menghapus log transaksi dan merestart service
melalui NMS.

NMS juga dapat diatur untuk melakukan eskalasi ke admin jika program yang
dijalankan mengalami error atau terjadi komplikasi masalah dalam jaringan.

2. Load Balancing

Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau
lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal,
memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload
pada salah satu jalur koneksi . Load balancing digunakan pada saat sebuah server
telah memiliki jumlah user yang telah melebihi maksimal kapasitasnya. Load
balancing juga mendistribusikan beban kerja secara merata di dua atau lebih
komputer, link jaringan, CPU, hard drive, atau sumber daya lainnya, untuk
mendapatkan pemanfaatan sumber daya yang optimal. Salah satu teknik load
balancing adalah HaProxy . Topologi Load Balancing dapat dilihat pada gambar .

7
Konfigurasi Arsitektur Load Balance 2.4.

Layanan Load Balancing memungkinkan pengaksesan sumber daya dalam


jaringan didistribusikan ke beberapa host lainnya agar tidak terpusat sehingga unjuk kerja
jaringan komputer secara keseluruhan bisa stabil. Ketika sebuah sebuah server sedang
diakses oleh para pengguna, maka sebenarnya server tersebut sebenarnya sedang terbebani
karena harus melakukan proses permintaan kepada para penggunanya. Jika penggunanya
banyak maka prosesnya akan banyak. Sesi-sesi komunikasi dibuka oleh server tersebut
untuk memungkinkan para pengguna menerima servis dari server tersebut. Jika satu server
saja terbebani, tentu server tersebut tidak bisa banyak melayani para penggunanya karena
kemampuan melakukan processing ada batasnya. Solusi yang paling ideal adalah dengan
membagi-bagi beban yang datang ke beberapa server. Jadi yang melayani pengguna tidak
hanya terpusat pada satu perangkat saja.
2.1. Algoritma Load Balancing

1. Round Robin

Algoritma Round Robin merupakan algoritma yang paling sederhana dan banyak

digunakan oleh perangkat Load Balancing. Algoritma ini membagi secara bergiliran dan

berurutan dari satu server ke server lain sehinga membentuk putaran.

8
2. Ratio. Ratio (rasio) sebenarnya merupakan sebuah parameter yang diberikan untuk

masing-masing server yang akan dimasukkan kedalam sistem Load Balancing. Dari

parameter Ratio ini, akan dilakukan pembagian beban terhadap server-server yang diberi

rasio. Server dengan rasio terbesar diberi beban besar, begitu juga dengan server dengan

rasio kecil akan lebih sedikit diberi beban.

3. Fastest. Algoritma yang satu ini melakukan pembagian beban dengan mengutamakan

server-server yang memiliki respon yang paling cepat. Server di dalam jaringan yang

memiliki respon paling cepat merupakan server yang akan mengambil beban pada saat

permintaan masuk.

4. Least Connection. Algoritma Least connection akan melakukan pembagian beban

berdasarkan banyaknya koneksi yang sedang dilayani oleh sebuah server. Server dengan

pelayanan koneksi yang paling sedikit akan diberikan beban yang berikutnya akan masuk.

2.2 Fitur Load Balancing

Beberapa fitur yang ada pada baik load balancer Hardware maupun load

balancer software, yaitu:

1. Asymmetric load. rasio dapat dibuat dengan menentukan koneksi yang menjadi
primary yang dianggap paling baik backbonenya dan terbaik dalam path
routingnya, jadi kita dapat membuat mesin untuk mencari best path
determination dan routing yang terpendek dan terbaik untuk sampai ketujuan.

9
2. Aktivitas berdasarkan prioritas. Disaat load jaringan sedang peek, server akan
dapat membagi aktivitas berdasarkan prioritas dan ke link cadangan.
3. Proteksi dari serangan DDoS. karena kita dapat membuat fitur seperti

SYN Cookies dan delayed-binding (suatu metode di back-end server

pada saat terjadi proses TCP handshake) pada saat terjadi serangan SYN Flood.
4. Kompresi HTTP. Memungkinkan data untuk bisa mentransfer objek HTTP
dengan dimungkinkannya penggunaan utilisasi kompresi gzip yang berada di
semua web browser yang modern.
5. TCP Buffering. dapat membuat respon buffer dari server dan berakibat dapat
memungkinkan task akses lebih cepat.
6. HTTP Caching. dapat menyimpan content yang static, dengan demikian request
dapat di handel tanpa harus melakukan kontak ke web server diluar jaringan
yang berakibat akses terasa semakin cepat.
7. Content Filtering. Beberapa Load Balancing dapat melakukan

perubahan trafik pada saat dijalankan.

8. HTTP Security. beberapa system Load Balancing dapat menyembunyikan


HTTP error pages, menghapus identifikasi header server dari respon HTTP, dan
melakukan enkripsi cookies agar user tidak dapat memanipulasinya.
9. Priority Queuing. berguna untuk memberikan perbedaan prioritas

traffic paket.

10. Spam Filtering. Spam istilah lainnya junk mail merupakan penyalahgunaan
dalam pengiriman berita elektronik untuk menampilkan berita iklan dan
keperluan lainnya yang mengakibatkan ketidaknyamanan bagi para pengguna
web. Bentuk berita spam yang umum dikenal meliputi: spam surat elektronik,
spam instant messaging, spam Usenet newsgroup, spam mesin pencari
informasi web (web search engine spam), spam blog, spam berita pada telepon
genggam, spam forum Internet, dan lain lain. Spam ini biasanya datang
bertubitubi tanpa diminta dan sering kali tidak dikehendaki oleh penerimanya.
Beberapa contoh lain dari spam ini bisa berupa surat elektronik berisi iklan, sms
pada telepon genggam, berita yang masuk dalam suatu forum newsgroup berisi

10
promosi barang yang tidak terkait dengan aktifitas newsgroup tersebut,
spamdexing yang mendominir suatu mesin pencari (search engine) untuk
mencari popularitas bagi suatu URL tertentu, ataupun bisa berupa berita yang
tak berguna dan masuk dalam suatu blog, buku tamu situs web, dan lain-lain.

2.3 Tipe Load Balancing

Dalam dunia load-balancing, ada dua pilihan untuk dipertimbangkan ketika


merancang solusi load-balancing. Pilihan solusinya adalah menggunakan software
Load Balancing atau Hardware Load Balancing. Setiap pilihan memiliki
persyaratan, kelebihan, dan kelemahan tersendiri. Terserah kepada kita untuk
mengevaluasi kebutuhan bisnis kita, konfigurasi, dan jalur pertumbuhan sehingga
kita dapat mengidentifikasi solusi optimal untuk memenuhi kebutuhan. Dan dari
tipenya Load Balancing dapat dibedakan menjadi 2 tipe, yaitu:

1. Software Load Balancing. Dimana Load Balancing berjalan disebuah PC/Server,


dan aplikasi Load Balancing di install dan perlu dikonfigurasi sebelum dapat
berfungsi. Keuntungannya adalah jika ada penambahan fitur atau fasilitas
tambahan tidak perlu mengganti keseluruhan perangkat Load Balancing. Performa
proses Load Balancing dipengaruhi oleh prangkat komputer yang digunakan, tidak
bisa hanya mengandalkan kemampuan software yang canggih saja. Perangkat
keras yang dapat mempengaruhi performa metode ini adalah kartu jaringan
(Network Interface Card) yang digunakan, besarnya RAM pada perangkat, media
penyimpanan yang besar dan cepat, dsb. Sehingga performa metode ini sulit untuk
bisa diperkirakan. Ada banyak sekali Load Balancer Software, beberapa
diantaranya yang paling banyak digunakan adalah: Linux Virtual Server, Ultra
Monkey, dan Network Load Balancing.

11
2. Hardware Load Balancing. Dimana Load Balancing berjalan disebuah device/alat
yang sudah disiapkan dari pabrik dan siap digunakan. Tipe Hardware Load
Balancing banyak digunakan karena kemudahannya. Beberapa Load Balancing
Hardware diantaranya adalah: Cisco System Catalyst, Coyote Point, F5 Network
BIG-IP, Baraccuda Load Balancer.
2.4 Manfaat Load Balancing

Bagian ini menjelaskan secara singkat tentang manfaat dari Load Balancing dalam
jaringan. Manfaat dari Load Balancing sebagai berikut :
1. Menjamin Reliabilitias layanan berarti kepercayaan terhadap sebuah sistem untuk
dapat terus melayani pengguna dengan sebaik-baiknya. Jaminan realibilitas
memungkinkan pengguna dapat melakukan pekerjaan sebaik-baiknya dengan
lancar melalui layanan tersebut.
2. Skalabilitas dan ketersediaan. Jika dalam sebuah jaringan komputer jika hanya
terdapat satu buah server mempunyai pengertian terdapat satu titik masalah.
Seandainya tiba-tiba server itu mati maka layanan terhadap pengguna akan
terganggu. Dengan melakukan penambahan server dan membentuk server farm
maka skalabilitas akan meningkat dan selain itu faktor ketersediaan juga akan
meningkat.Border Gateway Protocol (BGP) inti yang kosong.

12
3. Parallelizing Computation

Pararrel Computing atau Komputasi paralel adalah salah satu teknik melakukan komputasi
secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya
diperlukan 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, dan
• 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.
3.1 Tujuan

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. Analogi yang paling gampang adalah,

13
bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak,
waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal
tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan
lebih sedikit jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan
(speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda
memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman,
berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan
kecepatan sebanyak 2 kali.

3.2 Apa Aja Aristektur Komputer Parallel

- Komputer SISD (Single Instruction stream-Single Data stream)

Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga
dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining).
Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses
(single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit
fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional
tersebut berada dalam kendali sebuah unit pengendali.

Oleh karena itu model ini dikatakan sebagai model untuk komputasi tunggal. Sedangkan
ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa
processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1,
IBM 360, CDC 7600, Cray 1 dan PDP 1.

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

Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka,
dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau
perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah
data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari
urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa
contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-
MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

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

15
Sebagai contoh, dengan menggunakan kasus yang sama pada contoh model SIMD
namun cara untuk menyelesaikannya yang berbeda. Pada MISD jika pada komputer
pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-
100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap
processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

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

Pada Multiple Instruction, Multiple Data biasanya menggunakan banyak processor


dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang

16
berbeda. Namun banyak komputer yang menggunakan model MIMD juga
memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan
model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD
Opteron, Cray XT3 dan IBM BG/L.

4. Parallelizing Compiler

Sebuah "Parallelizing Compiler" biasanya adalah:

compiler yang menemukan paralelisme dalam program sekuensial dan menghasilkan kode
yang sesuai untuk komputer paralel. Kompiler paralelisasi yang lebih baru menerima
konstruksi bahasa paralel yang eksplisit, seperti penugasan array atau loop paralel. Tugas
paralelisasi dapat dibagi menjadi tiga sub masalah: mengidentifikasi paralelisme potensial,
yang dapat dilakukan secara otomatis atau oleh seorang programmer; memetakan
paralelisme ke mesin sasaran; dan menghasilkan dan mengoptimalkan kode paralel.
Bahkan ketika semua paralelisme diidentifikasi oleh programmer, tugas pemetaan dan
pembuatan kode memerlukan kompiler yang canggih analisis dan transformasi program.
Sebagian besar pekerjaan dalam memparalelkan kompiler ditujukan untuk program
Fortran, sebagian besar karena Fortran programmer kemungkinan besar memiliki masalah
terikat komputasi. Teknik yang sama dapat dan telah diterapkan padabahasa imperatif
standar lainnya, seperti C, Pascal, Ada, dan lain-lain.

4.1 Prinsip Dasar

Program sekuensial mendefinisikan urutan operasi dan urutan yang harus diikuti. Bahasa
paralel mendefinisikan operasi dan urutan parsial di mana mereka harus dieksekusi.
Kompiler paralelisasi akan memesan operasi ini untuk mendapatkan beberapa di antaranya
untuk dieksekusi secara paralel. Untuk memiliki sebagian besar fleksibilitas dalam
pemesanan ini, compiler harus menemukan dan mewakili hubungan ketergantungan dasar
antara operasi dalam program. Tujuannya adalah untuk menemukan himpunan terkecil dari
hubungan ketergantungan yang mempertahankan makna program. Ini berarti kompiler
harus melestarikan perilaku yang diamati dari program, dengan asumsi program benar dan
berakhir. Untuk skalar, analisis aliran data standar dapat digunakan untuk menemukan
ketergantungan hubungan. Untuk array, kompiler harus menganalisis ekspresi subskrip dan
variabel induksi loop untuk menentukan hubungan ketergantungan. Kebanyakan kompiler

17
memecahkan masalah ketergantungan untuk array dengan membangun satu set linear
persamaan dan pertidaksamaan yang sesuai dengan ekspresi subskrip dan batas loop, dan
menggunakan aljabar linier atau teknik pemrograman linier untuk menentukan apakah ada
solusi. Di lingkaran berikut:

compiler akan membangun sistem ketergantungan untuk menentukan apakah ada


ketergantungan karena definisi dan penggunaan c. Dalam sistem berikut id and jd

adalah nilai dari variabel indeks loop i dan j dalam definisi c (referensi sisi kiri) and iu and
ju nilai dari indeks loop.

variabel yang digunakan (referensi sisi kanan):

Kedua persamaan mengatakan bahwa ada ketergantungan dari c[id, jd1 1] ke c[iu, ju] hanya
jika ekspresi subskrip yang sesuai sama; ketidaksetaraan berasal dari batas loop. Dalam hal
ini, pemecah ketergantungan akan menentukan bahwa penugasan mendefinisikan elemen
c[i, j] dan menggunakannya dalam iterasi selanjutnya. Kompilator selanjutnya dapat
mengkarakterisasi hubungan ketergantungan dengan vektor jarak ketergantungan untuk
digunakan dalam optimasi selanjutnya; di sini vektor jarak adalah (0, 1), artinya
penggunaan terjadi pada iterasi yang sama dari loop i dan iterasi berikutnya dari loop j.
Misalnya, c[2, 3] didefinisikan pada iterasi i 5 2, j 5 2 dan digunakan pada iterasi i 5 2, j 5
3. Jika vektor jarak ketergantungan adalah nol, kita katakan hubungan ketergantungan
adalah loop-independen; jika tidak, kita katakan hubungan ketergantungan dilakukan oleh
loop terluar dengan entri bukan nol.

Mengingat hubungan ketergantungan dan mesin target, kompiler harus memetakan


paralelisme yang tersedia ke target. Ini dapat melibatkan restrukturisasi besar program,
seperti menyusun ulang pernyataan, mengubah urutan loop, dan sebagainya. Jika loop tidak
membawa hubungan ketergantungan, itu dapat dieksekusi secara paralel. Jika tidak, satu
18
set kecil transformasi penataan ulang dasar dapat digunakan, didorong oleh tujuan berbeda
yang bergantung pada mesin target. Salah satu transformasi yang kuat adalah pertukaran
loop bersarang, digunakan untuk memindahkan loop paralel ke tingkat sarang yang
berbeda, mengubah batas loop, dan mengubah pola referensi memori. Generalisasi
pertukaran memperlakukan set iterasi yang dieksekusi oleh loop bersarang sebagai subset
dari Zn, di mana Z adalah the set of integers and n is the loop nest level. Linear
transformations can be used to map the iterations, characterized by a set of inequalities
corresponding to the loop limits, to a different ordering that exposes more parallelism or
improves other performance characteristics of the program. Linear programming
techniques are again used in this phase of the compiler.

Finally, the compiler generates the target code. This may include the tasks of choosing a
scheduling policy, inserting interprocessor synchronization, selecting data memory layouts,
and more. After this, the code that will be run on each processor can be optimized as would
any uniprocessor program.

Current parallelizing compilers for Fortran and C are reasonably mature for certain
programming styles; in fact, feedback from the compiler encourages an appropriate style,
further improving the average performance. Future work in parallelizing compilers will
address new parallel architectures, dynamic data structures, and higher-level languages.

5. Parallelized Application

Komputasi paralel mengacu pada proses mengeksekusi beberapa prosesor aplikasi atau
komputasi secara bersamaan. Secara umum, ini adalah jenis arsitektur komputasi di mana
masalah besar pecah menjadi bagian yang independen, lebih kecil, biasanya serupa yang
dapat diproses sekaligus. Ini dilakukan oleh beberapa CPU yang berkomunikasi melalui
memori bersama, yang menggabungkan hasil setelah selesai. Ini membantu dalam
melakukan perhitungan besar karena membagi masalah besar antara lebih dari satu
prosesor.

Komputasi paralel juga membantu dalam pemrosesan aplikasi dan resolusi tugas yang lebih
cepat dengan meningkatkan daya komputasi yang tersedia dari sistem. Prinsip komputasi
paralel digunakan oleh sebagian besar superkomputer untuk beroperasi. Skenario

19
operasional yang membutuhkan daya pemrosesan atau komputasi yang besar, umumnya,
pemrosesan paralel biasa digunakan di sana.

Biasanya, infrastruktur ini ditempatkan di mana berbagai prosesor dipasang di rak server;
server aplikasi mendistribusikan permintaan komputasi menjadi potongan-potongan kecil
kemudian permintaan diproses secara bersamaan di setiap server. Perangkat lunak
komputer paling awal ditulis untuk komputasi serial karena mereka dapat mengeksekusi
satu instruksi pada satu waktu, tetapi komputasi paralel berbeda di mana ia mengeksekusi
beberapa prosesor aplikasi atau komputasi dalam satu waktu.

Ada banyak alasan untuk menggunakan komputasi paralel, seperti menghemat waktu dan
uang, menyediakan konkurensi, memecahkan masalah yang lebih besar, dll. Selain itu,
komputasi paralel mengurangi kompleksitas. Dalam contoh kehidupan nyata komputasi
paralel, ada dua antrian untuk mendapatkan tiket apa pun; jika dua kasir memberikan tiket
kepada 2 orang secara bersamaan, ini membantu menghemat waktu serta mengurangi
kerumitan.

5.1 Jenis komputasi parallel

Dari vendor komputasi paralel open-source dan proprietary, umumnya ada tiga jenis
komputasi paralel yang tersedia, yang dibahas di bawah ini:

a. Paralelisme tingkat bit: Bentuk komputasi paralel di mana setiap tugas bergantung
pada ukuran kata prosesor. Dalam hal melakukan tugas pada data berukuran besar,
ini mengurangi jumlah instruksi yang harus dijalankan oleh prosesor. Ada
kebutuhan untuk membagi operasi menjadi serangkaian instruksi. Misalnya, ada
prosesor 8-bit, dan Anda ingin melakukan operasi pada angka 16-bit. Pertama, ia
harus mengoperasikan 8 bit orde rendah dan kemudian 8 bit orde tinggi. Oleh
karena itu, diperlukan dua instruksi untuk menjalankan operasi tersebut. Operasi
dapat dilakukan dengan satu instruksi oleh prosesor 16-bit.
b. Paralelisme tingkat instruksi: Dalam satu siklus jam CPU, prosesor memutuskan
dalam paralelisme tingkat instruksi berapa banyak instruksi yang
diimplementasikan pada waktu yang sama. Untuk setiap fase siklus clock, prosesor
dalam paralelisme tingkat instruksi dapat memiliki kemampuan untuk menangani
yang kurang dari satu instruksi. Pendekatan perangkat lunak dalam paralelisme

20
tingkat instruksi berfungsi pada paralelisme statis, di mana komputer memutuskan
instruksi mana yang akan dieksekusi secara bersamaan.
c. Paralelisme Tugas: Paralelisme tugas adalah bentuk paralelisme di mana tugas-
tugas didekomposisi menjadi subtugas. Kemudian, setiap subtugas dialokasikan
untuk dieksekusi. Dan, eksekusi subtugas dilakukan secara bersamaan oleh
prosesor.

5.2 Applications of Parallel Computing

Ada berbagai macam aplikasi Parallel Computing, yaitu sebagai berikut:

- Salah satu aplikasi utama komputasi paralel adalah Database dan Data mining.
- Simulasi sistem waktu nyata adalah penggunaan lain dari komputasi paralel.
- Teknologi, seperti video Jaringan dan Multimedia.
- Sains dan Teknik.
- Lingkungan kerja yang kolaboratif.
- Konsep komputasi paralel digunakan oleh augmented reality, grafik canggih, dan
realitas virtual.

6. Parametric Computing

Desain Parametrik adalah proses interaktif. Ini memungkinkan Anda membuat desain
berdasarkan input parameter, seperti bahan, batasan lokasi, dan bahkan masalah
lingkungan.

Ini memungkinkan desainer dan insinyur untuk membuat perubahan pada proyek secara
real-time karena perangkat lunak akan memperbarui model secara otomatis. Pendekatan ini
memungkinkan desainer untuk mengeksplorasi banyak pilihan sebelum memutuskan
desain akhir.

Proses desain bergantung pada perangkat lunak komputer dan cocok untuk berbagai
penggunaan. Arsitektur dan desain industri hanyalah dua di antaranya. Juga, ini sangat

21
berguna dalam situasi di mana klien membutuhkan hasil yang cepat dan andal. Tapi tetap
tidak bisa menggantikan desainer dan insinyur.

Parameter input penting dalam pendekatan ini dan akurasinya adalah kuncinya.

6.1 Pro dan kontra

Pros
Desain parametrik jauh lebih cepat daripada metode tradisional. Ini adalah pilihan yang
sangat baik untuk proyek yang memiliki tenggat waktu yang ketat. Misalnya, arsitek
menggunakannya untuk menara Z15 di Cina. Dengan demikian, periode perencanaan
berkurang dari minggu ke hari.

Berkat desain parametrik, desainer dan insinyur kini dapat menguji lebih banyak solusi
daripada sebelumnya. Itu berarti bahwa mereka dapat memiliki pengaruh lebih besar
pada keputusan desain.

Dapat digunakan kembali adalah keuntungan lain dari pendekatan parametrik. Jika
seorang insinyur mendesain bagian yang ingin mereka gunakan untuk beberapa model,
mereka dapat menyimpannya dalam hitungan detik. Dan ketika mereka ingin
mengerjakan model berikutnya, mereka cukup mengimpor bagian yang disimpan. Fitur
perangkat lunak parametrik ini juga memungkinkan para insinyur untuk berbagi
pengetahuan lebih cepat.

Insinyur dan desainer dapat menambahkan batasan pada desain mereka dalam
perangkat lunak parametrik. Ini sangat penting untuk mencegah kesalahan desain di
masa depan. Dan mereka juga bisa memastikan bahwa semua modifikasi mengikuti
konsep aslinya.

Saat ini ada program khusus untuk berbagai industri. Banyak yang memiliki antarmuka
yang ramah pengguna dan mudah digunakan.

Akhirnya, desain parametrik menggunakan studi optimasi untuk meningkatkan


efisiensi sumber daya.

22
Cons

Desain parametrik juga memiliki kekurangan. Yang terbesar adalah bahwa batasan
yang ditetapkan terkadang berbenturan satu sama lain. Itu dapat menyebabkan produk
akhir yang kurang sempurna. Dan dalam skenario terburuk, produk mungkin tidak
dapat digunakan.

Beberapa proyek memang membutuhkan batasan ketat. Namun dalam kasus lain,
fleksibilitas desain menempati posisi teratas. Jika batasannya terlalu ketat, mereka
dapat memperlambat proyek dan meningkatkan biaya.

NIST MENDEFINISIKAN EMPAT MODEL PENERAPAN


( CLOUD COMPUTING)

Komputasi awan (cloud computing) adalah teknologi yang menjadikan internet sebagai
pusat pengelolaan data dan aplikasi, di mana pengguna komputer diberikan hak akses
(login). Penerapan komputasi awan saat ini sudah dilakukan oleh sejumlah perusahaan
IT terkemuka di dunia. Sebut saja di antaranya adalah Google (google drive) dan IBM
(blue cord initiative). Sedangkan di Indonesia, salah satu perusahaan yang sudah
menerapkan komputasi awan adalah Telkom.

23
Ada 3 (tiga) model pengiriman (delivery) dalam komputasi awan: (1) Software as a
Service (SaaS), (2) Platform as a Service (PaaS), dan (3) Infrastructure as a Service
(IaaS). SaaS merupakan layanan untuk menggunakan aplikasi yang telah disediakan –
penyedia layanan mengelola platform dan infrastruktur yang menjalankan aplikasi
tersebut. PaaS merupakan layanan untuk menggunakan platform yang telah disediakan
– pengembang fokus pada aplikasi yang dibuat tanpa memikirkan tentang pemeliharaan
platform. IaaS merupakan layanan untuk menggunakan infrastruktur yang telah
disediakan.

24
Ada 4 (empat) model penyebaran (deployment) dalam komputasi awan: (1) public
cloud, (2) private cloud, (3) hybrid cloud, dan (4) community cloud. Public cloud
penggunaannya hampir sama dengan shared hosting, di mana dalam 1 (satu) server ada
banyak pengguna. Private cloud hanya ada 1 (satu) pengguna dalam server. Hybrid
cloud dapat digunakan untuk public atau private cloud. Sedangkan community cloud
dapat digunakan bersama-sama oleh beberapa perusahaan yang memiliki kesamaan
kepentingan. Model penyebaran komputasi awan kadang sering disebut sebagai cloud
storage.

1. Private Cloud
Private Cloud merupakan model cloud computing yang hanya digunakan oleh satu
organisasi atau perusahaan saja secara private. Artinya sumber daya cloud-nya
digunakan bagi satu organisasi tertentu saja tidak dibagi ke pengguna atau organisasi
lain.
Biasanya Private Cloud sendiri sangat banyak digunakan untuk tujuan interaksi bisnis,
di mana sumber daya cloud-nya dapat diatur, serta dioperasikan hanya oleh organisasi
atau perusahaan yang sama.
Metode ini biasanya lebih banyak digunakan untuk interaksi semacam intra-bisnis. Di
mana sumber daya cloud-nya bisa diatur, dimiliki, dan dioperasikan oleh organisasi
satu yang sama.

2. Community Cloud

Community Cloud banyak digunakan oleh komunitas, institusi maupun


organisasi. Model cloud computing ini bisa dikelola oleh pihak internal maupun pihak
ketiga atau untuk eksternal dan internal.
Keuntungan tersebut bisa meminimalisir biaya pembayaran yang akan ditanggung oleh
kedua belah pihak.

25
3. Public Cloud
Public Cloud ini adalah layanan yang menggunakan model publik, sehingga siapa saja
bisa mengakses layanan ini.
Model cloud computing ini tidak perlu biaya dan gratis. Akan tetapi ada juga yang
berbayar dengan harga tertentu.
Keuntungan dari model cloud computing ini, Anda tidak perlu mengeluarkan biaya.
Tapi, tentunya Public Cloud memiliki kelemahan, yaitu perihal keamanan data.

4. Hybrid Cloud
Hybrd Cloud sendiri adalah gabungan dari layanan private Cloud dan Public Cloud.
Itulah mengapa, hanya institusi tertentu yang bisa mengaplikasikan model cloud
computing ini.
Model cloud computing ini memiliki interaksi B2B (Business to Bussines) atau B2C
(Business to Consumer).

SELESAI

26

Anda mungkin juga menyukai