Jumat, 21 Juni 2019

Kegiatan di Tanjung Inten, Lampung Timur.

Makalah pemrosesan paralel & Load Balancing

DAFTAR ISI

KATA PENGANTAR................................................................................... i
DAFTAR ISI.................................................................................................. ii
BAB 1
PENDAHULUAN..........................................................................................
1.1 Latar Belakang...................................................................................
1.2 Rumusan Masalah .............................................................................
BAB 2
PEMBAHASAN.............................................................................................
2.1 Pemrosesan paralel.............................................................................
2.2 Mengenal teknologi load balancing...................................................
BAB 3
PENUTUP......................................................................................................
3.1 Kesimpulan.......................................................................................
DAFTAR PUSTAKA....................................................................................

BAB 1
PENDAHULUAN
1.1 Latar Belakang
       Pada perancang computer selalu berusaha untuk meningkatkan kinerja mesin-mesin yang di rancangnya. Satu cara yang dilakukan dalam membuat chip-chip agar bekerja lebih cepat dengan menambah kecepatan detaknya, namun untuk semua desain baru, cara tersebut masih sulit dilakukan. Oleh karena itu, sebagian besar arsitektur beralih ke paralelisme (melakukan dua hal atau lebih secara sekaligus) sebagai suatu cara untuk mencapai kinerja yang lebih tinggi pada suatu kecepatan detak tertentu.
       Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, sering kali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya.
       Konsep parallel itu sendiri dapat di tinjau dari aspek design mesin parallel, perkembangan bahasa pemrograman parallel atau dari aspek pembangunan dan analisis algoritma parallel. Algoritma parallel itu sendiri lebih banyak di fokuskan kepada algoritma untuk menyelesaikan masalah numerik karena numeric merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi. Parallel processing berbeda multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing di sebut juga parallel computing.
1.2 Rumusan Masalah
1.      Yang dimaksud pemrosesan paralel, komputasi paralel dan pemrograman paralel.
2.      Yang dimaksud Load Balancing.

BAB 2
PEMBAHASAN
2.1 PEMROSESAN PARALEL
A. Pengertian Parallel Computation
a.      Pemrosesan Paralel
Pemrosesan Paralel adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Pemrosesan Paralel membuat program berjalan lebih cepat karena CPU yang digunakan makin banyak. Tetapi dalam praktek, sering kali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya.
b.      Pemrograman Paralel
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.
c.       Menurut Wikipedia
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.


d.      Secara Umum
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 sebuah 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.
Parallel Computation dapat dibentuk dari :
·  Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.
·  PVM (Parallel Virtual Machine) untuk mendukung workstation clusters.
·  MPI (Message-Passing Interface) programming GUI untuk parallel computers.
B.  Tujuan Pemrosesan Paralel
Pemrosesan paralel memiliki tujuan utama yaitu untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.





C.  Arsitektur Komputer Paralel
Taksonomi Flynn dan model pemrosesan parallel
arAda 4 kelompok dalam arsitektur komputer paralel, yaitu :
1.    Single Instruction Single Data stream (SISD) : Jenis Komputer yang hanya memiliki satu prosesor dan satu instruksi yang dieksekusi secara serial.
2.    Single Instruction Multiple Data stream (SIMD) : Jenis komputer yang memiliki lebih dari satu prosesor, tetapi komputer ini hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada sebuah  level lock-step.
3.    Multiple Instruction Single Data stream (MISD) : Jenis komputer yang memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi di dalam praktiknya tak ada komputer yang dibangun dengan arsitektur ini karena sistemnya sulit dipahami, sampai saat ini pun belum ada komputer yang menggunakan arsitektur jenis ini.
4.    Multiple Instruction Multiple Data stream (MIMD) : Jenis komputer yang memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun sebuah komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini, karena model dan konsepnya yang tidak terlalu rumit untuk dipahami.


5-758ae04e6c









D. Bahasa Pemrograman yang digunakan pada Pemrosesan Parallel
Message Passing Interface (MPI)
Message Passing Interface (MPI) adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node.
Kegunaan MPI :

