Rabu, 30 Maret 2011

Kinerja Komputasi dengan Paralel Processing


         Pemrosesan parallel (parallel processing) adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara 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. Sebagian 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. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel .
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.
Paralel prosessing komputasi adalah proses atau pekerjaan komputasi di komputer dengan memakai suatu bahasa pemrograman yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel diperlukan untuk meningkatkan kecepatan komputasi bila dibandingkan dengan pemakaian komputasi pada komputer tunggal. Penggunaan komputasi parallel prosessing merupakan pilihan yang cukup handal untuk saat ini untuk pengolahan data yang besar dan banyak.
Aspek keamanan merupakan suatu aspek penting dalam sistem parallel prosessing komputasi ini, karena didalam sistem akan banyak berkaitan dengan akses data, hak pengguna, keamanan data, keamanan jaringan terhadap peyerangan sesorang atau bahkan virus sehingga akan menghambat kinerja dari system komputasi ini. Didalam makalah ini akan memamparkan bagaimana sistem komputasi parallel ini pada  suatu PC Cluster sehingga menjadi suatu sistem komputasi yang aman sehingga dapat meningkatkan performa dari komputasi.
Implementasi untuk parallel komputasi ini telah dilakukan di lab dengan PC Clutster  dengan menggunakan 1 buah master node dan 7 buah slave node, dimana system yang digunakan adalah diskless dengan menggunakan switch hub 1Gbps sebagai konsentrator dan dengan menerapkan aspek keamanan.

Parallel Komputasi

Parallel komputasi adalah melakukan perhitungan komputasi dengan menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan. Untuk proses pembagian proses komputasi tersebut dilakukan oleh suatu software yang betugas untuk mengatur komputasi dalam hal makalah ini akan digunakan Message Parsing Interface (MPI).
Berikut ini adalah gambar perbedaan antara komputasi tunggal dengan parallel komputasi :


a)      komputasi tunggal/serial


b)      komputasi parallel
Gambar 1. Perbandingan antara serial komputasi dan parallel komputasi

PC Cluster

PC Cluster adalah sebuah sistem komputer yang terdiri dari beberapa PC (Personal Computer) yang dikoneksi dalam satu jaringan untuk melakukan sebuah pekerjaan komputasi ataupun simulasi secara bersama-sama. Setiap PC menjadi satu unit prosesor dengan masing-masing memiliki memori dari sebuah mesin komputasi paralel.
Pada sistem komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini komputer paralel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
   Pada jaringan komputer ada istilah yang biasa digunakan dalam merancang jaringan interkoneksi statis. Istilah pertama adalah topology, yaitu tipe struktur interkoneksi jaringan komputer. Network topology yang umum dikenal adalah linear, ring, 2D/3D-mesh, torus, cube dan star topology.
Selain itu ada istilah yang digunakan sebagai parameter jaringan interkoneksi statis seperti istilah connectivity, yaitu jumlah terkecil sambungan yang harus diputus untuk membagi jaringan menjadi dua buah jaringan yang terpisah; dan istilah diameter, yaitu jumlah sambungan yang harus dilalui oleh sebuah data yang dikirim ke unit prosesor terjauh melalui jalan terpendeknya (the shortest path).

Topologi Ring

