Rangkuman tentang Graphics – JAVA

 

  • Kita dapat menggambar grafik 2D secara langsung di dalam widget.
  • Kita dapat menggambar sebuah file bertipe .gif atau .jpeg secara langsung pada widget.
  • Untuk menggambar grafik milikmu (termasuk sebuah .gif atau .jpeg), buatlah sebuah subclass JPanel dan mengganti “isi” dari method paintComponent ( ).
  • Method paintComponent ( ) dipanggil oleh system GUI. Kita tidak bisa memanggilnya seperti method yang biasa. Argument pada method paintComponent ( ) asalah sebuah objek grafik yang memberikan kita sebuah permukaan untuk dijadikan tempat menggambar, yang dibatasi oleh layar/window. Kita tidak bisa sendiri membangun objek itu.
  • Method-method khusus untuk memanggil sebuah objek Graphic (parameter paintComponent ) adalah :                                                                                                 setColor (Color.blue);            g.fillRect(20,50,100,120);
  • Untuk menggambar sebuah .jpg, buatlah sebuah gambar menggunakan : Image image=new ImageIcon(“catzilla.jpg”).getImage( );                                               dan gambarlah menggunakan :                                                                                   drawImage(image,3,4,this);
  • Objek direferensikan oleh parameter Graphics pada paintComponent ( ) sebenarnya sebuah instance dari class Graphics2D. Kelas Graphics2D mempunyai sebuah method yang beragam, termasuk :                                                                         fill3DRect ( ), draw3DRect ( ), rotate(), scale(), shear (), transform ( ).
  • Untuk meminta method-method Graphics2D, kita harus “melemparkan” parameter dari objek Graphics ke sebuah Objek Graphics2D : Graphics2D g2d= (Graphics2D) g;     //g adalah referensi Objek Graphics

Rangkuman tentang EVENT – Java

 

  • Untuk membuat sebuah GUI, mulai dengan sebuah Window, biasanya sebuah JFrame           contoh : JFrame frame = new JFrame( );
  • Kita bisa menambah widget (button (Tombol), text field (tempat menulis text), dll) ke JFrame dengan menggunakan; Contoh dalam menambahkan sebuah tombol (button) :                                      getContentPane( ).add(button);
  • Tidak seperti kebanyakan komponen lainnya, JFrame tidak membiarkan kita untuk menambahkannya (add) secara langsung, jadi KITA HARUS menambahkan (add) ke isi Jendela (Window).
  • Untuk membuat window (JFrame) tampil, KITA HARUS memberikannya sebuah UKURAN (size) dan memberitahunya untuk KELIHATAN (Visible): contoh;                 setSize(300,300);          frame.setVisible(true);
  • Untuk mengetahui kapan user meng-klik sebuah button (tombol) (atau melakukan aksi lainnya pada antarmuka pengguna), maka KITA perlu mendengarka sebuah GUI Event.
  • Untuk mendengarkan sebuah event, KITA HARUS mendaftarkan keinginan kita dengan sebuah Sumber Event. Sebuah Sumber Event adalah sesuatu (Button, CheckBox, dll) yang melepaskan sebuah EVENT berdasarkan interaksi pengguna.
  • Listener (Pendengar) antarmuka memberikan Sumber Event sebuah cara untuk memanggil kita kembali, karena antarmuka (interface) mendefinisikan method(s) Sumber Event akan memanggil ketika sebuah Event terjadi.
  • Untuk mendaftarkan untuk Event-Event dengan sebuah Sumber, panggil Method yang Didaftarkan milik Sumber. Method Registrasi selalu berbentuk : add<EventType>Listener                                                                                                Untuk mendaftarkan sebuah ActionEvent-nya Button (Tombol),  contoh,                             addActionListener(this);
  • Menjalankan antarmuka (interface) listener dengan menjalankan semua method-method Event-handling milik Interface. Letakkan Kode Event-Handling kita di dalam Method memanggil-kembali listener. Untuk ActionEvents, methodnya ialah; public void actionPerformed (ActionEvent event) { button.setText(“you clicked!”); }
  • Objek Event dilewatkan ke dalam Method Event-Handler dengan membawa informasi tentang Event, termasuk sumber Event.

Arsitektur Intel(R) MIC (Many Integrated Core – Inti Banyak Terpadu)

Intel MIC

