• Tidak ada hasil yang ditemukan

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 2 September 2013

N/A
N/A
Protected

Academic year: 2022

Membagikan "JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 6 NO. 2 September 2013"

Copied!
8
0
0

Teks penuh

(1)

ANALISA KINERJA PARALLEL COMPUTING DENGAN MENGGUNAKAN PERHITUNGAN HUKUM AMDAHL BERBASISKAN LINUX

Yudhi Arta1

ABSTRACT

Parallel Computing is the unification of multiple computers or servers into a single unit that can work simultaneously or processes simultaneously. Parallel computing and the process of making the program run faster as more CPUs are used. Essentially parallel computing using a network media, but that is characteristic in particular is how to resolve the problem. Problems encountered here was how to rendering an image that looks speedup PC and serial values contained by parallel computing.

Keywords: Parallel Computing, Rendering, SpeedUp, Serial Value.

INTISARI

Parallel Computing yaitu penyatuan beberapa komputer atau server menjadi satu kesatuan sehingga dapat mengerjakan proses secara bersamaan ataupun secara simultan. Parallel computing membuat program maupun proses berjalan lebih cepat karena semakin banyak CPU yang digunakan. Pada dasarnya parallel Computing menggunakan media jaringan, tapi yang menjadi ciri khususnya adalah bagaimana menyelesaikan masalah. Masalah yang dihadapi disini adalah bagaimana me-rendering sebuah gambar sehingga terlihat speedup PC dan juga nilai serial yang dikandung oleh parallel computing.

Kata Kunci : Parallel Computing , Rendering , SpeedUp , Nilai Serial.

1 Dosen Program Studi Teknik Informatika Fakultas Teknik Universitas Islam Riau

(2)

PENDAHULUAN

Pemrosesan paralel (parallel processing) adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan.

Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya.

Komputasi paralel merupakan salah satu teknologi paling menarik yang penting sejak ditemukannya komputer elektronik pada tahun 1940- an. Terobosan dalam pemrosesan paralel selalu berkembang dan mendapatkan tempat disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat dimengerti betapa pentingnya komputasi paralel itu. Inti dari komputasi paralel yaitu hardware, software, dan aplikasinya.

Paralel Prosesing merupakan suatu pemrosesan informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Oleh karena itu komputasi paralel dapat diartikan bahwa komputer dengan banyak prosesor yang mampu untuk melakukan paralel prosesing

PENDEKATAN PEMECAHAN MASALAH

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan.

Biasanya digunakan untuk kapasitas yang pengolahan data yang sangat

besar (lingkungan industri, bioinformatika dan lain - lain) atau karena tuntutan komputasi yang banyak.

Komputer paralel adalah komputer tunggal dengan beberapa internal prosesor atau beberapa komputer yang dihubungkan oleh suatu interconnection network (IN) Komputer paralel dapat dikelompokkan, berdasarkan pengorganisasian memorinya, ke dalam dua arsitektur dasar yaitu:

sistem memori bersama (shared memory) dan sistem memori tersebar (distributed memory). Dalam sistem memori tersebar komunikasi antar proses menggunakan mekanisme pertukaran pesan (message passing).

Program paralel dengan pertukaran pesan dapat ditulis menggunakan suatu bahasa pemrograman tingkat tinggi (misalnya: fortran, C/C++), dan menyertakan (atau pemanggilan) suatu pustaka pertukaran pesan MPI (Message Passing Interface) atau PVM (Parallel Virtual Machine). Pada penelitian ini digunakan digunakan pustaka MPI. Terdapat dua struktur program parallel : Single Program Multiple Data (SPMD) dan Multiple Program Multiple Data (MPMD).

Dalam struktur SPMD, hanya terdapat satu sumber program dan setiap prosessor akan mengeksekusi salinan dari program ini. Sedangkan dalam struktur MPMD, terdapat beberapa sumber program dan setiap prosessor megeksekusi program yang berbeda Pemrograman parallel 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.

(3)