·        menulis kode paralel secara portable.
·        mendapatkan performa yang tinggi dalam pemrograman paralel.
·        menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak  begitu cocok dengan model data paralel.
E. Parallel Virtual Machine (PVM)
Parallel Virtual Machine (PVM) adalah paket software yang mendukung pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan superkomputer.
Komponen PVM
·        PVM daemon merupakan semacam program yang berjalan di “belakang” dan biasanya menangani program dari para klien. Komponen ini berada pada setiap komputer yang terhubung dalam virtual machine (mesin virtual). PVM Berguna untuk membentuk konfigurasi host dalam PVM dan mengkoordinir komunikasi antar host.
·        PVM libraries merupakan komponen antarmuka pemakai PVM untuk melakukan pengiriman pesan, pembuatan proses, koordinasi proses dan modifikasi virtual machine.
F.  Komputasi Modern dan Pemrosesan Paralel
Pemrosesan paralel juga disebut komputasi paralel. Dalam upaya lebih murah pengolahan komputasi paralel menyediakan alternatif pilihan yang layak. Waktu idle siklus prosesor di seluruh jaringan dapat digunakan secara efektif oleh perangkat lunak komputasi terdistribusi yang canggih. Pengolahan paralel istilah digunakan untuk mewakili kelas besar teknik yang digunakan untuk memberikan tugas pengolahan simultan data untuk tujuan meningkatkan kecepatan komputasi dari sistem komputer.
Contoh :
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

G.  Kelebihan dan Kekurangan Pemrosesan Paralel
Kelebihan Pemrosesan Paralel :
·         Throughput jadi lebih tinggi
·         Waktu eksekusi lebih cepat
Kerugian Pemrosesan Paralel :
·         Parallel processing adalah salah satu teknik komputasi modern.
·         Perangkat keras lainnya yang dibutuhkan.
·         Tidak baik untuk daya rendah dan perangkat mobile.
·         Karena membutuhkan banyak prosesor maka biaya mahal.
·         Kebutuhan daya juga lebih.


2.2 Mengenal Teknologi Load Balancing

 

http://fxekobudi.net/wp-content/uploads/networking/cara-kerja-load-balancing.jpg
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.

 

A.   Mengapa Menggunakan Load Balancer?

Ada banyak alasan mengapa menggunakan load balancing untuk website atau aplikasi berbasis web lainnya. Dua alasan yang utama adalah:
1.    Waktu Respon. Salah satu manfaat terbesar adalah untuk meningkatkan kecepatan akses website saat dibuka. Dengan dua atau lebih server yang saling berbagi beban lalu lintas web, masing-masing akan berjalan lebih cepat karena beban tidak berada pada 1 server saja. Ini berarti ada lebih banyak sumber daya untuk memenuhi permintaan halaman website.
2.    Redundansi. Dengan load balancing, akan mewarisi sedikit redundansi. Sebagai contoh, jika website kita berjalan seimbang di 3 server dan salah satu server bermasalah, maka dua server lainnya dapat terus berjalan dan pengunjung website kita tidak akan menyadarinya downtime apapun.

B.     Cara Kerja Load Balancing

Load Balancer (perangkat load balancing) menggunakan beberapa peralatan yang sama untuk menjalankan tugas yang sama. Hal ini memungkinkan pekerjaan dilakukan dengan lebih cepat dibandingkan apabila dikerjakan oleh hanya 1 peralatan saja dan dapat meringankan beban kerja peralatan, serta mempercepat waktu respons. Load Balancer bertindak sebagai penengah diatara layanan utama dan pengguna, dimana layanan utama merupakan sekumpulan server/mesin yang siap melayani banyak pengguna.
Disaat Load Balancer menerima permintaan layanan dari user, maka permintaan tersebut akan diteruskan ke server utama. Biasanya Load Balancer dengan pintar dapat menentukan server mana yang memiliki load yang lebih rendah dan respons yang lebih cepat. Bahkan bisa menghentikan akses ke server yang sedang mengalami masalah dan hanya meneruskannya ke server yang dapat memberikan layanan. Hal ini salah satu kelebihan yang umumnya dimiliki load balancer, sehingga layanan seolah olah tidak ada gangguan di mata pengguna.

C.    Algoritma Load Balancing

·     Round Robin. Algoritma Round Robin merupakan algoritma yang paling sederhana dan banyak digunakan oleh perangkat load balancing. Algoritma ini membagi beban secara bergiliran dan berurutan dari satu server ke server lain sehingga membentuk putaran.
http://fxekobudi.net/wp-content/uploads/networking/round-robin-load-balancing.jpg
·     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.
·     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.
·     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.

D.    Fitur Load Balancing

Beberapa fitur yang ada pada baik load balancer hardware maupun load balancer software, yaitu:
·           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.
·           Aktivitas berdasarkan prioritas. Disaat load jaringan lagi peek, server akan dapat membagi aktivitas berdasarkan prioritas dan ke link cadangan.
·           Proteksi dari serangan DDoS. karena kita dapat membuat fiturseperti SYN Cookies dan delayed-binding (suatu metode di back-end server pada saat terjadi proses TCP handshake) pada saat terjadi serangan SYN Flood.
·           Kompresi HTTP. Memungkinkan data untuk bisa mentransfer objek HTTP dengan dimungkinkannya penggunaan utilisasi kompresi gzip yang berada di semua web browser yang modern.
·           TCP Buffering. dapat membuat respon buffer dari server dan berakibat dapat memungkinkan task akses lebih cepat.
·           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.
·           Content Filtering. Beberapa load balancing dapat melakukan perubahan trafik pada saat dijalankan.
·           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.
·           Priority Queuing. berguna untuk memberikan perbedaan prioritas traffic paket.
·           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 bertubi-tubi 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 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.

