FS


PARALLEL COMPUTATION (Komputasi Paralel)
 
PARALLEL PROCESSING (Pemrosesan paralel) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.

Komputasi Paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.

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.

PARALLEL COMPUTATION (Komputasi Paralel) adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. 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. Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).

Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu: SIMD, SIMD, MISD, MIMD

Arsitektur Komputer Paralel :

·         Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.

·         Taksonomi dari 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. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program yang digunakan sama.

·         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.


Refensi :



FS


MEMBANGUN APLIKASI CLIENT - SERVER TCP SEDERHANA

Listing Program Simple Server

                   import java.io.*;
                        import java.net.*;
                        public class simpleServer {
                                    public final static int TESTPORT = 5000;
                                    public static void main(String args[]) {
                                        ServerSocket checkServer = null;
                                        String line;
                                        BufferedReader is = null;
                                        DataOutputStream os = null;
                                        Socket clientSocket = null;
                                            try {
                                                checkServer = new ServerSocket(TESTPORT);
                                                System.out.println("Aplikasi Server hidup ...");
                                            } catch (IOException e) {
                                                System.out.println(e);
                                            }
                                            try {
                                                clientSocket = checkServer.accept();
                                                is = new BufferedReader(new
                                                InputStreamReader(clientSocket.getInputStream()));
                                                os = new DataOutputStream(clientSocket.getOutputStream());
                                            } catch (Exception ei) {
                                                ei.printStackTrace();
                                            }
                                            try {
                                                line = is.readLine();
                                                System.out.println("Terima : " + line);
                                            if (line.compareTo("salam") == 0) {
                                                os.writeBytes("salam juga");
                                            } else {
                                                os.writeBytes("Maaf, saya tidak mengerti");
                                            }
                                            } catch (IOException e) {
                                                System.out.println(e);
                                            }
                                 
                                            try {
                                            os.close();
                                            is.close();
                                            clientSocket.close();
                                            } catch (IOException ic) {
                                            ic.printStackTrace();
                                            }
                                    }
                                }

FS


Get IP

LISTING PROGRAM

             import java.net.*;
             public class getIP {
                 public static void main(String args[]) throws Exception {
                     InetAddress host = null;
                     host = InetAddress.getLocalHost();
                     byte ip[] = host.getAddress();
                     for (int i=0; i<ip.length; i++) {
                         if (i > 0) {
                             System.out.print(".");
                         }
                         System.out.print(ip[i] & 0xff);
                     }
                 System.out.println();
                 }
             }


LOGIKA PROGRAM
Listing diatas berfungsi untuk memeriksa IP address yang dimiliki komputer kita. Pada awal nya menjelaskan variable host yang akan berfungsi untuk memanggil local host pada computer kita.

Dan program akan mencetak IP address akan digunakan array dan pengulangan yang memiliki kondisi apabila I lebih kecil dari panjang IP maka program akan terus dijalankan untuk mencetak IP.


OUTPUT PROGRAM


FS


IP to Name


LISTING PROGRAM




LOGIKA PROGRAM
Listing Program diatas berfungsi untuk menampilkan nama pengguna komputer dari alamat IP yang sudah diketahui. Pada awal program ini adalah pengecekkan apakah user saat melakukan running program telah memasukkan alamat IP / belum, jika belum memasukkanya maka akan muncul tampilan output perintah pengeksekusian yang benar yaitu "java IPtoName ".

Jika alamat IP yang dimasukkan berhasil , maka akan muncul tampilan output nama dari komputer tersebut dengan perintah getByName(host). Tetapi jika salah memasukkan alamat IP maka akan muncul tampilan output "invalid IP - malformed IP" .

OUTPUT PROGRAM


FS



NsLookup

LISTING PROGRAM


LOGIKA PROGRAM
Listing berikut ini berfungsi untuk mengecek IP address dari suatu computer dengan cara menginput host name dari computer tersebut. Setelah program dijalankan akan membaca kondisi apabila host name computer tidak diinputkan maka program akan berjalan ke bagian catch yaitu mencetak unknow host kemudian program akan keluar.

Dan yang terakhir apabila host name diinputkan maka program berjalan ke bagian try yaitu mengecek nama dari IP address yang sebelumnya sudah diinputkan.
Lalu akan mencetak IP address dan kemudian program selesai.


OUTPUT PROGRAM