Jika anda merasa blog ini bermanfaat dan berharap tetap berkelanjutan baik website maupun content-nya maka anda dapat berpartisipasi dengan memberikan donasi pada website ini. Donasi lewat Paypal dibawah ini.

If you think this website is usefull and want to this website that can still exist and keep content maintenance then you can participate to donate this website. Donate via Paypal as below.

Tutorial Grid Computing Dengan Windows HPC Server 2008

by Agus Kurniawan 31. August 2010 04:58

Ini adalah artikel gw yang sebenarnya ditulis di tahun 2008 dan di publikasi di blog INDC mengenai Grid Computing dengan menggunakan Windows HPC Server 2008. Next-nya, akan dibuat untuk Windows HPC Server 2008 R2. Semoga berguna

Windows HPC Server 2008 Overview
Disini gw menjelasin apa itu Windows HPC Server 2008
[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 1)
Disini gw menjelaskan persiapan untuk membuat HPC lab sendiri

[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 2)
Disini gw menjelaskan bagaimana instalasi dan konfigurasi HPC head node
[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 3)
Ini kelanjutan instalasi dan konfigurasi HPC head
[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 4)
Disini gw menjelasakan instalasi dan konfigurasi HPC Compute node
[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 5)
Disini gw menjelaskan bagaimana mengintegrasi compute node ke head node
[Check]

Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 6)
Disini gw menjelaskan bagaimana diagnostic semua HPC nodes
[Check]

Development Environment for Windows HPC
Pada artikel ini gw menjelaskan bagaimana development environment untuk Windows HPC
[Check]


Donate this article:

Tags:

Grid Computing | Windows

Bukuku “Pemrograman Parallel Dengan MPI dan C”

by Agus Kurniawan 24. August 2010 09:31

Buku ini termasuk buku ke-2 yang dimana buku yang ditulis dalam waktu yang lama (buku yg ke-1 yang lama adalah Supervised Neural Network) dan buku ini akan diterbitkan oleh Andi Offset. Secara keseluruhan buku ini adalah buku ke-11 yang kutulis. Khusus untuk buku Pemrograman Parallel dengan MPI dan C gw menghabiskan hampir 2 tahun untuk menulis buku ini. Hal ini karena kesibukanku di tempat kerja dan juga uji program parallel pada mesin Linux Cluster dan Windows HPC Server.

Buku ini ditulis untuk menambah referensi bagi mereka yang ingin belajar parallel programming secara praktis. Semua materi dan kode program ditulis dengan menggunakan bahasa C. Sedangkan compiler menggunakan GCC dan Visual C++. Seluruh uji kode program sudah dilakukan pada mesin Linux Ubuntu 10.4 Cluster dan Windows HPC Server 2008.

Mengapa Perlu Program Parallel?

Alangkah senangnya jika kita dapat melakukan dua pekerjaan atau lebih dalam waktu bersamaan. Apabila ini dapat dilakukan maka kita dapat menghemat waktu misalkan ada 3 pekerjaan yang masing-masing membutuhkan 1 jam maka total 3 pekerjaan adalah 3 jam jika kita mengerjakan secara berurutan. Kalau 3 pekerjaan ini dapat dilakukan secara bersaman maka kita tidak perlu membuang 3 jam untuk 3 pekerjaan ini.

Pertanyaan mendasar ketika penulis membuat buku adalah mengapa kita perlu membuat program parallel. Sebelum menjawab pertanyaan ini penulis akan mengajak pembaca beberapa peristiwa penting yang menyebabkan kita perlu bahkan mungkin harus membuat program parallel.

 

Perkembangan Processor

Perkembangan processor merupakan pemicu utama mendukungannya aplikasi berbasis parallel. Kalau kita ambil salah satu perusahan processor yaitu Intel maka kita dapat melihat bagaimana Intel mengembangkan processornya.