Arsitektur MIC (Many Integrated Core / Banyak Inti Terpadu) Intel ® merupakan kombinasi dari banyak inti (Core) Processor ke dalam sebuah chip tunggal. Jenis processor ini diperuntukkan / ditawarkan kepada para pengembang-penembang dengan kentungan :

  • Arsitektur ini dapat berjalan sesuai standar, dengan peralatan pemrograman dan metode-metode yang telah tersedia.
  • Developer yang tertarik pada pemrograman core-core ini bisa menggunakan standar source code (Kode Sumber) C, C++, dan FORTRAN.
  • Source code program yang sama ditulis untuk produk Intel ® MIC dapat dijalankan dan dikompilasi oleh standar Prosesor Intel ® Xeon ®.
  • Model Pemrograman yang familiar (C, C++, dll) sehingga memungkinkan para Developer / Pengembang dapat berfokus pada masalah-masalah daripada rekayasa perangkat lunak.

xeon-phi-die-3-2.png.rendition.cq5dam.thumbnail.200.132

Beberapa penerapannya ialah pada pemetaan bumi dan citra satelit dalam aplikasi seperti Google Earth *. Menghasilkan gambar yang jelas dalam keadaan cahaya remang. “Backprojection” berbasis perhitungan Synthetic Aperture Radar (SAR) dapat mengambil gambar bumi di malam hari, menembus awan dan pohon, dan menyediakan informasi mengenai permukaan bumi yang diamati. Ia bekerja dengan mengumpulkan data dari radar pesawat yang berputar-putar pada suatu wilayah, kemudian berubah menjadi gambar melalui perhitungan intens /kompleks. Menggunakan prosesor Intel Xeon dan Intel Xeon Phi ™ coprocessor, Intel Labs dan lain-lain menunjukkan potensi untuk pengurangan lima kali biaya komputasi menggunakan “backprojection,” selain itu menyederhanakan pengumpulan data melalui pengoptimalan jalur penerbangan dan bentuk penargetan.

Sumber : http://www.intel.com/content/www/us/en/architecture-and-technology/many-integrated-core/intel-many-integrated-core-architecture.html

Keterbatasan Protoboard – Hal yang anda HARUS Pertimbangkan ketika menggunakan Breadboard

Pada tulisan saya kali ini, saya tidak akan membahas tentang pengertian Breadboard / Protoboard, skemanya, ataupun tentang harganya. Saya kali ini akan membahas tentang kekurangan / keterbatasan yang harus kita perhatikan saat pengguanaan Breadboard,

  1. Tingkat Frekuensi

Berdasarkan penelusuran saya di Wikipedia dan (Om) Google, Frekuensi yang mampu ditangani oleh suatu BreadBoard ialah <=10MHz. Hal ini disebabkan adanya Kapasitansi Tersebar (Stray Capacitance) pada BreadBoard.

Jika ada dua konduktor yang terpisah dengan jarak tertentu dapat dianggap sebagai sebuah Kapasitor. Meskipun jarak antara dua konduktor tersebut cukup jauh, Efek Kapasitansi tetap ada walaupun sangat kecil. Peristiwa itulah yang menyebabkan Kapasitansi Tersebar (Stray Capacitance). Efek Kapasitansi Tersebar dapat membuat kebocoran sinyal antara sirkuit lainnya (Keadaan Crosstalk). Hal ini akan berefek pada keterbatasan suatu rangkaian untuk bekerja pada Frekuensi yang Tinggi.

Tapi, beberapa orang pernah mencoba untuk menggunakan BreadBoard pada Frekuensi +-20 MHz. katanya, hal yang harus diperhatikan adalah bagaimana kita menyusun komponen-komponen di breadboard agar tidak memberi efek buruk antara satu komponen dengan komponen yang lainnya.

Pengalaman :

Continue reading

Rangkuman tentang Static – Final — JAVA

