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