Konfigurasi Cluster

Berikut adalah beberapa cara membangun sebuah cluster, yaitu:

  1. Menggunakan Jaringan yang sudah ada

Cara ini adalah cara yang umum digunakan pada institusi-institusi pendidikan. Hal tersebut disebabkan karena setiap institusi pendidikan dapat memanfaatkan jaringan computer yang telah mereka miliki, misalnya, sebuah laboratorium computer. Laboratorium computer yang telah terhubung satu sama lain sehingga membentuk jaringan computer telah memiliki Alamat IP sebagai sarana komunikasi antara computer.

Struktur Software Message-Passing yang menggunakan PVM (Parallel Virtual Machine) akan membantu dalam membuat jaringan computer sebagai cluster Parallel. PVM disini dirancang agar jaringan yang heterogen (memiliki OS Windows dan/atau Unix) dapat saling berkomunikasi satu sama lain dengan distribsi tunggal prosessor parallel.

1Untitled

  1. Berpindah ke computer yang didedikasikan untuk Cluster

Cluster yang terdedikasi tersebut dapat dengan mudah di-UPGRADE. Hal ini disebabkan karena komputer yang membentuk sebuah cluster tidak membutuhkan sebuah monitor ataupun keyboard dan dihubungkan dengan jaringan computer seperti pada laboratorium. Komputer di luar kelompok cluster dapat bergabung dengan cluster terdedikasi walaupun jarak keduanya berjauhan.

Untitled

3.  Beowulf Cluster

Proyek ini dimulai di NASA Goddard Space Flight Centre (1993). Cluster ini merupakan hasil dari penelitian pada Proyek Beowulf (Sterling, 2002a dan 2002b). Proyek ini berfokus pada pembuatan Cluster yang MURAH dengan menggunakan komponen2 MURAH yang sudah tersedia (dipasaran / disekitarnya). Berikut penyusun Beowulf Cluster,

  • Sistem Mikroprosessor off-the-shelf (disusun di rak).
  • Sistem Operasi LINUX yang sudah tersedia.
  • Dikoneksikan dengan Interkoneksi yang MURAH (Ehernet).
  • Perangkat Lunak (Software) yang digunakan merupakan Software buatan sendiri untuk memperolh kinerja terbaik.

4.  Cluster dengan banyak Interkoneksi

Proyek Beowulf dan proyek2 lainnya dieksplorasi menggunakan Interkoneksi MultiParalel demi mngurangi Komunikasi yang Berlebihan.Cluster2 dapat diatur menggunakan banyak kartu Ethernet / kartu Jaringan dengan jenis yang berbeda. Perlu diketahui, Proyek Beowulf yang asli menggunakan dua Ethernet regular per computer dan teknik “Channel Bonding” – Menghubungkan beberapa Interface Fisik dengan sebuah Virtual Channel tunggal.

Berikut adalah Gambar Struktur sebuah Jaringan yang dengan jelas mampu mengurangi TABRAKAN (dalam pengiriman informasi – komunikasi), tetapi waktu pengiriman data dan Latency tetap ada.

3Untitled

5.  Cluster Symmetrical Multiprocessor (SMP)

Istilah SMP menggambarkan multiprosesor (memori terdistribusi) yang memiliki suatu simetri di antara prosesornya dan modul2 memori. Seringkalo Message Passing, tela diseragamkan. Ketika suatu pesan dilewatkan di antara prosesor2 dalam sebuah computer SMP, penerapannya bisa menggunakan lokasi memori terdistribusi untuk menangani pesan2 sehingga komunikasi akan berlangsung lebih cepat.

2Untitled

6.   Web Cluster /Metacomputing / Grid Computing

Adanya Web / jaringan internet yang menghubungkan antara komputer2 pada sebuah situs memungkinkan untuk dibentuk sebuah computer Parallel.

berikut ini contoh Beberapa kluster/grid computing yang ada di Indonesia adalah:

Referensi :

Parallel Programming – Teknik dan Aplikasi Menggunakan Jaringan Workstation …By Barry Wilkinson & Michael Allen