Berikut merupakan rangkuman dari Pembahasan Tipe STATIC dan FINAL, Just ENJOY it….. 🙂

  • Sebuah Static Method menggunakan nama CLASSnya, bukan Variabel Referensi Objeknya. Contoh, Math.random( ) dan myFoo.go( ).
  • Sebuah Static Method dapat dipanggil tanpa perlu Instance variable dari Class Method di dalam HEAP (ruang lingkup).
  • Sebuah Static Method itu berguna untuk sebuah Method yang TIDAK BERGANTUNG pada nilai dari INSTANCE VARIABEL tertentu sebuah class.
  • Sebuah Static Method tidak BERHUBUNGAN dengan Instance variable TERTENTU. Static Method HANYA berhubungan dengan CLASSnya. Jadi, Static Method tidak DAPAT mengakses INSTANCE VARIABEL dari dalam CLASSnya. INTINYA, STATIC METHOD tidak mengenal –tidak mengetahui nilai dari – INSTANCE VARIABEL.
  • Sebuah Static Method tidak dapat DIHUBUNGKAN dengan NON-STATIC METHOD, karena NON-STATIC METHOD memiliki IKATAN (…ciecieJ) dengan nilai dari INSTANCE VARIABEL
  • Jika kita memiliki CLASS yang HANYA berisi jenis STATIC METHOD, dan kita TIDAK ingin Class dibuat OBJEKnya, maka kita dapat MEMBERI tanda PRIVATE pada Constructornya.
  • Static Variabel adalah Variabel yang MEMBAGI nilainya pada semua member yang DIBERIKAN oleh CLASS. HANYA ada satu SALINAN Static Variabel di dalam Class.
  • Static Method DAPAT MENGAKSES Static Variabel.
  • Untuk membuat nilai CONSTANT (dalam JAVA), kita dapat memberi tanda Static dan Final pada sebuah Variabel.
  • Final Static Variabel HARUS diberikan nilai Awal (Inisialisasi) pada saat Deklarasi atau di dalam Static Initializer.

Static {DOG_CODE=42;}

  • Pemberian NAMA untuk nilai CONSTANT (Variabel Final Static) HARUS menggunakan HURUF KAPITAL.
  • Nilai dari Variabel Final hanya bisa DIGANTI SEKALI SAJA, yaitu pada saat INISIALISASI AWAL.
  • Memberikan Nilai pada Instance Variabel Final adalah pada saat DEKLARASI atau didalam
    CONSTRUCTOR.
  • FINAL METHOD Tidak Dapat di-OVERRide (diubah method dan Variabelnya).
  • FINAL CLASS Tidak Dapat di-EXTENDS / Tidak Memiliki SUB-CLASS.

KOMPUTASI MESSAGE-PASSING

Pada artikel kita akan membahas tentang KONSEP DASAR Komputasi Message-Passing, ……JUST ENJOY it,,,,

  1. Dasar-Dasar Pemrograman Message-Passing

Cara Pemrograman MultiKomputer Message-Passing,

  1. DESIGN – Merancang Bahasa Pemrograman Paralel secara Khusus.
  2. DEVELOP – Mengembangkan SYNTAX atau Served Word pada Bahasa Pemrograman Sekuensial Tingkat Tingg yang telah ada untuk meng-Compile Message-Passing.
  3. USING – Menggunakan Bahasa Pemrograman Sekuensial Tingkat Tinggi yang telah ada dan Menyediakan sebuah Library mengenai prosedur Eksternal untuk MP.

Occam, adalah satu-satunya contoh Bahasa Pemrograman Paralel MP yang umum. Bahasa ini didesain untuk digunakan dengan Prosesor MP, yang disebut Transputer.

s3-tarch.inlineATW-Intro-Graphic2

800px-Transputer_Grafik_Evaluation_IMSB419_70

HPF (High Performance Fortran), adalah contoh Perluasan Bahasa dalam Pemrograman Paralel yang digunakan untuk Sistem Shared-Memory (Computer Parallel MultiProcessor).

Pada Pembahasan selanjutnya, kita akan focus menggunakan bahasa Pemrograman Tingkat Tinggi, Bahasa C, ditambah dengan pemanggilan Library MP (melakukan MP proses demi proses secara Langsung).

Pertanyaan yang Seharusnya ada di pikiran kita saat ini,

  • Proses mana yang akan dieksekusi ?
  • Kapan harus menyampaikan message (pesan) di tengah Proses yang Konkuren ?
  • Apa yang hendak disampaikan melalui Message (Pesan) yang dikirim ?

Berikut adalah metode yang diperlukan untuk Pemrograman Message-Passing,

  • Metode Pembuatan Proses-proses yang Terpisah untuk dieksekusi oleh computer-komputer yang Berbeda.
  • Metode Pengiriman dan Penerimaan Message.
  1. Pembuatan Proses

Istilah Proses akan digunakan pada Pemrograman Paralel ini. Proses ini akan menjelaskan bagaimana sebuah Program akan dieksekusi.

  • Lebih dari satu Proses dapat dipetakan ke suatu Prosesor tunggal. Akibatnya, hal itu tidak akan menghasilkan Eksekusi Berkecapatan Tinggi karena Prosesor harus membagi waktu antara proses-proses tersebut. Alasan lain menggunakan teknik ini ialah untuk menghilangkan beberapa Latency (Waktu yang diperlukan dalam pengiriman Pesan antara Prossesor) Jaringan.