Dimana topologi ring ini berbentuk lingkaran, dimana satu komputer dengan computer lain akan terhubung secara berantai sehingga terbentuk suatu ring yang yang besar. Dimana ring node topologi connectivity = 2 dan Diamenter = n/2 jika genap dan (n-1)/2 bila n ganjil.
Dua buah fungsi jaringan harus terpenuhi agar mesin PC Cluster dapat menjalankan tugas komputasi paralelnya, yaitu komunikasi dan remote access antar unit prosesor.
Fungsi komunikasi antar unit prosesor mutlak diperlukan karena pada sistem paralel dengan memori terdistribusi, perpindahan data (message passing) antar unit prosesor merupakan hal multak yang tak terpisahkan. Fungsi ini terpenuhi dengan mengintegrasikan unit-unit prosesor melalui Gigabit Ethernet Card dan Ethernet Cable.
Jika pada interkoneksi dinamis setiap unit menggunakan satu ethernet card dengan straight cable terkoneksi ke sebuah 1000Mbit/s switch, maka pada interkoneksi statis diperlukan dua ethernet card untuk linear topology maupun ring, empat ethernet card untuk 2-D mesh topology maupun torus. Untuk interkoneksi statis, kabel ethernet disambung secara cross.
Fungsi komunikasi dengan menggunakan switch jauh lebih mudah dimplementasikan, karena switch berfungsi sebagai router dari komunikasi jaringannya. Untuk interkoneksi statis, karena koneksi jaringan adalah peer to peer, maka untuk komunikasi jaringan dari satu unit ke unit yang lain yang tidak berhubungan langsung (peer to peer) harus dilakukan routing secara eksplisit pada sistem jaringannya, yaitu dengan menggunakan fungsi gateway dan bridging.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.

Network File System (NFS)

Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File System (NFS), NFS adalah  protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin, jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC.
NFS memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote host seperti mengakses file yang berada di lokal. Protokol yang digunakan protokol mount menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu direktori, protokol NFS melakukan I/O pada remote file system.
Protokol mount dan protokol NFS bekerja dengan menggunakan RPC dan mengirim dengan protokol TCP dan UDP.
Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan sharing data sehingga setiap node slave dapat mengakses program yang sama pada node master.
Gambar 2. Network File System

Secure Shell (SSH)

Secure shell (SSH) adalah protokol standar yang membentuk jalur yang aman pada komunikasi antar komputer. SSH menggunakan teknik enkripsi public key pada sistem authentikasi pengguna untuk mengakses komputer yang lain. SSH memberikan sistem enkripsi pada jalur yang digunakan, sehingga memberikan tingkat keamanan data yang tinggi. SSH biasa digunakan untuk melakukan remote login dan menjalankan perintah pada komputer remote, tetapi SSH juga dapat digunakan sebagai tunnel jaringan, melakukan penerusan pada port TCP, dan koneksi X11. Selain itu dapat juga digunakan untuk mentransfer suatu file dengan protokol SFTP atau SCP. SSH server bekerja pada port 22.

Trivial File Transfer Protocol (TFTP) Server

TFTP merupakan standar protokol dengan STD nomer 33. Dijelaskan pada RFC 1350 – The TFTP Protocol. Dan diupdate pada RFC 1785, 2347, 2348, dan 2349.
Transfer TFTP adalah transfer file antar disk (disk-to-disk), dengan menggunakan API SENDFILE. TFTP menggunakan protokol UDP. TFTP client melakukan inisialisasi dengan mengirim permintaan untuk read/write melalui port 69, kemudian server dan client melakukan negosiasi tentang port yang akan digunakan untuk melakukan transfer file.

 Dynamic Host Configuration Protocol (DHCP) Server

DHCP memberikan framework untuk disampaikan kepada client yang berisikan informasi tentang konfigurasi jaringan. DHCP bekerja berdasarkan protokol BOOTP, dimana ditambahkan fungsi untuk mengalokasikan penggunaan IP address dan konfigurasi jaringan lainnya.
Spesifikasi DHCP dapat dilihat pada RFC 2131 – Dynamic Host Configuration Protocol, dan RFC 2132 – DHCP options and BOOTP vendor extension.DHCP melakukan transaksi dengan melihat pada jenis pesan yang dikirimkan.
Rancangan PC Cluster ini meliputi pemilihan topologi, pemilihan sistem diskless dengan memanfaatkan BOOTROM pada Ethernet, pemilihan dan installasi Sistem Operasi (OS) yang dipergunakan, pemilihan hardware network, pemilihan dan installasi compiler program dan setting terhadap keamanan system yang ada terutama pada system operasi Linux.

Instalasi Sistem Operasi