https://anisahicha.wordpress.com/2014/06/16/grid-computing/

Beberapa Istilah dari Programming JAVA

Polimorfisme : Hasil Beda, Cara (Metoda) Sama, Kelas Beda (tentu saja).

Overloading : Metode SAMA, Parameter (Argument) Beda, Kelas SAMA. Tujuan: memudahkan penggunaan method dengan fungsi yang hampir

public void tambah1(){
int a=5, b=10;
System.out.println(“Hasil Pertambahann dari metod tambah1 ke-1 = “+(a+b));
}

public void tambah1(int x, int y){
System.out.println(“Hasil Pertambahann dari metod tambah1 ke-2 = “+(x+y));
}

Overriding : Metode dan Parameter (argument) SAMA, Hasil Beda (Output/nilai return), Kelas BEDA dan secara Inheritance.

Contoh:

class Nama{
public void Sapa(){
System.out.println(“Achmad Cahya Aditya”);
}

class Siapa extends Nama{
public void Sapa(){
System.out.println(“Yesica Dwi Lestari”);
}
}

993754_747172568670237_699908652177029302_n

Make a new variable from Wolf() type

Polymorphism

Contoh dari Polimorfisme

Abstract Class and Method

Abtract Class berfungsi untuk memisahkan antara sub-class dan kelas di atasnya, karena kelas yang berada di atas sub-class (class terakhir dari pohon turunan) tidak diinginkan untuk membuat objek baru (new object) dari tipe kelas abstrak tersebut. Abstract class adalah jenis class yang berada sebelum class concrete.

Abstract class is NO USE, NO VALUE, NO PURPOSE IN LIFE, hanya sebagai class yang mewakili kelas-kelas yang dibawahnya (read: sub-class).

Abtract class bertugas sebagai tempat variable dan method sub-classnya.

Sebuah Abstract Class berarti Class tersebut harus di Extends (have Inheritance).

Sebuah Abstract Method berarti Method tersebut harus di Override.

Abstract Method TIDAK BOLEH berada di Concrete Class. But, Concrete Method BOLEH berada di Abtract Class.

Sebuah Abstract Class tidak memiliki “BADAN”, sehingga class-nya diakhiri dengan tanda TITIK-KOMA (“ ; “) tanpa KURUNG-KERITING (“{}”)

993754_747172568670237_699908652177s029302_n

Contoh kode abstract Class.

Concrete Class and Method

Concrete class ialah class paling ujung di setiap cabang sebuah pohon turunan.

Concrete Class and Method dapat dimodifikasi dari kelas di atasnya (Abstract Class).

Untitled

Object Class

Kelas Objek adalah kelas yang paling ATAS dari semua kelas yang berada di Pohon Turunan Kelas (Inheritance). Kelas Objek ini biasa disebut dengan SUPER-CLASS.

Setiap Class, pada dasarnya, merupakan Extends dari Object Class, tapi compiler telah secara otomatis mengenalinya tanpa kita menuliskan “…Extends Object”.

ArrayList<Class>

ArrayList adalah kelas yang menyimpan suatu Daftar Array (ArrayList) berdasarkan Kelas yang ditulis dalam kurung-siku (“< >”).

Contoh. Ketika kita menulis,

ArrayList<anjing>  DaftarAnjing = new ArrayList<anjing>;

anjing heli = new anjing(); //Membuat anjing (Object) baru yang bernama heli.

DaftarAnjing.add(heli); //add adalah method dari Kelas ArrayList<>.

anjing doggy = DaftarAnjing.get(0); // menyimpan variable dan method yang berada pada Object heli ke Object doggy dengan tipe anjing.

Lalu, bagaimana kalau kita menulis ArrayList<Object> (objej anjing diganti dengan objek Object).

Contoh. Ketika kita menulis,

ArrayList<Object>  DaftarAnjing = new ArrayList<Object>;

anjing heli = new anjing(); //Membuat anjing (Object) baru yang bernama heli.

DaftarAnjing.add(heli); //add (menambahkan ke ArrayList) adalah method dari Kelas ArrayList< >.

anjing doggy = DaftarAnjing.get(0); // menyimpan variable dan method yang berada pada Object heli ke Object doggy dengan tipe anjing. Tapi, kali ini COMPILER tidak akan meng-COMPILE barisan kode ini.

Alasan compiler tidak meng-Compile code terakhir ialah, karena OUTPUT dari ArrayList<Object> berbentuk / berTIPE Object, bukan tipe anjing. Karena itulah, Compiler akan Error saat meng-Compilenya.

Berikut adalah ilustrasi dari ArrayList<Object>,

Untitlsed

Ilustrasi: Object Bola, Ikan, Gitar, dan Mobil ditambahkan ke ArrayList<Object> (ArrayList yang menyimpan objek yang bertipe Object).

Saat kita memanggil / mengeluarkan Object yang berada di dalam ArrayList<Object>, maka Object yang keluar adalah objek yang bertipe Object, bukan lagi bertipe Bola, Ikan, Gitar, maupun Mobil. Hal ini disebabkan karena Compiler tidak Membedakan “KELUARAN” dari ArrayList<Object>.

Komputer Paralel

Pada postingan kali ini, dipaparkan tentang pengenalan komputer paralel (pengertian, manfaat, jenis-jenis, dll). Semoga dapat bermanfaat…

1.1 Kebutuhan akan Kecepatan Komputasi

Beberapa alasan para peneliti dan ilmuwan membutuhkan Komputer Paralel :