E.     Tipe Load Balancer

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

http://fxekobudi.net/wp-content/uploads/networking/linux-virtual-server.jpg
·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 Balancer Hardware diantaranya adalah: Cisco System Catalyst, Coyote Point, F5 Network BIG-IP, Baraccuda Load Balancer.

F.     Penggunaan Load Balancer

Pada umumnya Load Balancer digunakan oleh perusahaan/pemilik layanan yang menginginkan layanannya selalu tersedia setiap saat (high availability) walaupun secara kenyataan terdapat kendala yang membuat layanan tidak dapat diakses. Misalnya untuk layanan web server/email server. Dengan load balancer, apabila ada 2 mail server dengan konfigurasi dan tugas yang sama, maka load balancer akan membagi beban ke 2 mail server tersebut. Dan apabila salah satu Mail server tersebut down/tidak dapat diakses/mengalami gangguan, maka Mail server yang lain dapat terus melayani layanan yang diakses oleh user.
Untuk jaringan komputer, Load Balancer digunakan di ISP/Internet provider dimana memungkinkan tersedianya akses internet selama 24x7x365 tanpa ada down time. Tentu hal ini yang diinginkan oleh pelanggan yang menggunakan layanan akses internet ISP tersebut. ISP/Provider hanya perlu memiliki 2 Link internet yang memiliki jalur berbeda, agar disaat salah satu link down, masih ada 1 link yang dapat melayani akses internet ke pelanggannya. Dan ISP menggunakan Load Balancer untuk membagi beban akses internet tersebut sehingga kedua Link Internet tersebut maximal penggunaannya dan beban terbagi dengan baik.

G.    Perbandingan Software vs Hardware Load Balancer

Kelebihan Load Balancer Software:
·         Lebih murah.
·         Beberapa software aplikasi memiliki banyak pilihan konfigurasi yang dapat disesuaikan dengan kebutuhan kita.
Kekurangan Load Balancer Software:
·         Sebagian besar aplikasi tidak dapat menangani situs besar atau jaringan kompleks.
·         Paket aplikasi yang akan mendukung sistem yang lebih besar memerlukan jumlah hardware lebih banyak.
Kelebihan Load Balancer Hardware:
·         Pendekatan biasanya lebih kuat dari pilihan perangkat lunak.
·         Proses lalu lintas pada tingkat jaringan, yang secara nominal lebih efisien daripada dekripsi perangkat lunak.
·         Bekerja dengan banyak OS atau platform.
Kekurangan Load Balancer Hardware:
·         Biaya lebih tinggi dibandingkan menggunakan software load balancer.
Teknologi load balancing dapat menjadi salah satu solusi yang efektif dan eļ¬sien untuk menciptakan sistem yang handal dengan tingkat ketersediaan tinggi (high availability), khususnya sebagai web server. Untuk pemanfaatan teknologi load balancing menggunakan software load balancing saat ini memang lebih banyak digunakan pada sistem operasi open souce seperti linux. 
Bagaimana cara kerjanya :
Adapun yang perlu dipahami kembali dari pentingnya menggunakan Load balancing untuk website atau aplikasi berbasis web lainnya diantaranya :
1.    Waktu respon adalah manfaat terbesar untuk meningkatkan kecepatan akses website saat dibuka. Dengan dua atai lebih server yang saling berbagi bebam lalu lintas web, masing-masing akan berjalan lebih cepat karena beban tidak berada pada 1 server saja. Ini berarti ada lebih banyak sumber daya untuk memenuhi permintaan halaman website.
2.    Dengan Load balancing akan mewarisi sedikit redudansi. Sebagai contoh, jika website kita berjalan seimbang di 3 server dan salah satu server bermasalah, maka dua server lainnya dapat terus berjalan dan pengunjung website kita akan menyadari downtime apapun.

Kesimpulan
            Pemrosesan Paralel adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. 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. Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
            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.













DAFTAR PUSTAKA
kukusumama.blogspot(April 2016)
pemrosesan parallel dankomputasi Diperoleh 26 Maret 2019, Dari

ratricharisma.wordpress (06 Juni 2017)
parallel-computation-pemrosesan-paralelDiperoleh 26 Maret 2019 dari

idcloudhost
memahami-pentingnya-load-balancingDiperoleh 26 Maret 2019 dari