Jumat, 11 Juni 2021

PARALLELISM CONCEPT

 TUGAS MAKALAH

 KOMPUTASI MODERN

Parallelism Concept

 

Disusun Oleh :

1.     Aditya Cahya Putra                    (50417165)

2.     Afni Restiana Putri D                (50417237)

3.     Andri Adiansyah                        (50417724)

4.     Henry Stephanus S                     (52417737)

5.     Ignasius Dewanto Indra J           (52417816)

6.     Ressa Adelia Puspita T              (55417064)

7.     Taufan Priambudi                      (55417898)

 

4IA18

TEKNIK INFORMATIKA

UNIVERSITAS GUNADARMA

2021


KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa atas limpahan rahmat dan anugrah dari-Nya. Kami dapat menyelesaikan makalah tentang Parallelism Concept. Makalah ini dibuat sebagai penilaian atas tugas mata kuliah Komputasi Modern.

Kami sangat bersyukur karena dapat menyelesaikan makalah yang menjadi tugas mata kuliah Komputasi Modern, dengan judul Parallelism Concept. Disamping itu, saya mengucapkan banyak terimakasih kepada Ibu Dosen Wiwied Widyaningsih yang telah memberikan arahan kepada kami dalam pembuatan makalah ini sehingga dapat terealisasikanlah makalah ini.

Demikian yang dapat kami sampaikan, semoga makalah ini dapat bermanfaat bagi para pembaca. Kami sadar, makalah yang kami buat ini masih banyak terdapat kekurangannya. Oleh karena itu kami mengharapkan kritik dan saran dari para pembaca terhadap makalah ini agar kedepannya dapat kami perbaiki menjadi yang lebih baik lagi

 

 

Bekasi, 10 Juni 2021

 

 

Tim Penyusun

 DAFTAR ISI

 

KATA PENGANTAR

DAFTAR ISI

BAB I PENDAHULUAN...................................................................................................1

       1.1  Latar Belakang..................................................................................... ...........,.1

       1.2  Rumusan Masalah..............................................................................................2

       1.3  Tujuan Penulisan................................................................................................2

BAB II PEMBAHASAN.....................................................................................................3

       2.1  Parallelism Concept............................................................................................3

       2.2  Tingkat Parallelism.............................................................................................4

       2.3  Jenis Pemrosesan Parallelism..............................................................................4

       2.4  Kinerja Komputasi Dengan Parallel Processing.................................................5

BAB III PENUTUP...........................................................................................................10

       3.1  Kesimpulan......................................................................................................10

DAFTAR PUSTAKA.................................................... ....................................................11


BAB I

PENDAHULUAN

 