Dua Metode Pembuatan Proses,

  • Pembuatan Proses Statis (Static Process Creation)

Semua Proses telah ditentukan / diidentifikasi sebelumnya, lalu system akan mengeksekusi beberapa Prosesor dengan jumlah yang TETAP menggunakan Perintah COMMAND-LINE..

  • Pembuatan Proses Dinamis (Dynamic Process Creation)

Proses bisa dibuat sementara system mengeksekusi proses yang lain. Library / System Calls digunakan untuk Membuat Process. Proses dapat dibuat dan dimusnahkan (Create and Destroy….). Jumlah Proses akan berubah-ubah saat eks  ekusi..

Master Process dan Slave Process

Master Process sebagai satu Proses Pengontrol dan Slave Process sebagai Proses (lainnya) yang Dikontrol. Istilah Slave-Master serupa dalam BENTUK, tapi BERBEDA pada Identifikasi Proses (ID).

ID Proses

  • Untuk Memodifikasi aksi Proses, atau
  • Menghitung tujuan Message yang Berbeda.

Model Pemrograman (yang digunakan pada Komputasi MP)

Model MPMD (Multiple-Program Multiple Data)

    • Program yang BERBEDA ditulis untuk Prosesor yang BERBEDA.
    • Minimal dua Program (cukup), sebuah Program Master dan Program Slave.
    • Jika Program > 2, maka Program Slave akan SAMA dalam hal BENTUK, tetapi memiliki ID PROSES yang BERBEDA untuk menyesuaikan EKSEKUSInya.
    • Contoh penggunaan ID Proses ialah digunakan untuk Menentukan TUJUAN dari Message-Message (Pesan) yang telah di GENERATE

MPMD

Model SPMD (Single-Program Multiple Data)

      • Khusus untuk Pembuatan Proses Statis.
      • Program yang BERBEDA disatukan ke dalam SATU PROGRAM (Tunggal).
      • Di dalam Program (Tunggal) tsb, ada Statement Kontrol yang akan MEMILIH Bagian-bagian yang BERBEDA dari TIAP PROSESOR.
      • Setelah Program Source Dibentuk (Dilengkapi Statement Kontrol), kemudian Program tsb akan DISUSUN dalam KODE yang bisa dijalankan sesuai dengan tipe prosesornya.
      • Model ini merupakan Pendekatan yang paling umum dari SISTEM MP, MPI (Message-Passing Interface).

SPMD

Pembuatan Proses Dinamik

      • Dua Program Berbeda dapat Ditulis, Program Master dan Slave. Program-program tsb disusun secara terpisah dan Siap untuk dieksekusi.
      • Salah satu contoh Pemanggilan Library untuk Pembuatan Proses Dinamis, yaitu