Processor saat ini dibuat dengan cepat yang terdiri dari IC (Integrated Circuit). Didalam IC, kita akan menjumpai banyak transistor. Menurut Gordon Moore, salah satu co-founder Intel, mengatakan bahwa perkembangan transistor pada satu chip akan dua kali setiap tahun. Prediksi ini cukup akurat, pembaca dapat melihatnya seperti gambar dibawah ini.

gambar1-1

Penulis tidak akan menyimpulkan secara statistik ataupun menggunakan metodologi penelitian tapi berdasarkan pengamatan penulis (subjektif) kebutuhan akan program parallel cukup tinggi. Hal ini dapat diindikasikan banyaknya perusahan besar seperti Microsoft, IBM, SUN, HP mencoba menerapkan program parallel pada setiap produk guna meningkatkan performance.

Gartner sebagai institusi yang salah satunya berfokus melakukan penelitian terhadap trend suatu teknologi mengungkapkan bahwa pemrograman parallel merupakan salah satu isu yang harus diselesaikan pada bidang IT. Hal ini dikarenakan orang-orang berharap permasalahan kompleksitas pada komputasi dapat diselesaikan dengan pemrograman parallel. Pembaca dapat membacanya laporan gatner ini pada alamat http://www.gartner.com/it/page.jsp?id=643117.

Penulis ingin mengingatkan bahwa solusi program parallel tidaklah menjadi solusi akhir karena semakin banyak processor belum tentu cepat menyelesaikan suatu masalah. Berdasarkan hukum Amdahl semakin banyak processor dapat meningkatkan kecepatan tetapi pada suatu titik jumlah processor kecepatan akan mencepai jenuh. Hukum Amdahl ini dapat dilihat grafiknya pada gambar dibawah ini.

gambar1-5

 

Sinopsis Buku

Perkembangan komputer yang semakin cepat terutama processor. Hampir komputer kelas PC sudah memiliki processor (CPU) lebih dari satu. Seiring dengan cepatnya perkembangan komputer kebutuhan akan komputasi juga semakin komplek. Beberapa kasus bahkan tidak dapat diselesaikan dengan pemrograman konvensioanl yaitu pemrograman berparadigma sequential. Oleh karena itu, pemrograman berbasis parallel dengan melibatkan semua kemampuan processor yang lebih dari satu diharapkan dapat menyelesaikan permasalahan tersebut.

Buku ini disusun dengan harapan para akademisi, programmer dan IT professional dapat membuat aplikasi parallel dengan memanfaatkan  Message-Passing Interface (MPI) dan bahasa pemrograman C. Buku ini disusun secara komprehensi dan dilengkapi dengan banyak ilustrasi dalam kode program. Materi buku ini meliputi

  • Mengapa Perlu Program Parallel?
  • Message-Passing Interface (MPI)
  • Persiapan Memrograman Parallel
  • Instalasi dan Konfigurasi MPI
  • Hello World MPI
  • Tipe Data
  • Komunikasi Point-to-Point
  • Komunikasi Kolektif
  • Manajemen Communicator dan Group
  • Topologi Virtual
  • MPI I/O
  • Komunikasi Satu Sisi
  • Memory dan Timer
  • Penanganan Error
  • MPI Client-Server

Semua ilustrasi kode program dalam buku ini diimplementasi dengan kompilator GCC pada lingkungan Linux dan Visual C++ 2010 pada lingkungan Windows.

 

Daftar Isi

Berikut ini daftar isi buku:

Kata Pengantar
Daftar Isi
Bab 1. Mengapa Perlu Program Parallel?
    1.1 Perkembangan Processor
    1.2 Kompleksitas Permasalahan
    1.3 Kesimpulan
Bab 2. Message-Passing Interface (MPI)
    2.1 Apa Itu MPI?
    2.2 Implementasi MPI
        2.2.1 MPI Untuk C/C++
        2.2.2 MPI Untuk Fortran
        2.2.3 MPI Untuk Java
        2.2.4 MPI Untuk C#