Komputasi paralel membutuhkan diantaranya algoritma, bahasa pemrograman dan compiler.

PVM

PVM adalah perangkat lunak yang membuat sekumpulan komputer menjadi tampak seperti sebuah sistem komputer virtual yang besar.

Sekumpulan komputer yang akan terlibat dalam proses penyelesaian masalah harus didefinisikan trelebih dahulu, agar dapat menjalankan fungsinya. Komputer-komputer yang terlibat dalam komputasi bisa homogen, dengan platform yang sama, maupun heterogen, dengan platform yang berbeda, asal di antara mereka bisa saling berkomunikasi.

PVM dapat menangani semua pengiriman proses, konversi data dan penjadwalan task.

Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang diberi nama pvmd.

Pvmd diaktifkan di setiap komputer yang akan membentuk mesin virtual.

Bagian kedua adalah pustaka rutin antarmuka PVM yang berisi koleksi perintah-perintah primitif untuk mengoperasikan proses-proses pustaka tersebut. Pustaka rutin ini digunakan dalam program aplikasi paralel yang ditulis dengan bahasa pemrograman C, C++, atau FORTRAN 77. Aplikasi dalam bahasa pemrograman C dan C++

dihubungkan melalui pustaka libpvm3.lib, sedangkan aplikasi dalam bahasa pemrograman FORTRAN 77 dapat mengambil rutin-rutin dalam libfpvm3.lib [1].

PVM memberi fasilitas untuk membuat sejumlah proses yang tidak tergantung dari jumlah prosesor.

Setiap proses diidentifikasi menggunakan kode (task ID) dan dipetakan ke prosesor secara otomatis, atau dapat juga diatur oleh programmer. Program PVM umumnya diatur dengan model master-slave, yaitu satu proses yang dieksekusi pertama kali menjadi master dan

mengaktifkan semua client dengan memanggil pvm_spawn. Rutin tersebut otomatis akan menjalankan semua proses dalam sistem PVM.

Cara lain untuk menjalankan proses adalah dengan memanggil rutin pvm_mytid yang mengembalikan kode task ID dari proses tersebut.

Sebelum keluar dari sistem PVM, semua proses client harus dimatikan dari PVM dengan memanggil rutin pvm_exit.

Komunikasi antar proses di dalam sistem PVM dilakukan secara message passing menggunakan perintah rutin PVM seperti pvm_send dan pvm_recv. Semua rutin pengiriman pesan dilakukan secara asinkron, sedangkan semua rutin penerimaan pesan dapat dilakukan secara sinkron maupun asinkron. Ada tiga tahap dalam mengirim pesan dalam PVM, yaitu :

1. Menginisialisasi buffer pengiriman dengan rutin pvm_initsend

2. Mengemas isi pesan ke dalam buffer dengan memanggil rutin pvm_pk*. Data yang dikemas dapat bertipe byte, complex, double, float, integer, dan character. Tipe tersebut dinyatakan dengan mengganti tanda “*” dan memberi tipe yang sesuai untuk tiap parameter di dalam rutin pvm_pk*. Misalnya data yang akan dikemas bertipe float, maka digunakan pvm_pkfloat.

3. Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau pvm_mcast Proses yang menerima pesan harus membuka paket pesan pada buffer penerima sesuai dengan format pengiriman pesan.

PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam sistem PVM, seperti pencetakan pesan kesalahan secara otomatis, tingkat pencarian kesalahan (debugging level), dan metode

(4)

pengaturan jalur komunikasi. Contoh yang paling umum dari penggunaan pvm_setopt adalah memungkinkan jalur komunikasi langsung antar task dalam PVM. Pvm_setopt (PvmRoute, PvmRouteDirect). Dengan perintah ini otomatis bandwidth komunikasi di dalam jaringan akan digandakan.

MPI

Menurut Heru (2006), Dalam implementasinya MPI menggunakan fungsi-fungsi pustaka yang dapat dipanggil dari program C, C++, atau Fortran. Hampir sama dengan PVM, MPI juga portable untuk berbagai arsitektur. Salah satu implementasi terbaru pada saat penulisan makalah ini yang berjalan pada lingkungan Windows adalah MPICH.