Spawn (nama_proses-prosesnya)

      • Statement diatas akan mengawali proses2 lainnya.
      • Proses yang Memanggil dan Dipanggil BERPROSES secara Bersamaan.
      • Proses yang mengalami “SPAWN” hanyalah Ekseskusi Program yang telah disusun sebelumnya.
        1. Rutin-Rutin Message-Passing

        Rutin-rutin MP bekerja sebagai penentu operasi yang dilakukan antara satu proses dengan proses lainnya. Rutin-rutin ini dapat diperoleh dengan pemanggilan Library MP.

        Rutin Dasar Send dan Receive

        Rutin Send  dan Receive ialah rutin yang sering digunakan pada Sistem Komputasi Message-Passing ini. Seperti yang telah dijelaskan sebelumnya, rutin-rutin yang berada di dalam Library MP ini menggunakan Bahasa Pemrograman (Sekuensial) Tingkat Tinggi, yaitu Bahasa C.Send n Receive

        • Rutin Send ( )

        Karena menggunakan Implemtasi Bahasa C, maka nama (istilah) rutin / operasi merupakan istilah yang sering kita temukan dala m kehidupan sehari-hari.

        Bentuk Pemanggilan Library untuk Rutin Send ( ), ialah

        Send (parameter_list)

        Rutin Send ( ) terletak dalam Proses Sumber. Rutin ini akan mengirimkan Message dari Proses Sumber ke proses Tujuan. Parameter yang digunakan dapat terdiri dari parameter yang sederhana hingga parameter-parameter yang kompleks.

        Berikut parameter-parameter sederhana tersebut,

        • ID tujuan dan Message di Rutin Send ( )

        send (&x , destination_id);

        • Rutin Receive ( )

        Bentuk Pemanggilan Library untuk rutin Receive ( ), ialah

        Receive (parameter_list);

        Rutin Receive ( ) terletak dalam Proses Tujuan. Rutin ini akan Menerima Message dari Proses Sumber.

        Berikut Parameter-parameter sederhana tersebur,

        • ID Sumber dan Tempat menyimpan Message di Rutin Receive ( ).

        receive (&y, source_id)

        Beberapa Ketentuan untuk Rutin-rutin Send dan Receive,

        1. Variable x dan y terlebih dahulu DIDEKLARASIKAN.
        2. Tipe data x dan y harus SAMA.
        3. Untuk data yang lebih kompleks (memiliki lebih dari satu elemen data), kita dapat menggunakan Formasi Message tertentu (akan dibahas pada bagian Penggunaan Komputer Cluster).
    • Synchronous Message-PassingSynchronous, atau dalam bahasa indonesianya berarti menyelaraskan, adalah istilah yang digunakan pada operasi send dan receive di library message passing. Istilah ini berarti bahwa beberapa rutin akan kembali ke tempatnya berasal setelah seluruh operasi pengiriman. Message telah selesai. Istilah kembali disini berarti bahwa Send () akan kembali ke Proses 1 dan Receive akan kembali ke Proses 2, di mana tempat tersebut merupakan tempat dipanggilnya rutin-rutin tersebut.Pada dasarnya, Synchronous akan melakukan dua pekerjaan (antara Send dan Receive), yaitu Mengirim data dan Menyelaraskan Data.

      Rutin Send Synchronous : Rutin ini akan kembali ketika pengiriman Message telah diterima oleh Rutin Receive di proses 2.

      Rutin Receive Synchronous : Rutin ini akan kembali ketika Message telah tiba di Receive dan kemudian disimpan di rutin Receive (variable y ).

      Rendezvous, istilah yang digunakan untuk menjelaskan PERTEMUAN dan PENYELARASAN dua proses di dalam operasi Send/Receive.

      Protokol Three-Way, ialah Protokol yang memiliki 3 jalur antara Send dan Receive.

      Jalur Pertama ialah ketika Proses sumber (proses 1) mengirimkan Message “Request to send” – Permintaan untuk mengirim pesan – ke Proses Tujuan (Proses 2).

      Jalur kedua ialah ketika Proses Tujuan mengirim Sinyal Acknowledgement – Persetujuan request dari Jalur Pertama – ke Proses Sumber.

      Lalu, Jalur Ketiga ialah ketika Proses Sumber Mengirimkan Message yang Sebenarnya.

      Ada beberapa keadaan yang terjadi pada Protokol Three-Away di rutin Send-Receive,

      • Ketika proses 1 mencapai Send ( ) sebelum Proses 2 mencapai Receive ( ), Proses 1 beberapa saat akan ditunda hingga Proses 2 mencapai Receive. Message untuk sementara akan disimpan dalam Proses 1. Saat Receive telah tiba, maka Proses 2 akan membangkitkan sebuah “sinyal” ke proses 1. Akhirnya, Kedua Proses tersebut akan melakukan Transfer Message.

12Untitled

  • Ketika Proses 2 mencapai Receive ( ) sebelum Proses 1 mencapai Send ( ), Pada keadaan ini, proses 2 harus Ditangguhkan hingga Proses 1 mencapai rutin Send. Setelah Send tiba, kedua proses akan melakukan Transfer Message.