Bab 3. Persiapan Memrograman Parallel
    3.1 Ketrampilan Pemrograman
    3.2 Peralatan Sistem
        3.2.1 Persiapan Perangkat Lunak
        3.2.2 Persiapan Perangkat Keras
    3.3 Mesin Testing
Bab 4. Instalasi dan Konfigurasi MPI
    4.1 MPICH 2
        4.1.1 Prasyarat Instalasi
        4.1.2 Instalasi MPICH2 Pada Windows
            4.1.2.1 Konfigurasi SMPD
        4.1.3 Instalasi MPICH2 Pada Linux
    4.2 LAM/MPI dan Open MPI
        4.2.1 Prasyarat Instalasi
        4.2.2 Instalasi
    4.3 Microsoft MPI
        4.3.1 Prasyarat Instalasi
        4.3.2 Instalasi
Bab 5. Hello World MPI
    5.1 Persiapan
        5.1.1 Program Editor
        5.1.1 Kompilator
    5.2 Membuat Program Hello World MPI
        5.2.1 Menulis Kode Program
        5.2.2 Kompilasi
            5.2.2.1 Linux
            5.2.2.2 Windows dan Microsoft MPI
            5.2.2.3 Windows dan MPICH2
    5.3 Menjalankan Aplikasi MPI
Bab 6. Tipe Data
    6.1 Mengenal Tipe Data MPI
        6.1.1 Tipe Data Dasar
        6.1.2 Tipe Data Turunan
            6.1.2.1 Kontinu
            6.1.2.2 Vector
            6.1.2.3 Struct
            6.1.2.4 Index
    6.2 Duplikasi Tipe Data
    6.3 Informasi Objek
        6.3.1 Membuat Objek MPI_Info
        6.3.2 Mengisi dan Mengedit Nilai
        6.3.3 Menghapus Nilai
        6.3.4 Demo
    6.4 MPI Proses
Bab 7. Komunikasi Point-to-Point
    7.1 Mengenal Komunikasi Point-to-Point MPI
    7.2 Model Komunikasi
        7.2.1 Model Standard
        7.2.2 Model Sinkronus
        7.2.3 Model Bufer
    7.3 Operasi Blocking MPI
        7.3.1 MPI_Send()
        7.3.2 MPI_Recv()
        7.3.3 Message Data
        7.3.4 MPI_Status
        7.3.5 Penggunaan MPI_Buffer
        7.3.6 Demo Operasi Blocking MPI
            7.4.6.1 MPI_Wait()
            7.4.6.2 MPI_Test()
            7.4.6.3 MPI_Request_free()
            7.4.6.4 MPI_Waitany()
            7.4.6.5 MPI_Waitall()
            7.4.6.6 MPI_Testany()
            7.4.6.7 MPI_Testall()
        7.4.7 Demo
    7.5 MPI_Sendrecv()
    7.6 Pengecekan MPI
        7.6.1 MPI_Iprobe() dan MPI_Probe()
        7.6.2 MPI_Cancel()
        7.6.3 MPI_Test_cancelled()
    7.7 Komunikasi Persisten
        7.7.1 Membuat Komunikasi Persisten
        7.7.2 Memulai Komunikasi Transmisi
        7.7.3 Menunggu Komunikasi Selesai
        7.7.4 Menghapus Semua Objek Persisten Yang Digunakan
        7.7.5 Demo
    7.8 Deadlock
Bab 8. Komunikasi Kolektif
    8.1 Mengenal Komunikasi Kolektif
    8.2 Sinkronisasi Barrier
    8.3 Broadcast
    8.4 Gather dan Scatter
    8.5 GatherV dan ScatterV
        8.5.1 Demo MPI GatherV
        8.5.2 Demo MPI ScatterV
    8.6 Gather-to-All
    8.7 All-to-All Scatter dan Gather
        8.7.1 Operasi All-to-Allv
    8.8 Operasi Reduksi
        8.8.1 Operasi All-Reduction
        8.8.2 Kustomisasi Operasi Reduksi
    8.9 Reduce-Scatter
    8.10 Scan
        8.10.1 Ekslusif MPI Scan