Sistem operasi yang dapat digunakan untuk cluster dapat bervariasi, mulai dari Linux, FreeBSD, Sun OS dll. Pada rancangan ini hanya dijelaskan pembangunan cluster dengan menggunakan satu operating sistem, yaitu SuSE ESLES versi 9. Install Linux SuSE ESLES  dengan opsi installasi minimum sebagai berikut:
- Programming
- Network

Pemilihan Topologi Jaringan

Berbagai topologi dapat digunakan dalam pembangunan komputer cluster. Topologi cube dan hypercube dapat digunakan untuk membangun komputer cluster 4 dan 8 komputer dengan tanpa menggunakan switch hub. Pada topologi hypercube tiap komputer memerlukan minimal 2 network card, sedang untuk topologi hypercube, tiap komputer memerlukan minimal 3 network card. Salah satu komputer dari topologi tersebut perlu mempunyai network card tambahan untuk koneksi jaringan komputer cluster dengan jaringan di luar.
Untuk perancangan ini kita menggunakan topologi hub maka otomatis topologinya menjadi hubungan peer-to-peer, dimana tiap komputer terhubung interkoneksi satu sama lain. Dalam hubungan dengan menggunakan switch hub, setiap komputer hanya perlu satu network card. Penggunaan switch hub dapat meningkatkan performansi dari cluster karena tiap-tiap komputer terhubung langsung satu sama lain (jarak koneksi = 1). Jarak koneksi terjauh dari topologi cube adalah 2, sedang untuk topologi hypercube adalah 3.


Gambar 3. Topologi hub (peer to peer)

Setting  Node Master

Setelah komputer terkoneksi dalam jaringan, langkah berikutnya adalah membangun hubungan jaringan, sehingga memungkinkan setiap komputer pendukung cluster dapat berkomunikasi data satu sama lain. Pada sistem PC Cluster ini akan digunakan sistem diskless sehingga kita hanya cukup melakukan installasi OS terhadap 1 server yang bertindak sebagai master node, dimana pada master node ini berfungsi sebagai :
1.  DHCP server dengan options support PXEBOOT
2. TFTP server berfungsi untuk melakukan transfer file antara disk – to – disk untuk melakukan booting PXEBOOT
3. NFS server untuk melakukan sharing data terhadap node slave
4. FTP server sebagai file transfer memindahkan data
5. Installasi  PGI CDK untuk aplikasi parallel komputasi
6. Lakukan compilasi kernel bila diperlukan

 Setting Node Slave

Selain node master ada juga yang disebut sebagai node slave, dimana node slave ini berfungsi node yang melakukan parallel komputasi. Pada node slave ini tidak memerlukan hardisk, tetapi menggunakan diskless dimana booting terhadap OS dilakukan melalui jaringan yang diambil dari node master.
Komputer pada node slave ini minimal harus memiliki 1 ethernet card yang support melakukan PXEBOOT, sehingga dapat melakukan booting melalui jaringan.
Kesimpulan dari tulisan ini adalah sebagai berikut :
  1. Parallel Komputasi dengan menggunakan PC Cluster merupakan salah satu solusi untuk melakukan komputasi dalam jumlah yang besar, sehingga perlu dilakukan management sistem keamanan yang ada pada PC Cluster tersebut.
  2. Keamanan Sistem merupakan hal yang terpenting didalam melakukan parallel komputasi terutama dengan menggunakan PC Cluster, sehingga pengaturan untuk akses data, hak re/write dilakukan pengaturan.
  3. Solusi PC Cluster dengan menggunakan diskless merupakan salah satu solusi untuk yang aman dalam melakukan parallel komputasi, karena semua data tersimpan pada server master node yang system keamanannya sangat terjaga dan terlindung.

Senin, 07 Maret 2011

All About Modern Computation (Komputasi Modern)

          Sebenarnya saya kurang begitu paham mengenai Komputasi Modern, namun disini saya hanya berusaha untuk menguraikan sedikit tentang komputasi modern di zaman teknologi yang canggih ini.


