7 Vol6No2Sep2013 Yudhi Arta
-
Upload
yudiwerdika -
Category
Documents
-
view
214 -
download
0
Transcript of 7 Vol6No2Sep2013 Yudhi Arta
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
1/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
55
ANALISA KINERJA PARALLEL COMPUTING DENGAN MENGGUNAKANPERHITUNGAN 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 Is lam Riau
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
2/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
56
PENDAHULUANPemrosesan paralel ( parallel
processing ) adalah penggunaan lebihdari satu CPU untuk menjalankansebuah program secara simultan.Idealnya, parallel processingmembuat program berjalan lebihcepat karena semakin banyak CPUyang digunakan. Tetapi dalampraktek, seringkali sulit membagiprogram sehingga dapat dieksekusioleh CPU yang berbeda-beda tanpaberkaitan di antaranya.
Komputasi paralel merupakansalah satu teknologi paling menarikyang penting sejak ditemukannya
komputer elektronik pada tahun 1940-an. Terobosan dalam pemrosesanparalel selalu berkembang danmendapatkan tempat disampingteknologi-teknologi lainnya sejak EraKebangkitan (1950-an), EraMainframe (1960-an), Era Minis(1970-an), Era PC (1980-an), dan EraKomputer Paralel (1990-an). Denganberbagai pengaruh atasperkembangan teknologi lainnya, danbagaimana teknologi ini mengubah
persepsi terhadap komputer, dapatdimengerti betapa pentingnyakomputasi paralel itu. Inti darikomputasi paralel yaitu hardware,software, dan aplikasinya.
Paralel Prosesing merupakansuatu pemrosesan informasi yanglebih mendekatkan pada manipulasirata-rata dari elemen data terhadapsatu atau lebih penyelesaian prosesdari sebuah masalah. Oleh karena itukomputasi paralel dapat diartikan
bahwa komputer dengan banyakprosesor yang mampu untukmelakukan paralel prosesing
PENDEKATAN PEMECAHANMASALAH
Komputasi paralel adalahsalah satu teknik melakukankomputasi secara bersamaan denganmemanfaatkan beberapa komputerindependen secara bersamaan.Biasanya digunakan untuk kapasitasyang pengolahan data yang sangat
besar (lingkungan industri,bioinformatika dan lain - lain) ataukarena tuntutan komputasi yangbanyak.
Komputer paralel adalahkomputer tunggal dengan beberapainternal prosesor atau beberapakomputer yang dihubungkan olehsuatu interconnection network (IN)Komputer paralel dapatdikelompokkan, berdasarkanpengorganisasian memorinya, kedalam dua arsitektur dasar yaitu:sistem memori bersama (sharedmemory ) dan sistem memori tersebar(distributed memory ). Dalam sistem
memori tersebar komunikasi antarproses menggunakan mekanismepertukaran pesan (message passing ).Program paralel dengan pertukaranpesan dapat ditulis menggunakansuatu bahasa pemrograman tingkattinggi (misalnya: fortran, C/C++), danmenyertakan (atau pemanggilan)suatu pustaka pertukaran pesan MPI(Message Passing Interface) atauPVM (Parallel Virtual Machine). Padapenelitian ini digunakan digunakan
pustaka MPI. Terdapat dua strukturprogram parallel : Single ProgramMultiple Data (SPMD) dan MultipleProgram Multiple Data (MPMD).Dalam struktur SPMD, hanya terdapatsatu sumber program dan setiapprosessor akan mengeksekusi salinandari program ini. Sedangkan dalamstruktur MPMD, terdapat beberapasumber program dan setiap prosessormegeksekusi program yang berbedaPemrograman parallel adalah teknik
pemrograman komputer yangmemungkinkan eksekusiperintah/operasi secara bersamaanbaik dalam komputer dengan satu(prosesor tunggal) ataupun banyak(prosesor ganda dengan mesinparalel) CPU. Tujuan utama daripemrograman paralel adalah untukmeningkatkan performa komputasi.Semakin banyak hal yang bisadilakukan secara bersamaan (dalamwaktu yang sama), semakin banyakpekerjaan yang bisa diselesaikan.
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
3/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
57
Komputasi paralel membutuhkandiantaranya algoritma, bahasapemrograman dan compiler .
PVMPVM adalah perangkat lunak yang
membuat sekumpulan komputermenjadi tampak seperti sebuahsistem komputer virtual yang besar.Sekumpulan komputer yang akanterlibat dalam proses penyelesaianmasalah harus didefinisikan trelebihdahulu, agar dapat menjalankanfungsinya. Komputer-komputer yangterlibat dalam komputasi bisahomogen, dengan platform yang
sama, maupun heterogen, dengan platform yang berbeda, asal di antaramereka bisa saling berkomunikasi.PVM dapat menangani semuapengiriman proses, konversi data danpenjadwalan task .
Sistem PVM terdiri dari duabagian. Bagian pertama adalahdaemon yang diberi nama pvmd.Pvmd diaktifkan di setiap komputeryang akan membentuk mesin virtual.Bagian kedua adalah pustaka rutin
antarmuka PVM yang berisi koleksiperintah-perintah primitif untukmengoperasikan proses-prosespustaka tersebut. Pustaka rutin inidigunakan dalam program aplikasiparalel yang ditulis dengan bahasapemrograman C, C++, atauFORTRAN 77. Aplikasi dalam bahasapemrograman C dan C++dihubungkan melalui pustakalibpvm3.lib, sedangkan aplikasi dalambahasa pemrograman FORTRAN 77
dapat mengambil rutin-rutin dalamlibfpvm3.lib [1].
PVM memberi fasilitas untukmembuat sejumlah proses yang tidaktergantung dari jumlah prosesor.Setiap proses diidentifikasimenggunakan kode (task ID) dandipetakan ke prosesor secaraotomatis, atau dapat juga diatur olehprogrammer. Program PVM umumnyadiatur dengan model master-slave,yaitu satu proses yang dieksekusipertama kali menjadi master dan
mengaktifkan semua client denganmemanggil pvm_spawn. Rutintersebut otomatis akan menjalankansemua proses dalam sistem PVM.Cara lain untuk menjalankan prosesadalah dengan memanggil rutinpvm_mytid yang mengembalikankode task ID dari proses tersebut.Sebelum keluar dari sistem PVM,semua proses client harus dimatikandari PVM dengan memanggil rutinpvm_exit.
Komunikasi antar proses di dalamsistem PVM dilakukan secaramessage passing menggunakanperintah rutin PVM seperti pvm_send
dan pvm_recv. Semua rutinpengiriman pesan dilakukan secaraasinkron, sedangkan semua rutinpenerimaan pesan dapat dilakukansecara sinkron maupun asinkron. Adatiga tahap dalam mengirim pesandalam PVM, yaitu :1. Menginisialisasi buffer
pengiriman dengan rutinpvm_initsend
2. Mengemas isi pesan ke dalambuffer dengan memanggil rutin
pvm_pk*. Data yang dikemasdapat bertipe byte, complex ,double, float, integer , dancharacter . Tipe tersebutdinyatakan dengan menggantitanda “*” dan memberi tipe yangsesuai untuk tiap parameter didalam rutin pvm_pk*. Misalnyadata yang akan dikemas bertipefloat , maka digunakan
pvm_pkfloat.3. Mengirim pesan ke prosesor
tujuan dengan memanggilpvm_send atau pvm_mcastProses yang menerima pesanharus membuka paket pesanpada buffer penerima sesuaidengan format pengirimanpesan.PVM juga menyediakan rutin
pvm_setopt untuk mengatur pilihandalam sistem PVM, sepertipencetakan pesan kesalahan secaraotomatis, tingkat pencarian kesalahan(debugging level), dan metode
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
4/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
58
pengaturan jalur komunikasi. Contohyang paling umum dari penggunaanpvm_setopt adalah memungkinkan jalur komunikasi langsung antar task dalam PVM. Pvm_setopt (PvmRoute,PvmRouteDirect). Dengan perintah iniotomatis bandwidth komunikasi didalam jaringan akan digandakan.
MPIMenurut Heru (2006), Dalam
implementasinya MPI menggunakanfungsi-fungsi pustaka yang dapatdipanggil dari program C, C++, atauFortran. Hampir sama dengan PVM,MPI juga portable untuk berbagai
arsitektur. Salah satu implementasiterbaru pada saat penulisan makalahini yang berjalan pada lingkunganWindows adalah MPICH.
Ditinjau dari sisi aplikasi, MPIhanya dapat digunakan denganmodel single program multiple data (SPMD), sedangkan PVM dapatdigunakan dengan model SPMDmaupun multiple program multipledata (MPMD). Model SPMD secarafisik ditunjukkan dengan program
master dan slave yang menyatu,sedangkan MPMD ditunjukkandengan program master dan slave yang terpisah, sehingga slave dapatmengerjakan tugas yang berbeda-beda antara satu node dengan nodelainnya.[1].
MPI adalah teknikpemrograman yang berdasarkan dataparallel dengan Single ProgramMultiple Data (SPMD). Maksudnyaadalah setiap proses mengeksekusi
program yang sama tetapimenggunakan data yang berbeda.Untuk sharing data, suatu prosessecara eksplisit mengirimkan datakepada proses penerima yang jugamenerima data secara eksplisit. MPIbukan merupakan bahasapemrograman baru, tetapi MPI adalahsubprogram library yang dapatdipanggil dari program C dan Fortran77. Ada dua implementasi MPI untukgrid: GridMPI yang dibuat olehNational Institute of Advanced
Industrial Science and Technology(AIST) [7] dan MPICH-G2 yang dibuatoleh Argonne National La boratory(ANL) [8]. GridMPI adalahimplementasi MPI untuk jarak antarkomputer sampai dengan 500 milyang terkoneksi dengan jaringanberkecepatan 1 sampai dengan 10Gbps sedangkan MPICH-G2 adalahimplementasi MPI denganmenggunakan Globus Toolkit (standarmiddleware komputasi grid) dalamlingkungan WAN.[2]
Abstraksi program aplikasi yangdibuat oleh user dinyatakan padalapisan API. Fungsi-fungsi pustaka
yang tersedia pada MPI dinyatakandalam header mpi.h. Pengaktifan MPIdimulai dengan menjalankan perintahMPI_Init(&argc, &argv); pada programutama, dilanjutkan denganmenentukan ranking dari tiap nodeyang menjalankan program aplikasidengan perintah MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);my_rank adalah bilangan bulat positif,bernilai nol berarti program berjalanpada komputer master, sebaliknya
bernilai tidak sama dengan nol berartiprogram berjalan pada komputerslave. MPI_COMM_WORLD adalahkonstanta yang telah terdefinisi untukmengendalikan proses-proses yangada pada saat MPI dimulai. Untukmengetahui jumlah prosesor (node)yang aktif digunakan perintahMPI_Comm_size(MPI_COMM_WORLD, &p).
Komunikasi dilakukan secaraberurutan dari lapisan teratas sampai
ke lapisan fisik, pada sisi penerimaberlaku sebaliknya, yaitu dari lapisanfisik ke atas. Misalnya ada perintahMPI_Send(message,strlen(message)+1, MPI_CHAR,dest,tag, MPI_COMM_WORLD); makapesan (message) sepanjangstrlen(message)+1 dan bertipekarakter (MPI_CHAR) dikirim keprosesor tujuan (dest). Pada lapisan ADI pesan tersebut diterima olehSend_handle yaitu pengendalipengiriman data pada lapisan ADI,
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
5/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
59
kemudian pada lapisan ChannelDevice paket tersebut diterimadengan pengendaliMPID_SendControl danMPID_SendChannel . Selanjutnya,pada lapisan low level device
komunikasi dilakukan dengan protocolyang tersedia. Misalnya MPICHberjalan pada Windows 2000, makaprotokol yang digunakan adalahTCP/IP. Pada sisi penerima, lapisankomunikasi atau channel deviceinterface memiliki pengendaliMPID_ControlMsgAvail danMPID_RecvAnyControl . Keduapengendali ini meneruskan paket ke
lapisan ADI. Pada lapisan ini, terdapatdua pengendali, yaitu:PostedRecv_Handles danUnexpectedRecv_Handles , masing-masing digunakan untuk mengetahuipengiriman paket yang terkirimdengan benar dan yang salah.Selanjutnya, pada lapisan aplikasi,data diterima dengan perintahMPI_Recv (message, len,MPI_CHAR, source, tag,MPI_COMM_WORLD, &status) dan
untuk mengakhiri MPI digunakanperintah MPI_Finalize.
Gambar 1. Arsitektur MPICH
Dalam penelitian ini dapatdisimpulkan bahwa permasalahanyang dihadapi adalah penggunaanresource yang tidak optimal.Metodologi yang dapat digunakanuntuk meningkatkan ketersediaansebuah server adalah denganmembuat sebuah load balancingcluster. Dengan adanya cluster server ini dapat mengatasi masalah yang
dihadapi atas ketergantungan yangdihadapi olen instansi itu sendiri.Dengan adanya resource tersebutmaka dapat dibangun sebuah cluster yang dapat membantu kinerja darisegi infrastruktur dan lainnya. Cluster
ini sendiri juga berfungsimeningkatkan kinerja dan jugaestabilitas kerja dari sistem itu sendiri.Uraian kerja akan dijelaskan di dalamkerangka kerja yang nantinyamenjelaskan prosedur maupunlangkah – langkah yang akn dihadapidalam membangun cluster server ini.
Tahap awal adalah menganalisa danmerancang apa – apa saja yang
dibutuhkan dalam pembangunancluster server ini. Lalu dilanjutkandengan pengujian beserta membuatlaporan hasil kinerja dari cluster tersebut dalam sebuah tabel.
Gambar 2. Kerangka KerjaPenelitian
HASIL DAN PEMBAHASANPada bagian pembahasan,
penulis akan menampilkan setiapartifak terkait dari setiap proses danaktivitas yang dilakukan pada setiapfase menurut metodologi DAD. Setiapfase memiliki tujuan aktivitas proses,dimana aktivitas proses tersebutmenghasilkan artifak ataudokumentasi aplikasi yang dibangun.Seperti yang disebutkan diatas, DADmembagi tahapan pengembangan
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
6/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
60
piranti lunak menjadi inception,construction dan transition.
Perancangan TopologiUntuk perancangan topologi
cluster hampir sama seperti dengantopologi grid computing . Dalam hal ini,cluster mempunyai satu master danbeberapa node / client / slave yangnantinya akan di-manage oleh mastercluster . Hampir keseluruhanperusahaan besar sudah menerapkancluster sejak awal komputasi merekadibangun.
Pada gambar 3 terdapattopologi yang digunakan oleh instansi
berskala enterprise untuk me-manage webserver yang merupakan jantungdari investasi mereka dalampersaingan di dunia maya. Jika kitaingin membangun parallel computing bagi coorporate, biasanya terdapatvendor - vendor yang bersediamembangunkan atau menyediakanfasilitas tersebut dengan biaya yangcukup relative tinggi. Beberapavendor diantaranya adalah IBM,Microsoft, Dell, dan vendor besar
lainnya.
Gambar 3. Topologi LoadBalancing Untuk Enterpr ise
Dari gambar 4 dapat dijelaskanbahwa kegunaan cluster adalah untukmembackup akses ke webserversecara cepat dana membantu node didepannya, sehingga database dan juga file sharing yang digunakan
dapat diakses dan dibantu olehcluster secara cepat.
Dari hasil rendering tersebut kitasudah mendapatkan nilai wakturender maupun alokasi penggunaanresource yang kita pakai saatrendering . Hasil tersebut dapat kitalihat pada gambar 4. :
Gambar 4. Hasil Timing DariRender ing
Dari beberapa hasil test nantikita akan membuat kesimpulan dannilainya akan kita ukur pada hukum Amdahl untuk mencari berapa nilaiserial yang terdapat pada CPU yangtidak bisa diganggu gugat. Untuk hasildari rendering tersebut, dapat kitasimpulkan hasil cluster tesebutkedalam tabel 1 berikut ini :
Tabel 1. Hasil Rendering Dengan 2Node
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
7/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
61
Hukum AmdahlSetelah didapat hasil dari
speedup yang telah kita uraikan diatas, maka kita perlu menentukannilai serial yang tidak berpengaruhterhadap parallel procesing . Nilai
serial berguna menentukan berapapersen proses yang tidak terpengaruhdari hasil parallel procesing baik darisegi hardware dan software. Adapunhukum amdahl nya adalah :
Sp = SpeedUp yang didapat
dengan P buah procesorf = Bagian dari program yangharus 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 = 10,58 f = 1 – 0,580,58 f = 0,42f = 0,42 / 0,58f = 0,72dijadikan persen :f = 0,72 *100%f = 72 %
KESIMPULANKesimpulan dari pengujian ini
adalah :
1. Keseluruhan cluster sudahbisa berjalan sesuai denganyang diinginkan.
2. Dengan hasil rendering tersebut kita mendapatkandata berapa speedup yangdibutuhkan untuk parallel procesing atau clustering .
3. Dari hasil testing 2 node atau3 node yang ada, kita sudahmendapatkan berapa persennilai serial yang terdapat
dalam parallel procesingmeskipun belum begitu validdikarenakan keterbatasanyang ada. Dengan adanyanilai serial, maka dapat kitasimpulkan masih terdapat nilaiyang cukup besar untukpemrosesan paralel yang tidakdapat diganggu gugat.
4. Nilai serial yang terdapat initerletak pada 2 lapisan yaitu :software dan hardware.
5. Untuk nilai serial dalamsoftware, terdapat beberapa
instruksi yang memang tidakterpengaruh terhadap proses
clustering atau parallel procesing . Bisa kita katakanseperti instruksi maupunalgoritma yang diterapkandidalam parallel procesing yang tidak dapat diganggugugat. Juga dalam sistemoperasi itu sendiri dalammelakukan cluster atau parallel procesing memiliki
keterbatasan untuk memberiinstruksi perintah yang
dijalankan.6. Untuk nilai serial dalam
hardware bisa dikatakanseperti keterbatasan ethernetcard , kabel yang digunakandan juga beberapa faktorlainnya.
7. Jika ingin mendapatkan hasilfraksial yang lebih signifikanatau lebih valid, maka dapatdibuktikan denganmembangun cluster dengan
10 node atau tambahanbeberapa node lagi.
8. Untuk membuktikan prosesserial yang tidak bisa diganggugugat dapat kita buktikandengan membuka kodinguntuk proses cluster yangmana saja yang dianggapserial dan dapat dianalisa lebihlanjut.
-
8/15/2019 7 Vol6No2Sep2013 Yudhi Arta
8/8
JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : 2086 – 4981
VOL. 6 NO. 2 September 2013
62
DAFTAR PUSTAKA[1] Anton Dwi Laksono, A.Benny
Mutiara MQN and BrahmantyoHeruseto. 2004. AnalisisPerbandingan Antara ClusterOpenmosix Dengan MpiTerhadap Aplikasi RenderingPov-Ray , 593.
[2] Andria Arisal, WiwinSuwarningsih, and Nuryani. 2010.IGNITER : Membangun KomputerCluster Dengan Cepa”, VolumeIV, Number 2, 95.
[3] Chokchai Leangsuksun, et al,
Highly Reliable Linux HPC : Self Awareness Approach.
[4] Desy Lukitasari and Ahmad FaliOklilas. 2010. Jurnal Generic, Analisis Perbandingan LoadBalancing Web Server TunggalDengan Web Server CusterMenggunakan Linux VirtualServer , Volume 5, Number 2, 31.
[5] Dewi Frestyani Maya Putri,
Singgih Jatmiko and BennyMutiara. Perbandingan KinerjaCluster OpenMosix dengan Diskdan Tanpa Disk , 866.
[6] Fani Fatullah, A.Benny MutiaraMQN and Chandra Yulianto.2004. Analisa Kinerja ClusterDengan Pustaka Mpich TerhadapPerkalian Matriks, 570.
[7] Heru Suhartanto. 2006. Kajian
Perangkat Bantu KomputasiParallel Pada Jaringan PC ,Volume 10, Number 2, 72.
[8] John Shalf. 2007. The NewLandscape Of Parallel Computer Architecture, Conference Series78, 1.
[9] Pandriya Sistha and Ade Jamal.2006. Membangun PC ClusterBerbasis Interkoneksi Statis
Menggunakan Topologi Ring danTorus.
[10] Panduan Penggunaan AplikasiParalel Melalui in GRID GridPortal, http://ww.povray.org/
[11] Prema S Desai and DevenM.Thakur. 2009. InternationalJournal Of Trends In Engineering,Clustering Of Virtual Disk DesignOf Clustered Servers For StorageManagement , volume 1, Number2, 267.
[12] Said Mirza Pahlevi. 2008.
Komputasi Grid Dan Paralel , 15.
[13] Seminar Kudang B, et al. 2006.Uji Dan Aplikasi KomputasiParalel Pada Jaringan SyarafProbabilistik (PNN) Untuk ProsesKlasifikasi Mutu Tomat , JurnalTeknologi, 34.
[14] Tittel, Ed. 2004. Schaum’sOutline : Computer Networking ,Erlangga.
[15] Wahana Komputer. 2011. Administrasi Jaringan denganLinux Ubuntu 11. Andi, 2011.
[16] Xinying Zheng and Yu Cai,International Journal Of ComputerNetworks (IJCN), AchievingEnergy Proportionality In ServerClusters, Volume II, 23.
http://ww.povray.org/http://ww.povray.org/http://ww.povray.org/http://ww.povray.org/