Bab 9. Manajemen Communicator dan Group
    9.1 Manajemen Communicator
        9.1.1 Operasi Pada Communicator
        9.1.2 Demo
        9.1.3 Split Communicator
    9.2 Manajemen Group
        9.2.1 Informasi Group
        9.2.2 Operasi Group
    9.3 Inter-Communication
        9.3.1 Membuat Proses Inter-Communication
    9.4 Caching
    9.5 Penamaan Objek
Bab 10. Topologi Virtual
    10.1 Apakah Itu Topologi Virtual?
    10.2 Topologi Kartesian
        10.2.1 Membuat Topologi Kartesian
        10.2.2 Mapping Koordinasi Topologi Kartesian Terhadap Rank
        10.2.3 Operasi Shift
        10.2.4 Partisi
    10.3 Topologi Graph
        10.3.1 Membuat Topologi Graph
    10.4 Topologi Distribusi
    10.5 Pengujian dan Testing
        10.5.1 Pengujian Distribusi Kartesian
        10.5.2 Pengujian Distribusi Graph
    10.6 Fungsi Low-Level Pada Topologi
        10.6.1 Demo Topologi Kartesian
        10.6.2 Demo Topologi Graph
Bab 11. MPI I/O
    11.1 Manipulasi File
        11.1.1 Membuka dan Menutup File
        11.1.2 Menghapus File
    11.2 Informasi File
    11.3 File View
    11.4 Akses Data File
        11.4.1 Metode Eksplisit Offset
            11.4.1.1 Blocking  Dengan Kondisi Non Collective
            11.4.1.2 Blocking Dengan Kondisi Collective
            11.4.1.3 Non Blocking & Split Collective  Dengan Kondisi Non Collective
            11.4.1.4 Non Blocking & Split Collective Dengan Kondisi Collective
        11.4.2 Metode Individu Pointer File
            11.4.2.1 Blocking  Dengan Kondisi Non Collective
            11.4.2.2 Blocking Dengan Kondisi Collective
            11.4.2.3 Non Blocking & Split Collective  Dengan Kondisi Non Collective
            11.4.2.4 Non Blocking & Split Collective Dengan Kondisi Collective
        11.4.3 Metode Sharing Pointer File
            11.4.3.1 Blocking  Dengan Kondisi Non Collective
            11.4.3.2 Blocking Dengan Kondisi Collective
            11.4.3.3 Non Blocking & Split Collective  Dengan Kondisi Non Collective
            11.4.3.4 Non Blocking & Split Collective Dengan Kondisi Collective
Bab 12. Komunikasi Satu Sisi
    12.1 Mengenal Komunikasi Satu Sisi
    12.2 Membangun Komunikasi
    12.3 Operasi Pada Komunikasi Satu Sisi
    12.4 Sinkronisasi
        12.4.1 Sinkronisasi Target Aktif
        12.4.2 Lock
    12.5 Demo
        12.5.1 Demo 1
        12.5.2 Demo 2
Bab 13. Memory dan Timer
    13.1 Bekerja dengan Memory
    13.2 Bekerja dengan Timer
Bab 14. Penanganan Error
    14.1 Penanganan Error
    14.2 Menangani Error Pada Communicator
    14.3 Menangani Error Pada Window
    14.4 Menangani Error Pada File
    14.5 Memperoleh Informasi Error
Bab 15. MPI Client-Server
    15.1 Konsep Client-Server
    15.2 MPI Server
    15.3 MPI Client
    15.4 Proses Kirim Dan Terima Data
    15.5 Demo Client-Server
    15.6 Publikasi
Daftar Pustaka
Lampiran
Tentang Penulis

Semoga buku ini bermanfaat


Donate this article:

Tags:

Books | Grid Computing | C/C++ | Linux | Windows

Parallel Programming @Innovation Day, 11 May 2010

by Agus Kurniawan 25. May 2010 17:15