Ditinjau dari sisi aplikasi, MPI hanya dapat digunakan dengan model single program multiple data (SPMD), sedangkan PVM dapat digunakan dengan model SPMD maupun multiple program multiple data (MPMD). Model SPMD secara fisik ditunjukkan dengan program master dan slave yang menyatu, sedangkan MPMD ditunjukkan dengan program master dan slave yang terpisah, sehingga slave dapat mengerjakan tugas yang berbeda- beda antara satu node dengan node lainnya.[1].

MPI adalah teknik

pemrograman yang berdasarkan data parallel dengan Single Program Multiple Data (SPMD). Maksudnya adalah setiap proses mengeksekusi program yang sama tetapi menggunakan data yang berbeda.

Untuk sharing data, suatu proses secara eksplisit mengirimkan data kepada proses penerima yang juga menerima data secara eksplisit. MPI bukan merupakan bahasa pemrograman baru, tetapi MPI adalah subprogram library yang dapat dipanggil dari program C dan Fortran 77. Ada dua implementasi MPI untuk grid: GridMPI yang dibuat oleh National Institute of Advanced

Industrial Science and Technology (AIST) [7] dan MPICH-G2 yang dibuat oleh Argonne National La boratory (ANL) [8]. GridMPI adalah implementasi MPI untuk jarak antar komputer sampai dengan 500 mil yang terkoneksi dengan jaringan berkecepatan 1 sampai dengan 10 Gbps sedangkan MPICH-G2 adalah implementasi MPI dengan menggunakan Globus Toolkit (standar middleware komputasi grid) dalam lingkungan WAN.[2]

Abstraksi program aplikasi yang dibuat oleh user dinyatakan pada lapisan API. Fungsi-fungsi pustaka yang tersedia pada MPI dinyatakan dalam header mpi.h. Pengaktifan MPI dimulai dengan menjalankan perintah MPI_Init(&argc, &argv); pada program utama, dilanjutkan dengan menentukan ranking dari tiap node yang menjalankan program aplikasi dengan perintah MPI_Comm_rank (MPI_COMM_WORLD, &my_rank);

my_rank adalah bilangan bulat positif, bernilai nol berarti program berjalan pada komputer master, sebaliknya bernilai tidak sama dengan nol berarti program berjalan pada komputer slave. MPI_COMM_WORLD adalah konstanta yang telah terdefinisi untuk mengendalikan proses-proses yang ada pada saat MPI dimulai. Untuk mengetahui jumlah prosesor (node) yang aktif digunakan perintah MPI_Comm_size

(MPI_COMM_WORLD, &p).

Komunikasi dilakukan secara berurutan dari lapisan teratas sampai ke lapisan fisik, pada sisi penerima berlaku sebaliknya, yaitu dari lapisan fisik ke atas. Misalnya ada perintah MPI_Send(message,

strlen(message)+1, MPI_CHAR,dest, tag, MPI_COMM_WORLD); maka pesan (message) sepanjang strlen(message)+1 dan bertipe karakter (MPI_CHAR) dikirim ke prosesor tujuan (dest). Pada lapisan ADI pesan tersebut diterima oleh Send_handle yaitu pengendali pengiriman data pada lapisan ADI,

(5)

kemudian pada lapisan Channel Device paket tersebut diterima

dengan pengendali

MPID_SendControl dan

MPID_SendChannel. Selanjutnya, pada lapisan low level device komunikasi dilakukan dengan protocol yang tersedia. Misalnya MPICH berjalan pada Windows 2000, maka protokol yang digunakan adalah TCP/IP. Pada sisi penerima, lapisan komunikasi atau channel device interface memiliki pengendali MPID_ControlMsgAvail dan MPID_RecvAnyControl. Kedua pengendali ini meneruskan paket ke lapisan ADI. Pada lapisan ini, terdapat dua pengendali, yaitu:

PostedRecv_Handles dan

UnexpectedRecv_Handles, masing- masing digunakan untuk mengetahui pengiriman paket yang terkirim dengan benar dan yang salah.

Selanjutnya, pada lapisan aplikasi, data diterima dengan perintah MPI_Recv (message, len, MPI_CHAR, source, tag, MPI_COMM_WORLD, &status) dan untuk mengakhiri MPI digunakan perintah MPI_Finalize.

Gambar 1. Arsitektur MPICH Dalam penelitian ini dapat disimpulkan bahwa permasalahan yang dihadapi adalah penggunaan resource yang tidak optimal.

Metodologi yang dapat digunakan untuk meningkatkan ketersediaan sebuah server adalah dengan membuat sebuah load balancing cluster. Dengan adanya cluster server ini dapat mengatasi masalah yang

dihadapi atas ketergantungan yang dihadapi olen instansi itu sendiri.

Dengan adanya resource tersebut maka dapat dibangun sebuah cluster yang dapat membantu kinerja dari segi infrastruktur dan lainnya. Cluster ini sendiri juga berfungsi meningkatkan kinerja dan juga estabilitas kerja dari sistem itu sendiri.

Uraian kerja akan dijelaskan di dalam kerangka kerja yang nantinya menjelaskan prosedur maupun langkah – langkah yang akn dihadapi dalam membangun cluster server ini.

Tahap awal adalah menganalisa dan merancang apa – apa saja yang dibutuhkan dalam pembangunan cluster server ini. Lalu dilanjutkan dengan pengujian beserta membuat laporan hasil kinerja dari cluster tersebut dalam sebuah tabel.

Gambar 2. Kerangka Kerja Penelitian

HASIL DAN PEMBAHASAN

Pada bagian pembahasan, penulis akan menampilkan setiap artifak terkait dari setiap proses dan aktivitas yang dilakukan pada setiap fase menurut metodologi DAD. Setiap fase memiliki tujuan aktivitas proses, dimana aktivitas proses tersebut menghasilkan artifak atau dokumentasi aplikasi yang dibangun.

Seperti yang disebutkan diatas, DAD membagi tahapan pengembangan

(6)

piranti lunak menjadi inception, construction dan transition.

Perancangan Topologi

Untuk perancangan topologi cluster hampir sama seperti dengan topologi grid computing. Dalam hal ini, cluster mempunyai satu master dan beberapa node / client / slave yang nantinya akan di-manage oleh master cluster. Hampir keseluruhan perusahaan besar sudah menerapkan cluster sejak awal komputasi mereka dibangun.

Pada gambar 3 terdapat topologi yang digunakan oleh instansi berskala enterprise untuk me-manage webserver yang merupakan jantung dari investasi mereka dalam persaingan di dunia maya. Jika kita ingin membangun parallel computing bagi coorporate, biasanya terdapat vendor - vendor yang bersedia membangunkan atau menyediakan fasilitas tersebut dengan biaya yang cukup relative tinggi. Beberapa vendor diantaranya adalah IBM, Microsoft, Dell, dan vendor besar lainnya.

Gambar 3. Topologi Load Balancing Untuk Enterprise Dari gambar 4 dapat dijelaskan bahwa kegunaan cluster adalah untuk membackup akses ke webserver secara cepat dana membantu node didepannya, sehingga database dan juga file sharing yang digunakan

dapat diakses dan dibantu oleh cluster secara cepat.

Dari hasil rendering tersebut kita sudah mendapatkan nilai waktu render maupun alokasi penggunaan resource yang kita pakai saat rendering. Hasil tersebut dapat kita lihat pada gambar 4. :

Gambar 4. Hasil Timing Dari Rendering

Dari beberapa hasil test nanti kita akan membuat kesimpulan dan nilainya akan kita ukur pada hukum Amdahl untuk mencari berapa nilai serial yang terdapat pada CPU yang tidak bisa diganggu gugat. Untuk hasil dari rendering tersebut, dapat kita simpulkan hasil cluster tesebut kedalam tabel 1 berikut ini :