1.1. Latar belakang

Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa resources ( komputer ) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.

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. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah / operasi secara bersamaan ( komputasi paralel ), baik dalam komputer dengan satu ( prosesor tunggal ) ataupun banyak ( prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi ( distributed computing ). 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.

1.1. Rumusan Masalah

Rumusan masalah pada makalah ini ialah:

1.     Apa itu Parellelism Concept?

2.     Apa saja tingkat pararelisme?

3.     Apa saja jenis-jenis pemrosesan pararel?

4.     Bagaimana kinerja Komputasi dengan Parallel Processing?

 

1.2. Tujuan Penulisan

Tujuan dari makalah ini adalah ingin memberitahukan kepada pembaca tentang apa yang dimaksud dengan Parellelism Concept, serta menambah pengetahuan bagi mahasiswa mengenai Parellelism Concept antara lain:

1.     Untuk memberi pengetahuan Parellelism Concept.

2.     Untuk memberi pengetahuan tentang apa saja tingkat pararelisme.

3.     Untuk memberikan pengetahuan mengenai jenis-jenis pemrosesan pararel.

4.     Untuk memberi pengetahuan mengenai kinerja Komputasi dengan Parallel Processing.

 

 BAB II

    PEMBAHASAN

 

1.1. Parallelism Concept

Paralelisme (parallelism) lahir dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk menerapkan konsep pemrosesan konkuren. Teknik ini meningkatkan kecepatan proses dengan cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara simultan disertai dengan membentuk beberapa proses yang bekerja secara simultan pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan paralel adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi.Pemrosesan paralel dapat terjadi pada beberapa tingkatan (level) proses. Tingkatan tertinggi pemrosesan paralel terjadi pada proses di antara banyak job (pekerjaan) atau pada program yang menggunakan multiprogramming, time sharing, dan multiprocessing. Multiprogramming kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah system secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, dan timesharing berarti menyediakan pembagian selang waktu yang tetap atau berubah-ubah untuk banyak program. Multiprocessing adalah dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut. Multiprocessing sering diimplementasikan dalam perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali. Pemrosesan paralel dapat juga terjadi pada proses di antara prosedurprosedur atau perintah perintah (segmen program) pada sebuah program.Untuk meningkatkan kecepatan proses komputasi, dapat ditempuh dua cara :

1.     Peningkatan kecepatan perangkat keras.

Komponen utama perangkat keras komputer adalah processor. Meskipun kecepatan processor dapat ditingkatkan terus, namun karena keterbatasan materi pembuatnya, tentu ada suatu batas kecepatan yang tak mungkin lagi dapat dilewati. Karena itu timbul ide pembuatan komputer multiprocessor. Dengan adanya banyak processor dalam satu komputer, pekerjaan bisa dibagi-bagi kepada masing-masing processor. Dengan demikian lebih banyak proses dapat dikerjakan dalam satu saat. Peningkatan kecepatan setiap proses bisa dicapai melalui peningkatan kecepatan perangkat lunak. Kecepatan perangkat lunak sangat ditentukan oleh algoritmanya.

2.     Peningkatan kecepatan perangkat lunak.

Program komputer untuk komputer sekuensial harus menyediakan sederetan operasi untuk dikerjakan oleh prosesor tunggal. Program komputer untuk komputer paralel harus menyediakan sederetan operasi untuk beberapa prosesor untuk dikerjakan secara paralel, termasuk operasi untuk mengatur dan mengitegrasikan prosesor-prosesor yang terpisah tersebut mengerjakan suatu komputasi yang koheren. Kebutuhan akan pembuatan dan pengaturan berbagai aktivitas komputasi paralel menambah dimensi baru proses dari pemrograman komputer. Algoritma untuk problem yang spesifik harus diformulasikan sedemikian rupa, agar menghasilkan aliran operasi paralel yang kemudian akan dieksekusi di prosesor yang berbeda. Karena itu, meskipun arsitektur multiprosesor dan multikomputer mempunyai pontensi yang tinggi untuk meningkatkan kemampuan komputasi, potensi ini akan tercapai melalui pengertian yang baik mengenai bahasa pemrograman paralel dan perancangan algoritma paralel.


1.1. Tingkat Parallelisme

Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat sebagai berikut :

1.     Komputer Array :

a.     Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)

b.     Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.

2.     Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.

3.     Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.

 

1.2. Jenis-jenis Pemrosesan Pararel 

Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :

1.     Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a.     Asymmetric Multiprocessing (ASMP)

b.     Symmetric Multiprocessing (SMP)

c.     ClusteringPoliteknik Telkom Sistem Komputer

2.     Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a.     SISD (Single Instruction on Single Data Stream)

b.     SIMD (Single Instruction on Multiple Data Stream)

c.     MISD (Multiple Instruction on Single Data Stream)

d.     d) MIMD (Multiple Instruction on Multiple Data Stream)

3.     Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa jenis:

a.     Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi

b.     Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)

 

1.3.Kinerja Komputasi dengan Pararel Processing

Pemrosesan Paralel adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara bersamaan.

Tujuan utama dari pemrosesan 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, 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 pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik 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

Model Pemrosesan Paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:

§  SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.

§  SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda.

§  MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi masing-masing bisa berinteraksi.

§  MISD Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.

Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah. Adapun tipe-tipe Paralelisme adalah sebagai berikut :

1.     Result Paralelisme