  1. Menghitung Operasi Numerik masalah2 ilmiah dan teknik.
  2. MemperSINGKAT waktu pengolahan data2 Numerik repetitive untuk memperoleh hasil yang valid.
  3. Komputer Tunggal saat ini memerlukan waktu yang lama untuk menyelesaikan masalah2 ilmiah dan teknik secara numeric.

Contoh masalah-masalah yang membutuhkan Komputer Paralel dengan tenggat waktu yang SINGKAT :

  1. Peramalan Cuaca
  2. Biologi : Pemodelan DNA, Pemodelan system Biologi pada Level Molekul.
  3. Peramalan Gerak benda Astronomis di Ruang angkasa,
  4. Web Server yang Harus melayani Ribuan REQUEST per jam dari beberapa Client/User.

Pemrograman Paralel : Suatu Program dibagi menjadi beberapa bagian yang selanjutnya diproses / diolah oleh beberapa prosesor/computer terpisah secara PARALEL.

Komputer Paralel : Platform computer yg digunakan

Cluster : Komputer yang saling terhubung (Komputer multiProsesor) untuk menyelesaikan problem yang kompleks.

Komputasi paralel membutuhkan:

  • algoritma
  • bahasa pemrograman
  • compiler

1.2 POTENSI PENINGKATAN KECEPATAN KOMPUTASI

1.2.1 Faktor Pemercepat

Fungsi p maupun jumlah data yg sedang DIPROSES n, sehingga S(p,n)

(Pada sub-topik ini, hanya variable p yg DIBAHAS)

Prosesor Tunggal > Menangani Algoritma Sekuensial

Prosesor Banyak > Menangani Algoritma Paralel

Percepatan Linier : Percepatan sebesar p dapat dicapai jika komputasi dibagi ke dalam beberapa proses dengan DURASI yang SAMA.

Percepatan Superlinier : Faktor Percepatan (S(p)) > Jumlah Prosesor (p)

Efisiensi

Jumlah waktu yang diperlukan oleh prosesor untuk melakukan KOMPUTASI.

Misalnya, E=50%, maka semua prosesor hanya digunakan SETENGAH waktu dari proses rata2 pada komputasi sebenarnya.

1.2.2 Percepatan Maksimal

Faktor yg akan muncul sebagai overhead pada versi PARALEL dan dapat MEMBATASI Percepatan, yaitu:

  1. Periode (jika prosesor TIDAK Mengerjakan proses dengan baik / idle)
  2. Komputasi Tambahan pada beberapa versi parallel tidak muncul pada versi sekuensial.
  3. Waktu KOMUNIKASI antarProses.
  4. problem sekuensial paralel

Pada setiap komputasi selalu ada bagian yang harus diproses dengan Algoritma Sekuensial, disebabkan bagian komputasi tsb TIDAK DAPAT DIBAGI menjad beberapa tugas, maka kita dapat peroleh bahwa terdapat Faktor Percepatan terhadap bagian Seri, f.

Skalabilitas

Skalabilitas Arsitektur (Hardware)

Skalabilitas Algoritma

FAKTOR PEMERCEPAT

-Hukum AMDAHL

Ts dan SKALA Ukuran Problem = konstan

-Hukum GUSTAFSON

Tp  dan SKALA WAKTU = konstan

Agar tp konstan, ketika p meningkat, maka ukuran masalah pun Ditingkatkan.

Bagian Serial sudah Ditetapkan.

faktor percepatan

1.2.3 Komputasi Massage-Passing

Tp=Tcomp + Tcomm

=====Kesimpulan (15/1/2015)

Faktor yg Mempengaruhi Komputasi Paralel :

  1. Jumlah Prosesor (p)
  2. Jumlah Elemen Data (n)
  3. Waktu Komputasi (tcomp)
  4. Waktu Komunikasi (tcomm)

1.3 TIPE-TIPE KOMPUTER PARALEL

Tipenya yaitu,

  1. MultiProsesor Shared Memory
  2. MultiKomputer dengan Memori Terdistribusi

1.3.1 Sistem MultiProsesor Shared Memory

Konfogurasi Shared Memory: Setiap Prosesor dapat MENGAKSES Modul Memori mana pun.

memori

Isi Shared Memory : Program berupa KODE agar setiap prosesor dapat mengaksesnya,

Kenapa harus menggunakan Bahasa Pemrograman Paralel Tingkat Tinggi?

Jawab: Untuk Menghasilkan KODE yang dapat DIEKSEKUSI oleh setiap Prosesor. Compiler-lah yang mengubah bahasa yang kita tulis tersebut menjadi KODE dari Source Code pemrogram.

OpenMP : Bahasa pemrograman Sekuensial yang Biasa Digunakan untuk menentukan Paralelisme. OpenMP ditambahkan pada C/C++ maupun Fortran.

Penelitian Saat ini….

Bagaimana MENGUBAH SYNTAX bahasa Pemrograman Sekuensial sehingga bisa DIGUNAKAN untuk menentukan PARALELISME.

One example that using that approach is UPC (Unified Parallel C).

Kelebihan Shared-Memory:

  • Menjamin KENYAMANAN dalam SHARING Data.

INGAT kembali….. Cache Memory.

NUMA (NonUniform Memory Access) ialah ketika PROSESOR dapat MENGAKSES memori local terdekat LEBIH CEPAT daripada MENGAKSES memori yang letaknya jauh.

UMA(Uniform Memory Access) ialah sebaliknya.

multiprosesor shared memory

1.3.2 MESSAGE-PASSING MULTICOMPUTER

Apa perbedaannya dengan Shared-Memory Multiprosesor?

Setiap computer memiliki satu memori tersendiri yang tidak dapat diakses oleh PROSESOR lain. Setiap Komputer di jaringan bersifat INDEPENDEN.

Lalu bagaimana computer/prosesor tersebut saling Berinteraksi?

Jaringan Interkoneksi memungkinkan PENGIRIMAN PESAN antar prosesor/computer. Suatu Problem dipecah menjadi beberapa bagian PROSES yang kemudian PROSES2 tsb DIKOMPUTASI oleh Setiap KOMPUTER/Prosesor dengan cara Pengiriman PEsan. Pendekatan yang digunakan adalah menggunakan ROUTINE MP yang DISISIPKAN ke dalam Program Sekuensial Konvensional yan DIGUNAKAN untuk PENGIRIMAN PESAN. Apabila Jumlah PROSES > jumlah Komputer, maka Setiap Komputer menjalankan beberapa PRoSES secara SIMULTAN dengan MODEL PEMBAGIAN WAKTU.

Pada MP MultiKompter ini dapat dilihat sebagai sebuah JARINGAN KOMPUTER/PROSESOR. Jaringan ini  mewakili saluran fisik sebuah KONEKSI antara KOmputer sehingga dapat dilakukan PENGIRIMAN PESAN.

Hal yang UTAMA DIperhatikan pada DESAIN JARINGAN, ialah