Definisi dan Pengertian

          Komputasi modern merupakan satu kesatuan arti yang terdiri dari dua kata penyusun, yaitu kata komputasi dan modern. Komputasi merupakan sebuah cara untuk menemukan pemecahan dari sebuah permasalahan input data dengan menggunakan algoritma. Pada zaman dahulu, komputasi dan perhitungan data dan angka masih menggunakan alat tulis biasa, kertas kosong, atau dikerjakan dengan menggunakan tabel. Komputasi yang disebut modern adalah komputasi yang menggunakan peralatan canggih dan tepat saat menyelesaian perhitungan data. 

           Dri penjabaran di atas saya dapat simpulkan bahwa Komputasi Modern merupakan sebuah cara perhitungan data yang menggunakan peralatan canggih seperti komputer dan sebagainya dimana tersimpan sejumlah algoritma di dalamnya yang dapat berfungsi untuk memecahkan dan menyelesaikan permasalahan perhitungan yang lebih efisien dan efektif.Masalah perhitungan yang sering kita temui diantaranya adalah sebagai berikut :

  1. Kecepatan Gelombang Fisika (dalam satuan Hz)
  2. Teori Kompleksitas Big O
  3. Permasalahan perhitungan volume Hambatan listrik secara paralel

Sejarah Perkembangan

        Tanpa kita sadari, Komputasi sebenarnya telah dapat kita lakukan sejak dahulu. Perhitungan komputasi sederhana seperti menambahkan, mengalikan dan mengurangi data adalah kegiatan sehari-hari yang kita lakukan di sekolah maupun perkuliahan. Zaman dahulu, manusia purba seperti Pithecantropus Erectus, Meganthropus Paleo Javanicus, hingga Homo Sapiens telah pandai melakukan perhitungan sederhana untuk sistem jual beli tanpa menggunakan uang (barter atau pertukaran barang). Perhitungan hebat dari zaman dahulu yang masih sering kita gunakan seperti :

  • Sistem perhitungan kalender Masehi
  • Kalender Islam (Hijriah)
  • Rasi bintang zaman romawi
         Pada pertengahan abad 20, banyak kebutuhan komputasi ilmiah bertemu dengan diiringi perkembangan komputer analog yang menggunakan mekanis atau listrik langsung model masalah sebagai dasar perhitungan. Namun komputer ini tidak dapat  diatur secara program dan umumnya tidak memiliki fleksibilitas dan keakuratan komputer digital modern. 


          George stibitz secara internasional diakui sebagai ayah dari komputer digital modern. Goerge bekerja di laboratorium bel di November 1937, beliau menciptakan dan membangun sebuah relay berbasis kalkulator yang dijuluki sebagai "model k" (untuk "meja dapur", di mana ia telah berkumpul). Goerge adalah orang pertama yang menggunakan sirkuit biner untuk melakukan operasi aritmatika. Kemudian ia menambahkan model kecanggihan yang lebih besar termasuk aritmatika dan kemampuan pemrograman kompleks.




         Tokoh lain yang sangat mempengaruhi perkembangan komputasi modern adalah John von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann telah menjadi ilmuwan besar abad 21. Von Neumann memberikan berbagai sumbangan ilmu pengetahuan dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya . Beliau  merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.


Model Komputasi Modern

Komputasi memiliki 3 model, yaitu :
  1. Mesin Mealy
  2. Mesin Moore
  3. Petri net
Mesin Mealy


Diagram Fase Sederhana dari Mesin Mealy

          Mesin Mealy adalah otomasi fasa berhingga (finite state automaton atau finite state tranducer) yang menghasilkan keluaran berdasarkan fasa saat itu dan bagian masukan/input. Dalam hal ini, diagram fasa (state diagram) dari mesin Mealy memiliki sinyal masukan dan sinyal keluaran untuk tiap transisi. Prinsip ini berbeda dengan mesin Moore yang hanya menghasilkan keluaran/output pada tiap fasa.

         Nama Mealy diambil dari “G. H. Mealy” seorang perintis mesin-fasa (state-machine) yang menulis karangan “A Method for Synthesizing Sequential Circuits” pada tahun 1955.