Slide ini adalah presentasi waktu acara Innovation Day, 11 May 2010 Di Balai Kartini Jakarta. Untuk mengunduh, klik link dibawah ini

Innovation Day - Parallel Programming.pdf (1.67 mb)


Donate this article:

Tags:

.NET | C/C++ | Grid Computing

Aktivitas di Awal Bulan Tahun Baru 2009

by Agus Kurniawan 19. January 2009 06:36

Semenjak awal tahun 2009, gw menyibukkan diri untuk lebih fokus ke topik mengenai grid computing dan machine learning walaupun topik ini sudah difokus hampir dua tahun lalu tetapi ini di pressure supaya dapat menghasilkan suatu paper. Dalam dua bulan banyak membaca dua buku yaitu

  • Fault-Tolerant Systems
  • Bio-Inspired Artificial Intelligence - Theories, Methods, and Technologies

buku-1

Fault-Tolerant Systems

Buku ini ditulis oleh Karen and Khrisna. Buku cukup lengkap membahas fault-tolerant system pada grid computing ataupun cluster. Pembahasannya mulai dari bagaimana mendesign storage yang aware terhadap fault-tolerant hingga sistem komunikasi datanya. Tidak kalau menariknya juga dibahasa mengenai algoritma nya, Buku ini isinya meliputi:

  1. Preliminaries
  2. Hardware Fault Tolerance
  3. Information Redundancy
  4. Fault-Tolerant Networks
  5. Software Fault Tolerance
  6. Checkpointing
  7. Case Studies
  8. Fault Detection in Cryptographic Systems
  9. Simulation Techniques

Salah satu fault-tolerant yang memanfaatkan processor untuk detectionnya

fault

Buku setebal 400 halaman dan dipublikasinya oleh Morgan Kaufmann lumayan sebagai bahan referensi untuk scale up skill kita mengenai grid computing terutama fokus ke fault-tolerant. Lengkapnya dapat dilihat disini [V]

Bio-Inspired Artificial Intelligence: Theories, Methods, and Technologies

Buku yang memaparkan bagaimana membangun sistem Artificial Intelligence yang berbasiskan biology maksudnya adalah bagaimana kita membangun sistem kecerdasannya model sepertinya kehidupan didunia seperti manusia ataupun hewan. Dari buku gw banyak mendapatkan informasi mengenai artificial life, terus terang ini topik yang  gw coba perdalam.

Buku ini ditulis oleh Dario dan Claudio yang diterbitkan oleh MIT Press. Buku setebal 659 halaman lengkapnya dapat dilihat disini [V]. Isi buku ini meliputi:

  1. Evolutionary Systems
  2. Cellular Systems
  3. Neural Systems
  4. Developmental Systems
  5. Immune Systems
  6. Behavioral Systems
  7. Collective Systems

Buku ini juga membahas juga implementasi robot-robot yang diinspirasi oleh behavior dari mahluk hidup. Contoh yang bagus diberikan adalah robot salamender. Robot ini dibuat terinspirasi bagaimana salamender dapat dapat berenang di air kemudian naik ke darat. Behavior dari berenang kemudian berjalan inilah dibahas behavioral system

salamender

Ada juga yang bahas robot yang terinspirasi dengan collective system yaitu M-TRAN. Sistem ini terdiri dari robot-robot kecil yang dapat bergabung membentu suatu model baru

mtran

Ilmu ini didasarkan pada model Biological Self-Organization yang memungkin sistem biology terutama kimia dapat saling berinteraksi. Model ini dituangkan dalam math equation sehingga didapatkan implementasi seperti ini.

Implementasi lainnya adalah swarm intelligence dimaan dibuat model robot agent berbasis swarm seperti gambar dibawah ini

swam

Selain kedua buku ini, gw juga sekali-kali membaca mengenai Graph Theory. Topik ini menurutk gw cukup berat karena banyak maen-maen di algoritma dan matematis. Beratnya karena buku ini "mengigit " topik-topik lainnya sehingga perlu membaca topik lain dan kemudian kembali ke buku ini Dohtapi kadang gak kembali lagi lantaran mengerjakan yang sesuatu yang menghasilkan "money" secara instan.  Lebih detailnya dapat dicek disini [V]