  1. Bandwidth : Jumlah BIT yg dapat DITRANSMISIKAN (bps)
  2. Latency : Waktu yang DIPERLUKAN dalam pengiriman PESAN.
  3. Cost (Harga)

Istilah-Istilah :

  • Network Latency : Lamanya waktu mengirimkan pesan dalam suatu jaringan
  • Communication Latency : TOTAL waktu yang digunakan UNTUK MENGIRIM PESAN + Overhead Perangkat Lunak + Delay antarmuka.
  • Message Latency : Waktu yang diperlukan untuk MENGIRIM PESAN KOSONG untuk PENCARIAN ROUTE.
  • Bisection Width : Jumlah Link yang TERSEDIA
  • Bisection Bandwidth : JUmlah Bandwidth pada link2 tsb.

JENIS JARINGAN yang Limited-Direct-Interconnected :

  1. Jaringan MESH,
  2. Jaringan HyperCube,

Suatu SWITCH berfungsi me-ROUTE-kan Pesan AntarKomputer.

Jenis SWITCH (saklar), ialah :

  • Crossbar Switch,
  • Tree Network,

Jaringan Interkoneksi MultiStage

Memiliki Sejumlah LEVEL pada Switch. Salah satu contohnya, ialah JARINGAN OMEGA.

Metode Komunikasi

Ada dua cara mendasar dalam MENGIRIMKAN PESAN dari Node ASAL-TUJUAN,

  1. Circuit Switching

Cara ini seperti koneksi TELEPON, ketika node ASAL terhubung dengan node TUJUAN, maka KONEKSI tsb TETAP DIPERTAHANKAN hingga akhir Pengiriman Pesan.

Kekurangan : Link lain tidak DAPAT menggunakan Jaringan yang dIGUNAKAN (saat menelpon) hingga suatu PESAN selesai DIKIRIM.

  1. Packet Switching

Teknik ini dapat diANALOGIkan seperti Pengiriman SURAT POS. Suatu PEsan akan TERSIMPAN pada BUFFER di suatu NODE jika TERHALANG untuk bergerak ke node Selanjutnya. Pesan dibagi ke beberapa PAKET INFORMASI. Setiap Paket membawa Alamat Asal dan Tujuan untuk ROUTING Paket melewati JAringan Interkoneksi dan data. Setiap PAKET memiliki batas Ukuran Maksimal. Jika Suatu pesan melebihi ukuran maksimal tsb, maka pesan akan dibagi menjadi beberapa PAKET, kemudian PAKET2 tsb akan DIKIRIM secara TERPISAH.

Store-and-Forward_packet Switching : Ketika suatu PESAN diproses TERLEBIH DAHULU sebelum Dikirim ke TUJUAN.

Teknik Cut-Through : Teknik Pengiriman PEsan yang jika LINK berikutnya TELAH TERSEDIA, maka PAKET langsung Diteruskan TANPA disimpan di BUFFER. Meskipun demikian, jika JALUR berikutnya TERHALANG, maka pesan disimpan di PENYIMPANAN SEMENTARA untuk menyelesaikan Pengiriman PEsan.

Teknik WormHole : Pesan dibagi menjadi beberapa bagian FLIT (Flow Control Digits). Ukuran FLIT = 1 atau 2 bit. HEADER FLIT lah yang pertama diTransmisikan ke TUJUAN. Ketika HEAD FLIT Bergerak Maju, Bagian pesan lainnya akan mengikutinya. Paket lain TIDAK DAPAT disisipi FLITZ sepanjang Jalur / Link yang digunakan SAMA. Panjang Jalur yang dilalui pesan mempengaruhi LATENCY.

LiveLock : Terjadi pada Algoritma Routing Adaptif dan Menggambarkan sebuah PESAN yang MENGELILINGI Jaringan tanpa MENGETAHUI TUJUANNYA.

DeadLock : Terjadi karena Suatu Paket TIDAK DAPAT DITERUSKAN karena Terhalang PESAN di node selanjutnya yang belum DITERUSKAN.

Solusi untuk DeadLock : Menyediakan sebuah VIRTUAL CHANNEL, dengan BUFFER Terpisah (masing2), untuk kelas2 PESAN.

1.3.2 Shared Memory Terdistribusi

Apa itu Shared Memory Terdistribusi ?

Itu adalah suatu bentuk jaringan yang setiap MEMORI terhubung pada setiap PROSESOR, tapi PROSESOR dapat MENGAKSES MEMORI secara keseluruhan menggunakan RUANG Alamat Memori Tunggal.

Apa itu Shared Virtual Memory ?

SVM ialah Sistem Manajemen Memori yang dapat menggambarkan bahwa seluruh Memori dapat diwakili oleh sebuah Memori Tunggal meskipun setiap memori digunakan oleh Komputer yang Berbeda.

2multiprosesor shared memory

MATLAB : Kenapa muncul pesan error pada Matlab x64 ketika meng-compile diagram blok?

Hal pertama yang harus anda lakukan adalah memeriksa apakah Microsoft Visual C++ 2010 redistributable packages (x86 dan x64) telah terinstal. Anda dapat mengeceknya di Control Panel>Program and Features.

OPSI 1: Jika anda belum Menginstall Microsoft Visual C++ 2010 redistributable packages

Ikuti langkah-langkah berikut ini,

Siapkan software ini terlebih dahulu. Software  tersebut adalah sbb;

Windows SDK 7 and Framework 4

Ini alamat officialnya:

http://www.microsoft.com/en-us/download/details.aspx?id=8442

saat kamu klik download, maka akan muncul opsi untuk memilih jenis filenya:

  • GRMSDK_EN_DVD.iso, file ini untuk Windows x86 atau 32 bit
  • GRMSDIAI_EN_DVD.iso, file ini untuk Windows amd64
  • GRMSDKX_EN_DVD.iso, file ini untuk Windows x64 atau 64 bit

Karena masalah error pada matlab ini hanya terjadi pada Matlab x64 maka dari opsi di atas kita harus memilih GRMSDKX_EN_DVD.iso…..

Setelah itu, mount file iso nya, lalu klik install. Selanjutnya klik next tanpa mengubah pilihan instalasinya, dan tunggu sampai proses instalasi selesai / COMPLETO..hehe

Langkah Selanjutnya, buka Matlab, dan

  1. Ketik ——–mex –setup————
  2. Would you like mex to locate installed compilers [y]/n? >>>>tekan n
  3. Pilih, Microsoft Visual C++ 2010 Express, jangan hiraukan pesan warning tersebut…..
  4. Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 10.0], >>>>ketik, C:\Program Files (x86)\Microsoft Visual Studio 10.0
  5. Please verify your choices:

Compiler: Microsoft Visual C++ 2010 Express

Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0

Are these correct [y]/n?  >>>>>>>Ketik, y

  1. Proses tersebut Berhasil jika ada pesan…………..Done….. (setelahnya)

 

OPSI 2: Jika anda telah Menginstall Microsoft Visual C++ 2010 redistributable packages (x86 dan x64)

1. Uninstall the Microsoft Visual C++ 2010 redistributable packages (both x86 as well as x64) from “Control Panel” > “Programs and Features”.

2. Install the Windows SDK 7.1. During installation, under the “Installation Options” menu, UNCHECK the “Visual C++ Compilers” and “Microsoft Visual C++ 2010” components.

3. Apply the SDK 7.1 patch from below:

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=4422

4. Reinstall the Microsoft Visual C++ 2010 redistributable packages.

x64:

http://www.microsoft.com/en-us/download/details.aspx?id=14632

x86:

http://www.microsoft.com/en-us/download/details.aspx?id=5555

 

REFERENCE :

http://www.mathworks.com/matlabcentral/answers/95039-why-does-the-sdk-7-1-installation-fail-with-an-installation-failed-message-on-my-windows-system

http://www.microsoft.com/en-us/download/details.aspx?id=8442