Mesin Moore

 Diagram Fase Sederhana dari Mesin Moore

          Mesin Moore adalah otomasi fasa berhingga (finite state automaton) di mana keluarannya ditentukan hanya oleh fasa saat itu (dan tidak terpengaruh oleh bagian masukan/input). Diagram fasa (state diagram) dari mesin Moore memiliki sinyal keluaran untuk masing-masing fasa. Hal ini berbeda dengan mesin Mealy yang mempunyai keluaran untuk tiap transisi.

        Nama Moore diambil dari “Edward F. Moore” seorang ilmuwan komputer dan perintis mesin-fasa (state-machine) yang menulis karangan “Gedanken-experiments on Sequential Machines”.

Petri net


Contoh Animasi Petri net Otodidak

           Petri net adalah salah satu model untuk merepresentasikan sistem terdistribusi diskret. Sebagai sebuah model, Petri net merupakan grafik 2 arah yang terdiri dari place, transition, dan tanda panah yang menghubungkan keduanya. Di samping itu, untuk merepresentasikan keadaan sistem, token diletakkan pada place tertentu. Ketika sebuah transition terpantik, token akan bertransisi sesuai tanda panah.

Contoh Penggunaan dalam Dunia Kedokteran

         Contoh penggunaan komputasi modern dalam bidang kedokteran adalah USG Scan.
Untuk meramalkan aktivitas dari janin atau calon bayi, seorang praktisi komputasi meniru suasana pengujian aktivitasnya di laboratorium basah dengan model-model Fisika atau Matematika (seperti: struktur 3 dimensi bagian rahim seorang ibu) sebagai pengganti rahim sesungguhnya pada laboratorium tersebut. Model-model ini kemudian dinyatakan di dalam persamaan-persamaan Matematika yang kemudian diselesaikan oleh komputer dengan kapasitas dan kelajuan yang melebihi kapasitas dan kelajuan manusia. Berikut ini merupakan contoh USG Scan terbaru dan terkecil yang saya dapat dari perkembangan teknologi yang semakin pesat.

 USG Scanner Terkecil Sebesar Handphone

 

         Kemajuan teknologi Kedokteran terus berkembang, General Electric (GE), mengumumkan sebuah produk Baru yang sangat membantu, dalam memberikan diagnosa cepat dalam pertolongan kepada pasien. Vscan adalah produk baru, merupakan USG Scanner terkecil, ukurannya tidak lebih dari sebuah Handphone. Diharapkan Produk ini dapat menekan biaya pemeriksaan Scanner, selama ini ukuran USG Scanner cukup besar dan hanya ada di Rumah Sakit, Klinik.  

       "Ini tentang ukuran yang sama seperti BlackBerry," kata Immelt, sambil mengangkat perangkat putih yang tampaknya lipat di tengah seperti flip-telepon. Bagian atas menunjukkan perangkat gambar USG (informasi dari hati pasien,), sedangkan bagian bawah fungsi tombol kontrol.   

          Kemajuan teknologi Kesehatan ini diharapkan akan membantuk diagnosis cepat dan akurat, sehingga pertolongan terhadap pasien dapat dilakukan dengan baik. Selama ini, pemeriksaan Scan hanya dapat dilakukan di Rumah Sakit, pada banyak kasus, pertolongan yang dilakukan menjadi terlambat. Pasien tidak dapat diselamatkan. 

        Harga USG Scan model lama sangatlah mahal, berkorelasi positif terhadap mahalnya bisaya USG Scan di rumah sakit, tidak semua pasien memiliki kemampuan ekonomi yang baik. Semoga dengan hadirnya Vscan ini akan membuat biaya layanan kesehatan menjadi lebih murah

Sumber :
  1. http://id.wikipedia.org/wiki/Mesin_Mealy
  2. http://id.wikipedia.org/wiki/Mesin_Moore
  3. http://id.wikipedia.org/wiki/Petri_net
  4. http://visilubai.files.wordpress.com/2010/06/220px-8-cell.gif
  5. http://www.komputasi.lipi.go.id/utama.cgi?cetakartikel&1111718762
  6. http://www.scribd.com/doc/24593215/SEJARAH-KOMPUTASI