Result Paralelisme yang sering disebut sebagai Embarrassingly Parallel atau Perfect Paralel adalah tipe paralelisme dimana komputasinya dapat dibagi menjadi beberapa tugas independen yang mempunyai struktur sama. Data struktur suatu tugas dibagi menjadi beberapa bagian yang berstruktur sama. Contoh tugas yang bisa diselesaikan dengan Result Parallelism adalah Simulasi Montecarlo.

2.     Specialist Paralelisme

Cara kerja Specialist Parallelisme adalah dengan mengerjakan beberapa tugas secara bersamaan pada prosesor yang berbeda . Setiap komputer mengerjakan tugas tertentu. Contohnya penggunaanya adalah pada simulasi pabrik kimia, satu prosesor mensimulasikan proses sebelum reaksi kimia, satu prosesor mensimulasikan reaksi pada tahap awal, dan prosesor lainnya mensimulasikan proses penyulingan hasil, dan seterusnya.

3.     Agenda Paralelisme

Tipe paralelisme ini mempunyai daftar yang harus dikerjakan oleh sistem komputer . Semua komputer yang terdapat pada sistem dapat mengakses daftar tersebut. Pada Model MW (Manager Worker) terdapat pengelompokan komputer menjadi dua yaitu :

a.   Manager : bertugas memulai perhitungan, memonitor kemajuan tugas, melayani permintaan worker. User berkomunikasi dengan sistem komputer melalui komputer yang berfungsi sebagai manager ini.

b.   Worker : mengerjakan tugas-tugas yang diberikan oleh manager. Kerja komputer ini dimulai setelah ada perintah dari manager dan diakhiri oleh manager.

Pesan Terdistribusi dan Lingkungan Pemrograman (Distributed Messaging and Programming Enviroment) hubungannya dengan pemrosesan paralel ialah pesan sebagai sesuatu ( objek ) pada pemrosesan itu sendiri sehingga kita harus mendeskripsikan pesan ( message ) itu .

Messages adalah urutan bytes yang dikirimkan antar proses. Pengirim dan penerima harus mempunyai kesepakatan mengenai struktur pesan sehingga isi pesan dapat diterjemahkan dengan benar. Pada prinsipnya cara pengiriman pesan adalah sederhana. Proses A mengirim data buffer sebagai sebuah pesan ke proses B. Pada saat bersamaan proses B menunggu datangnya pesan dari proses A. Ketika pesan tersebut maka proses B akan men-copy pesan tersebut di memori lokalnya. Adapun Metode Pengiriman pesan (message passing) terdapat beberapa metode dalam pengiriman pesan yaitu :

a.      Synchronous Message Passing

Cara pengiriman menggunakan metode ini ialah pengirim menunggu untuk mengirim pesan sampai penerima siap untuk menerima pesan. Oleh karena itu tidak ada buffering. Selain itu Pengirim tidak bisa mengirim pesan untuk dirinya sendiri.

b.     Ansynchronous Message Passing

Pengirim akan mengirim pesan kapanpun dia mau. Pengirim tidak peduli ketika penerima belum siap untuk menerima pesan. Oleh karena itu diperlukan buffering untuk menampung pesan sementara sampai penerima siap menerima pesan. Selain itu pengirim dapat pesan untuk dirinya sendiri. Selain berdasarkan metode pengiriman pesan diatas, pengiriman pesan (message passing) dibedakan berdasarkan jumlah penerima pesan yaitu: Point to Point dan Broadcast. Perbedaan mendasar keduanya adalah jumlah penerima yang menerima pesan. Pada Point to Point penerimanya tunggal sedangkan pada broadcast jumlah penerimanya banyak.

 

PVM dan MPI Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan Antarmuka Pengiriman Pesan (MPI) adalah kumpulan library yang memungkinkan kita untuk menulis program pengiriman pesan paralel menggunakan bahasa pemrograman C dan FORTRAN agar bisa berjalan pada sistem paralel.