133Untitled

    • Message-Passing Blocking dan UnblockingIstilah Blocking dan Unblocking merupakan istilah yang digunakan untuk menjelaskan keadaan rutin-rutin, dalam hal ini rutin yang kita bahas ialah Rutin Send ( ) dan Rutin Receive ( ).  (Locally) Blocking

      Istilah ini digunakan untuk menjelaskan suatu Rutin yang KEMBALI Setelah Aksi Lokalnya selesai, meskipun Pengiriman Message Belum selesai / Belum Tiba di Proses Tujuan.

      Unblocking

      Istilah ini digunakan untuk menjelaskan suatu Rutin yang SEGERA KEMBALI, TIDAK PEDULI apa Messagenya DITERIMA atau TIDAK oleh proses Tujuan.

      Message Buffer

      Digunakan untuk PENYIMPANAN SEMENTARA Message yang Telah Dikirimkan oleh Rutin Send ( ) (Di Proses Sumber), tapi Belum diterima oleh Rutin Receive () ( di Proses Tujuan).

       Message Buffer

      Ada beberapa hal yang HARUS kita ingat mengenai bahasan Send dan Receive ini,

      • Jika kita menginginkan Message dari Proses Sumber, maka Message tsb HARUS sampai pada Rutin Receive di Proses Tujuan.
      • Jika Rutin Receive dicapai sebelum Rutin Send, maka Message Buffer akan KOSONG. Jika Rutin Send telah ber-AKSI di Proses Sumber, maka Message akan Langsung terkirim ke Rutin Receive dan Message Buffer hanya menjadi tempat lewat (tanpa disimpan) message-message.
      • Pada Pembahasan selanjutnya, (Locally) Blocking dan Synchronous akan lebih banyak dibahas.

      Pemilihan Message

      Seperti pada pembahasan sebelumnya, Rutin Send dan Receive memiliki beberapa parameter dalam melakukan transfer. ID Tujuan diberikan sebagai parameter dari Rutin Send, dan ID Sumber diberikan sebagai parameter dari Rutin Receive. Analoginya, ID Sumber bertindak seperti sebuah ALAMAT dalamPENGIRIMAN SURAT POS. Jadi, Proses Sumber hanya akan mengirim Message pada Alamat Tertentu, dan juga Proses Tujuan hanya akan Menerima Message berdasarkan parameter ID Sumber yang Tertulis dalam Parameternya.

      Wild-Card

      Jadi, Bagaimana kita bisa Menerima Pesan dari Proses Sumber  yang Berbeda?

      Jawabannya ialah pada Istilah WILD CARD pada ID Sumber. WILD CARD pada ID Sumber = -1. Jadi, jika kita menginginkan Sebuah Rutin Receive ( ) menerima Semua Message dari Proses Sumber yang Berbeda, maka kita memberikan nilai Parameter di ID Sumber dengan nilai -1.

      Contoh,

      Send(&x, -1);

      X (berbentuk pointer dari suatu tipe data yang tela h kita deklarasikan sebelumnya.

      -1 = Wild Card.

      Send( )  = Rutin untuk mengirmkan Message ke Proses Tujuan.

      Tag Message

      Agar kita bisa memilih Message yang Dikirim, maka kita dapat memasukkan Tag Message / Message yang dipilih ke Parameter milik Rutin Receive.

      Contoh, penggunaan Tag Message,

      Untuk mengirim message x, dengan tag 5 (urutan pesan yang dipilih) dari proses sumber =1, ke proses tujuan = 2, dan diserahkan ke y,

      Send(&x, 2, 5);  >>> Pada Proses Sumber

      Recv( )               >>> Pada Proses Tujuan

      Hal yang HARUS diketahui tentang pembahsan ini,

      • Tag Message dimuat dalam Message.
      • Tag Message dapat digantikan dengan Wild Card sehingga recv( ) dapat sesuai dengan segala Rutin send ( ) yang berasal dari Proses Sumber.
      • Programmer harus menyimpan track dari nomor tag message yang digunakan oleh message yang digunakan dalam program, dan program lainnya yang dsertakan.

Broadcast, Gather, dan Scatter

  • Broadcast

Broadcast (dalam istilah Parallel Programming) memiliki arti,

  • Pengiriman Message yang SAMA ke beberapa tujuan atau Grup tertentu.
  • Pengiriman Message yang SAMA ke beberapa Proses yang Berhubungan dengan suatu Masalah.

Bcast

Tahap-tahap Broadcast,

  • Identifikasi – Proses-proses yang terlibat dalam Broadcast terlebih dahulu diidentifikasi.
  • Group – Dibuat suatu Group Proses dengan nama tertentu.
  • Parameter – Memasukkan nama Group Proses tersebut ke Parameter Broadcast.
  • Misalnya, Proses 0 diidentifikasi sebagai Proses Root dalam Parameter Broadcast. Proses root adalah Proses APA SAJA di dalam Grup proses.
  • Berdasarkan gambar (contoh), Proses Root menyimpan data dalam Parameter buf untuk kemudian di Broadcast.
  • Aksi Broadcast Tidak akan terjadi hingga semua proses mengeksekusi rutin bcast( ). Hal itu berarti akan ada SINKRONISASI pada rutin Broadcast.

Hal penting tentang Rutin Broadcast,

  • Implementasi dari rutin Broadcast yang Efisien sangat penting dalam menyebarkan penggunaan Broadcast pada Program secara meluas.
  • Gather

Gather, adalah kebalikan dari Scatter. Rutin ini akan mengumpulkan nilai-nilai individu dari grup proses ke proses root (berdasarkan contoh dibawah, Proses 0). Gather biasanya dieksekusi setelah proses telah menyelesaikan beberapa komputasi.

Kenapa Gather merupakan kebalikan dari Scatter?

Karena data dari proses ke-i akan dikirim ke Proses Root (Proses 0) di lokasi array ke-i. Berdasarkan contoh di bawah, proses root juga mengumpulkan datanya ke array.

gather

  • Scatter

Scatter, istilah yang menjelaskan tentang pengiriman suatu elemen array dari suatu data (pada root) ke proses-proses yang terpisah. Isi dari lokasi ke-I dari array, dikirim ke proses ke-i.

Scatter

Tahap-tahap eksekusi Scatter,

  • Identifikasi grup proses termasuk proses rootnya.
  • Berdasarkan gambar dibawah, Proses root (proses 0) juga menerima data.
  • Setiap proses (di dalam grup) mengeksekusi rutin Scatter( ) yang sama.

Hal yang perlu diperhatikan dalam Rutin Scatter ( ),

  • Pada model SPMD, proses eksekusinya akan lebih mudah.
  • Operasi Reduce

Operasi reduce merupakan operasi Gather yang dikombinasikan dengan Operasi Aritmatika / Logika. Caranya ialah, mengumpulkan nilai dari proses-proses lalu dijumlahkan oleh root. Operasi ini tidak mesti terjadi di Proses Root, melainkan dapat juga didistribusikan ke proses-proses lainnya. Hal ini bertujuan untuk menerapkan sekumpulan operasi yang umum seefektif mungkin.

2.2 PENGGUNAAN KOMPUTER CLUSTER

  1. Tool-Tool Perangkat Lunak

Berdasarkan apa yang telah kita bahas sebelumnya, Perangkat lunak (Software) bertugas untuk menerapkan Metode Message-Passing ke Komputasi Cluster yang biasanya tergabung dalam jaringan Workstation. Perangkat lunak yang banyak dipakai ialah, PVM (Parallel Virtual Machine).

PVM

  • PVM dibuat di Laboratorium Oak Ridge pada tahun 1980-an
  • Mulai dipakai secara meluas pada tahun 1990-an
  • PVM lebih banyak dipakai dibanding rutin library-library lainnya (mis. Buatan IBM dan vendor lainnya) karena PVM Gratis. (dapat diakses di, http://www.netlib.org/pvm3/)
  • Rutin library dari PVM dapat digunakan oleh user dengan menggunakan program C atau Fortran
  • Saat ini, PVM tersedia juga untuk Platform Windows.
  • PVM menggunakan pembuatan proses dinamis. Prinsipnya : ketika suatu proses sedang dibuat, maka dalam waktu bersamaan akan ada proses lain yang dieksekusi.
  1. MPI (Message-Passing Interface)

Alasan dalam pembuatan MPI ialah keinginan untuk membuat MP yang Portabel dan Kemudahan dalam penggunaannya. MPI merupakan Standar Sistem Message Passing yang merupakan hasil kerja sama dari para akademisi dan Parther Industri. MPI menyediakan Rutin Library untuk MP dan Operasi-operasi yang berkaitan. Perlu diingat bahwa,

MPI = Standar ≠ Implementasi.

MPI melakukan perubahan guna memperbaiki kekurangan teknik pada system MP sebelumnya, yaitu PVM.

Versi MPI

  • Versi 1.0; diadakan pertemuan dan diskusi untuk membuatnya pada tahun 1992. Selesai dibuat pada Mei 1994.
  • Versi 1.2; selesai pada tahun1997. MPI 1.2 telah mendukung pembuatan Proses Dinamis, operasi satu-sisi, dan I/O Paralel.

Be Continued……:)

Mengatur Cluster yang mengikuti “BeoWulf Style”

Beowulf Style menggunakan Komponen-komponen Komoditas (PC nya telah dijual khusus oleh suatu Pemasok Komputasi Cluster. Oscar (Open Source Cluster Application Resources) adalah SOFTWARE yang berguna untuk MENYEDERHANAKAN pengaturan system Software pada Cluster.

Ada  dua bagian yang Perlu DiKONFIGURASI,

  1. Konfigurasi Hardware

Ada dua macam node berdasarkan Hubungannya dengan node lainnya,

  1. Node Utama (FrontEnd)

Ciri-ciri Node Utama,

  • Bertindak sebagai file Server
  • Memori dan kapasitas Penyimpanan (Harddisk) yang Cukup Besar (Signifikan).
  • Memerlukan Ethernet Kedua (Ethernet Pertama berhubungan dengan Node Komputasi) agar dapat TERHUBUNG dengan Internet ( Node ini akan memiliki IP Publik).
  • Koneksi antara Node Utama dan Node Komputasi dapat menggunakan Fast atau Gigabit Ethernet (atau Myrianet yang merupakan Interkoneksi Khusus yang lebih Cepat).
  1. Node Komputasi

Ciri-ciri Node Komputasi,

  • Dapat memiliki Disk Drive, meskipun Node Komputasi Tanpa Disk DIMUNGKINKAN.
  • Hanya diberikan Alamat IP PRIBADI sehingga node ini TIDAK dapat terhubung ke luar Cluster / INTERNET (secara langsung).

Ada dua macam Model yang dapat DIKEMBANGKAN,

  1. Cluster Terdedikasi yang (hanya) menggunakan Node Utama.

Model Cluster memiliki ciri-ciri seperti yang telah dijelaskan sebelumnya.

Untistled

  1. Cluster Terdedikasi yang menggunakan Node Utama, Node Administrasi, dan Koneksi Serial.Untitlsed

Apa Fungsi dari Node Administrasi dan Koneksi Serial ?

  • Node Administrasi

Node ini digunakan oleh Administrator Sistem (Seorang Administrator) untuk Memonitor Cluster dan Melakukan Pengujian.

  • Koneksi Serial

Pada dasarnya, Node Komputasi hanya bertugas untuk melakukan Komputasi sehingga mereka Tidak Membutuhkan Keyboard atau Monitor. Tetapi, untuk memudahkan dalam mengakses masing-masing node komputasi dapat melalui Input Konsole Normal. Oleh karena itu, Koneksi Serial dari masing-masing Node (Komputasi) tersebut Dihubungkan ke MASTER (Node Utama) melalui Switch Konsentrator Serial / melalui Node Administratif.

Pada Model ini, sebuah Monitor dan Keyboard dapat digunakan  saling bergantian antara Node Utama dan Node Adminsitrasi.

  1. Konfigurasi Software

System operasi di dalam sebuah cluster biasanya menggunakan OS Linux ataupun OS Windows. Node Utama berisi semua file aplikasi untuk cluster dan dikonfigurasikan sebagai file server menggunakan file system jaringan, yang memungkinkan node komputasi dapat mengakses secara langsung file-file yang berada pada Node Utama (Master). Sistem File yang digunakan pada Cluster, ialah tipe NFS. Node Komputasi dibatasi aksesnya ke jaringan luar, sehingga node ini akan terhubung ke Node Utama melalui jaringan Ethernet dan masing-masing Node memiliki sebuah alamat IP terpisah. Software yang terpasang pada Node Master (Utama) merupakan Software Message-Passing (MPI dan PVM), alat manajemen cluster, dan Aplikasi Paralel. Istilah MiddleWare mewakili sebuah Software Message-Passing yang “berada” antara Sistem operasi dan penggunanya.

images

Setelah semua Software telah disiapkan, pengguna dapat login ke master node dan mendaftarkan  Node-Node menggunakan Software MP (Message Passing). Untuk mengeset Cluster di tempat pertama, diperlukan pengetahuan tentang Sistem Operasi yang Detail dan pengetahuan berjaringan. Oscar (Open Source Cluster Application Resources) – (berbasis menu dan gratis) ialah Software yang menyusun paket-paket Software. Tetapi, sebelum kita menginstall Oscar, kita perlu menyiapkan dan menginstall Sistem Operasi RedHat.Linux pada Node Utama. Cluster didefinisikan dalam sebuah Database. Jaringan cluster pribadi didefinisikan menggunakan Alamat IP yang dipilih oleh pengguna. Alamat-alamat MAC antarmuka Ethernet dikumpulkan pada node utama. Setiap Node komputasi membuat permintaan BOOT Protocol (BOOTP / DHCP) ke Node Utama. Alamat-alamat IP dan file “boot” (yang menentukan kernel mana yang di-boot) dikirim kembali node-node komputasi. Kernel tersebut lalu di-download dan di-boot oleh tiap node. Node-node komputasi akan menginstal Sistem Operasi melalui jaringanmenggunakan utilitas instalasi LINUX, LUI. Akhirnya cluster dkonfigurasi dan middleware diinstall dan dikonfigurasi. Pengujian program dijalankan. Cluster kemudian siap digunakan. Berbagai tool manaemen Workload disediakan untuk antrian batch, penjadwalan, dan pengawasan tugas. Tool ini sangat dibutuhkan oleh cluster untuk memonitor performanya.