1846289696 

Ok, tetap semangat....luruskan niat dan jaga kesehatan....Cowboy


Donate this article:

Tags:

Books | Grid Computing | Machine Learning

Parallel Computing Workshop di MIC UI dan MIC ITB

by Agus Kurniawan 19. January 2009 00:22

Seperti prediksi gw biasanya training/workshop berbasis HPC memang sedikit. Disamping ilmunya cukup dikatakan agak susah dan juga bidangnya cukup spesifik. Padahal dari sudut kebutuhan, saat ini sudah semakin kebutuhan para engineer atau peneliti di bidang HPC.

Pada Workshop HPC di UI peserta memang sedikit dari segi quantiy tapi dari segi quality jauh lebih baik dan fokus. Hampir sebagian dari kalangan akademis dan peneliti. Next session Workshop HPC di bandung yang hampir selisih sedikit dengan tahun baru cina. Tergantung promosinya yang mesti gencar-gencar.

Hanya satu kata, welcome to our club, HPC..


Donate this article:

Tags:

Grid Computing

Come to my Workshop - Parallel Computing

by Agus Kurniawan 15. January 2009 17:25

Kalau tidak berhalangan gw akan mengisi training mengenai Parallel Computing baik batch 1 dan 2. Undangannya seperti gambar dibawah ini

hpcttt-indonesia

Gw sendiri akan deliver materi mengenai Message Passing Interface (MPI) dengan implementasi memanfaatkan MS-MPI dan MPI.NET. Selain ini, gw akan akan trainer bagaimana melakukan deploy aplikasi berbasis MPI ke dalam Windows HPC Server 2008.

Kalau dilihat gambar diatas, materi MPI itu dilaksanakan pada Day 2 tetapi sebenarnya dilaksanakan di Day 3. Gw geseran schedule dengan bos Risman. Maklum sabtu ini gw sudah ada kelas juga di sekolah bahasa di FIB UI. Biar tidak terlalu menyulitkan ketika kuliah s3 di LN Wink


Donate this article:

Tags:

.NET | C/C++ | Grid Computing

Speaking HPC at MSDN & TechNet Day - Bandung

by Agus Kurniawan 2. December 2008 09:14

Tanggal 29 November gw speaking di acara Microsoft MSDN & TechNet Day di kota Bandung. Acara ini banyak dihadiri para IT dan developer professional serta mahasiswa. Gw sendiri bawaan topic "High Performance Computing with Windows HPC Server 2008"

hpc_thumb4

Pada session ini, gw mendemokan bagaimana deploy HPC dengan 4 node dimana 1 node sebagai head node dan 3 node sebagai compute node. Semua running pada OS Windows HPC Server 2008.

msdnbdg18_thumb1

Gw juga menulis beberapa artikel di blog INDC mengenai HPC, cek artikel dibawah ini

Windows HPC Server 2008 Overview
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/16/windows-hpc-server-2008-overview.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 1)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/16/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-1.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 2)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-2.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 3)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-3.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 4)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-4.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 5)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-5.aspx
Setup Your Own HPC Lab Using Windows HPC Server 2008 (part 6)
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/setup-your-own-hpc-lab-using-windows-hpc-server-2008-part-6.aspx
Development Environment for Windows HPC
http://geeks.netindonesia.net/blogs/agus/archive/2008/11/17/development-environment-for-windows-hpc.aspx

Semoga ini bermanfaat bagi semuanya terutama yang ingin belajar Grid Computing

Donate this article:

Tags:

Grid Computing

About Agus Kurniawan

Agus Kurniawan

For more detail about me click here [V]

Please entry your name into my guestbook [V]

My Facebook



Agus Kurniawan is Microsoft MVP (Most Valuable Professional)