Kemampuan sistem paralel tergantung dari kemampuan pemrogram untuk membuat aplikasi terdistribusi ketika dijalankan pada sistem paralel. Jika node slave mempunyai prosessor lebih dari satu maka pemrogram harus memperhitungkan kemungkinan paralelisme 2 level: Paralelisme di dalam slave node (intra-node parallelism) dan paralelisme antar slave node (inter-node parallelism). Inter-node parallelism menggunakan shared memory dalam node sehingga tidak melakukan pertukaran data secara explicit. Sedangkan Inter-node parallelism melakukan pertukaran data lewat media yang menghubungkan antara node slave yang ada.

Terdapat tiga metode untuk mengimplementasikan Inter-node parallelism yaitu :

a.   Dengan cara membuat protokol  komunikasi ad hoc level rendah. Contohnya dengan menggunakan   socket interface.

b.   Dengan menggunakan distributed communication library. Contohnya dengan menggunakan Message Passing Interface (MPI) library

c.  Dengan memanfaatkan layer software dengan maksud untuk menyembunyikan interconnect dari programmer.

Setelah kita mengenal , komponen – komponen dan tujuan dari pemrosesan paralel tersebut, kita beralih ke sistem pemrosesan paralel dimana, sistem pemrosesan paralel adalah sekumpulan komputer terhubung dan bekerjasama sebagai satu resource komputer yang terintegrasi untuk menyelesaikan suatu tujuan. Sebuah sistem paralel setidaknya terdiri dari Message Passing Interface (MPI) dan sebuah pengatur beban kerja (job scheduler) . Message Passing Interface bertugas untuk mengirim data antar komputer di dalam sistem paralel (biasanya disebut sebagai node atau host). Job scheduler seperti yang tersirat dari namanya bertugas menerima tugas dari user dan menjadwalkan tugas tersebut pada beberapa node didalam sistem parallel sesuai kebutuhan.

MPI (Message Passing Interface) adalah sebuah mekanisme mengiriman instruksi dan data antara dua proses komputasi yang berbeda yang berada pada komputer berbeda pada sistem sistem paralel. Paket-paket yang mempunyai spesifikasi kebutuhan MPI telah banyak beredar di Internet dan telah dilengkapi dengan LAM/MPI [5] dan MPICH [6]. Paket-paket ini telah dilengkapi dengan fungsi-fungsi yang menggunakan library C dan Fortran. Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero . Pada makalah ini digunakan MPITB dengan pertimbangan fungsionalitas dan kelengkapannya disamping fakta bahwa MPITB dan GNU Octave adalah bebas digunakan bahkan untuk keperluan komersial. Hal ini juga berarti bahwa source code-nya banyak beredar dan dapat dimodifikasi sesuai kebutuhan


BAB III

PENUTUP 

3.1   Kesimpulan

  Paralelisme (parallelism) lahir dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk menerapkan konsep pemrosesan konkuren.Paralelism merupakan teknik yang digunakan dalam meningkatkan kecepatan suatu proses dengan cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara simultan. Terdapat 3 tingkatan prosesor parallel yaitu : komputer array, multiprosesor, dan juga multicomputer.Berdasarkan klasofokasinya dapat dibagi menjadi 3 pula, klasifikasi berdasarkan simetri penjadwalannya, aliran instruksi dan datanya dan juga kedekatan antar prosesor. Adapun tujuan utama dari pemrosesan parallel yaitu untuk meningkatkan performa komputasi. Di dalam proses kerjanya, paralelisme memiliki model pemroses, antara laiun : SISD, SIMD MIMD dan MISD, adapula tipe-tipenya , yaitu : result paralelisme, specialist parlelisme dan agenda paralelisme.


DAFTAR PUSTAKA

 

https://www.academia.edu/32362019/Parallelism_concept       

                 diakses pada tanggal 10 Juni 2021.

PARALLELISM CONCEPT

  TUGAS MAKALAH  KOMPUTASI MODERN Parallelism Concept   Disusun Oleh : 1.       Aditya Cahya Putra                    (50417165) 2.       Af...