Tabel 1. Hasil Rendering Dengan 2 Node

(7)

Hukum Amdahl

Setelah didapat hasil dari speedup yang telah kita uraikan di atas, maka kita perlu menentukan nilai serial yang tidak berpengaruh terhadap parallel procesing. Nilai serial berguna menentukan berapa persen proses yang tidak terpengaruh dari hasil parallel procesing baik dari segi hardware dan software. Adapun hukum amdahl nya adalah :

Sp = SpeedUp yang didapat dengan P buah procesor

f = Bagian dari program yang harus dieksekusi secara serial (0..1) Hukum Amdahl untuk 2 node :

1,17 f + (1,17/2) [1-f] = 1 1,17 f + 0,58 – 0,58f = 1 0,58 f = 1 – 0,58 0,58 f = 0,42 f = 0,42 / 0,58 f = 0,72

dijadikan persen : f = 0,72 *100%

f = 72 % KESIMPULAN

Kesimpulan dari pengujian ini adalah :

1. Keseluruhan cluster sudah bisa berjalan sesuai dengan yang diinginkan.

2. Dengan hasil rendering tersebut kita mendapatkan data berapa speedup yang dibutuhkan untuk parallel procesing atau clustering.

3. Dari hasil testing 2 node atau 3 node yang ada, kita sudah mendapatkan berapa persen nilai serial yang terdapat

dalam parallel procesing meskipun belum begitu valid dikarenakan keterbatasan yang ada. Dengan adanya nilai serial, maka dapat kita simpulkan masih terdapat nilai yang cukup besar untuk pemrosesan paralel yang tidak dapat diganggu gugat.

4. Nilai serial yang terdapat ini terletak pada 2 lapisan yaitu : software dan hardware.

5. Untuk nilai serial dalam software, terdapat beberapa instruksi yang memang tidak terpengaruh terhadap proses clustering atau parallel procesing. Bisa kita katakan seperti instruksi maupun algoritma yang diterapkan didalam parallel procesing yang tidak dapat diganggu gugat. Juga dalam sistem operasi itu sendiri dalam melakukan cluster atau parallel procesing memiliki keterbatasan untuk memberi instruksi perintah yang dijalankan.

6. Untuk nilai serial dalam hardware bisa dikatakan seperti keterbatasan ethernet card, kabel yang digunakan dan juga beberapa faktor lainnya.

7. Jika ingin mendapatkan hasil fraksial yang lebih signifikan atau lebih valid, maka dapat

dibuktikan dengan

membangun cluster dengan 10 node atau tambahan beberapa node lagi.

8. Untuk membuktikan proses serial yang tidak bisa diganggu gugat dapat kita buktikan dengan membuka koding untuk proses cluster yang mana saja yang dianggap serial dan dapat dianalisa lebih lanjut.

(8)

DAFTAR PUSTAKA

[1] Anton Dwi Laksono, A.Benny Mutiara MQN and Brahmantyo Heruseto. 2004. Analisis Perbandingan Antara Cluster Openmosix Dengan Mpi Terhadap Aplikasi Rendering Pov-Ray, 593.

[2] Andria Arisal, Wiwin Suwarningsih, and Nuryani. 2010.

IGNITER : Membangun Komputer Cluster Dengan Cepa”, Volume IV, Number 2, 95.

[3] Chokchai Leangsuksun, et al, Highly Reliable Linux HPC : Self Awareness Approach.

[4] Desy Lukitasari and Ahmad Fali Oklilas. 2010. Jurnal Generic, Analisis Perbandingan Load Balancing Web Server Tunggal Dengan Web Server Custer Menggunakan Linux Virtual Server, Volume 5, Number 2, 31.

[5] Dewi Frestyani Maya Putri, Singgih Jatmiko and Benny Mutiara. Perbandingan Kinerja Cluster OpenMosix dengan Disk dan Tanpa Disk, 866.

[6] Fani Fatullah, A.Benny Mutiara MQN and Chandra Yulianto.

2004. Analisa Kinerja Cluster Dengan Pustaka Mpich Terhadap Perkalian Matriks, 570.

[7] Heru Suhartanto. 2006. Kajian Perangkat Bantu Komputasi Parallel Pada Jaringan PC, Volume 10, Number 2, 72.

[8] John Shalf. 2007. The New Landscape Of Parallel Computer Architecture, Conference Series 78, 1.

[9] Pandriya Sistha and Ade Jamal.

2006. Membangun PC Cluster Berbasis Interkoneksi Statis

Menggunakan Topologi Ring dan Torus.

[10] Panduan Penggunaan Aplikasi Paralel Melalui in GRID Grid Portal, http://ww.povray.org/

[11] Prema S Desai and Deven M.Thakur. 2009. International Journal Of Trends In Engineering, Clustering Of Virtual Disk Design Of Clustered Servers For Storage Management, volume 1, Number 2, 267.

[12] Said Mirza Pahlevi. 2008.

Komputasi Grid Dan Paralel, 15.

[13] Seminar Kudang B, et al. 2006.

Uji Dan Aplikasi Komputasi Paralel Pada Jaringan Syaraf Probabilistik (PNN) Untuk Proses Klasifikasi Mutu Tomat, Jurnal Teknologi, 34.

[14] Tittel, Ed. 2004. Schaum’s Outline : Computer Networking, Erlangga.

[15] Wahana Komputer. 2011.

Administrasi Jaringan dengan Linux Ubuntu 11. Andi, 2011.

[16] Xinying Zheng and Yu Cai, International Journal Of Computer Networks (IJCN), Achieving Energy Proportionality In Server Clusters, Volume II, 23.

Gambar

Gambar 1. Arsitektur MPICH  Dalam  penelitian  ini  dapat  disimpulkan  bahwa  permasalahan  yang  dihadapi  adalah  penggunaan  resource  yang  tidak  optimal
Gambar 3. Topologi Load  Balancing Untuk Enterprise  Dari  gambar  4  dapat  dijelaskan  bahwa kegunaan cluster adalah untuk  membackup  akses  ke  webserver  secara  cepat  dana  membantu  node  didepannya,  sehingga  database  dan  juga  file  sharing  y

Referensi

Dokumen terkait

Peserta PPFI 2017 merupakan mahasiswa Farmasi aktif yang menempuh progrgram studi S1 di Perguruan Tinggi Negeri (PTN) maupun Perguruan Tinggi Swasta (PTS) di seluruh Indonesia

Menurut Marlinda (2004:1), sistem basis data adalah suatu sistem menyusun dan mengelola record-record menggunakan komputer untuk menyimpan atau

efektif sebesar (55,00%); 4) pemanfaatan laboratorium dalam pembelajaran dalam kategori cukup efektif sebesar (55,71%); 5) kendala yang dihadapi guru dalam

Tujuan: Tujuan penelitian ini yaitu untuk mengetahui efektifitas diet ikan gabus terhadap peningkatan albumin anak pada perawatan pasca pulang penderita nefrotik sindrom di RSUD

Bobot telur pada penelitian ini tidak berbeda nyata antara bobot telur itik yang menetas jantan dan betina artinya bobot telur tidak mempengaruhi jenis kelamin

Tarif atas jenis penerimaan negara bukan pajak dari penyelenggaraan jasa pendidikan Perguruan Tinggi Agama Negeri di lingkungan Departemen Agama yang meliputi:

Roti adalah produk makanan yang terbuat dari fermentasi tepung terigu dengan ragi atau bahan pengembang lain, kemudian dipanggang. Roti mempunyai berbagai macam jenis, salah

Pada MCNP diasumsikan estimator keff tidak bias, bila varian dari estimasi berkurang 1/n , dimana n jumlah siklus maka kombinasi tiga estimator akan efisien, dimana mempunyai