Pengertian Komputasi Kinerja Tinggi (HPC)

Komputasi Kinerja Tinggi (high performance computing), adalah sistem komputer yang dibangun agar mampu menyelesaikan beban komputasi yang tak terkira beratnya dalam waktu yang masih bisa diterima.

Beban Komputasi

Saat ini, komputasi berat yang termasuk problem maha menantang (grand challenge problems) antara lain:

  • Simulasi lingkungan skala makro
  • Pencitraan biomedik dan biomekanik
  • Simulasi dinamika fluida
  • Simulasi deformasi struktur benda tegar
  • Desain dan simulasi molekular
  • Desain, simulasi, dan optimasi sistem instrumentasi dan kontrol
  • Intelegensia buatan

Sebagai salah satu ilustrasi, ambil contoh problem dinamika molekular yang berusaha mensimulasi kelakuan sekumpulan molekul dengan menganalisis interaksi atom per atom sesuai dengan rumus mekanika kuantum. Simulasi ini akan melibatkan perhitungan gaya antar atom pada berbagai skala seperti Tabel 1.1 berikut [1]:

Tabel 1.1 Skala waktu gerakan atomik
Motion Time Scale (sec)
Bond stretching 10-14 to 10-13
Elastic vibrations 10-12 to 10-11
Rotations of surface Sidechains 10-11 to 10-10
Hinge bending 10-11 to 10-7
Rotation of buried side chains 10-4 to 1 sec
Allosteric transistions 10-5 to 1 sec
Local denaturations 10-5 to 10 sec

Nampak bahwa gerakan tersingkat adalah bond stretching, dengan skala waktu 10-14 detik. Untuk gerakan ini saja, jika ingin disimulasikan selama 1 mikro detik (10-6 detik) maka diperlukan iterasi sebanyak 108 kali. Sementara itu, suatu simulasi yang lumayan komplit bisa melibatkan sekitar 100.000 atom. Untuk setiap atom, gerakannya dihitung dengan mempertimbangkan interaksinya terhadap 99.999 atom lain, namun biasanya ada radius interaksi efektif, sehingga hanya sekitar 10.000 atom tetangga yang diperhitungkan. Sesuai dengan detail rumus mekanika kuantum yang digunakan, tiap interaksi antar atom memerlukan sekitar 10 kalkulasi floating point. Karena komputer masa kini mampu melakukan kalkulasi hingga 2 Giga Flops ( 5 x 10-10 detik per operasi), gerakan 1 atom ini mampu dihitung dalam waktu sekitar : 10.000 x 10 x 5 x 10-10 detik = 5 x 10-5 detik. Dengan demikian, secara total simulasi akan makan waktu = 108 x 100.000 x 5 x 10-5 detik = 5 x 108 detik, hampir mencapai 16 tahun !

Teknik Komputasi Kinerja Tinggi

Untuk mempersingkat waktu perhitungan ini, ada dua cara umum yakni:

  1. Membuat prosesor yang lebih cepat.
  2. Melakukan kalkulasi secara paralel dengan banyak prosesor.

Untuk cara pertama, jalur elektronik prosesor harus diperkecil agar sinyal mengalir makin pendek dan arus makin kecil. Sayangnya, teknologi manufaktur semikonduktor saat ini masih memakai teknik litografi dan sudah mendekati limitnya. Sebagai informasi, chip prosesor terkini (Intel i7) telah mencapai skala 45 nano meter. Jika diperkecil lagi, kemungkinan kesalahan dalam proses manufaktur membesar sehingga keandalannya makin turun.

Dengan demikian, harapan mempercepat komputasi yang masih terbuka lebar hanyalah dengan cara paralelisme. Pada paradigma ini, algoritma program harus dipecah menjadi beberapa lajur (thread) yang bisa dikerjakan secara bersamaan. Masing-masing lajur akan dikerjakan oleh satu prosesor, dan nanti hasil akhirnya dikumpulkan kembali. Secara teoritis, jika sebuah beban mampu diselesaikan oleh satu prosesor dalam waktu T, maka N buah prosesor akan mampu menyelesaikannya dalam waktu T/N.

Untuk mewujudkan komputasi paralel, diperlukan dukungan perangkat keras yang menyediakan banyak prosesor, dan juga sistem operasi untuk membagi beban komputasi ke seluruh prosesor tersebut. Sistem ini ternyata tidak mudah, sehingga pada awalnya, komputasi paralel hanya bisa dinikmati oleh sistem yang mahal dan besar seperti komputer super. Untunglah dengan berkembangnya jaman, komputasi paralel mulai bisa ditemukan pada komputer biasa.

Multiprocessor dan Multicore

Pada pasar PC, implementasi awal paralelisme adalah dengan memasang banyak CPU dalam satu komputer (multi-processor) (misal komputer dengan dual Pentium Pro). Kini, hal ini juga dicapai dengan memperbanyak jumlah prosesor dalam satu CPU (multi-core), mulai dari dual core dan kini quad core (misal Intel Xeon, Intel i7, AMD Phenom). Untuk komputer multi-processor atau multi-core ini, sistem operasi modern menyediakan fasilitas multithreading, atau symetric multi processing (SMP). Linux telah mendukung hal ini dari awal, sementara Windows memilikinya sejak Windows NT. Untuk melakukan pemrograman paralel pada sistem ini, bisa digunakan OpenMP.

Kluster komputer

Cara lebih kolosal untuk memperbanyak jumlah prosesor adalah dengan membangun komputer kluster. Pada sistem ini beberapa komputer dikoneksikan melalui jaringan, sehingga dapat bergotong royong menghitung beban komputasi. Salah satu model adalah sistem Beowulf, yang dapat dibangun dari komputer biasa dan dikoordinasi dengan sistem operasi Linux. Sebuah kluster Beowulf bisa memiliki hingga 1024 node, sehingga secaar teoritis, contoh kasus simulasi molekular sebelumnya bisa dihitung dalam waktu sekitar 1 minggu. Kekurangannya, sistem kluster ini besar, mahal dan sulit pembangunan maupun pemeliharaannya. Untuk sistem kluster, sistem operasi biasanya harus dilengkapi dengan perangkat madya (middle ware) yang menyediakan komunikasi antar proses melalui jaringan. Beberapa perangkat madya terkenal adalah Parallel Virtual Machine (PVM) atau Message Passing Interface (MPI).

GPGPU

Sementara itu dari jalan lain, berkembang teknologi Graphics Processing Unit (GPU) yang aslinya bertugas membantu CPU (sebagai co-processor) untuk mempercepat tampilan 3 dimensi (3D). GPU memiliki arsitektur khusus guna memproses pixel-pixel grafik secara parallel. Di dorong oleh kebutuhan KKT, maka GPU didorong menjadi General Purpose Graphics Processing Unit (GPGPU) yang juga dapat melakukan perhitungan matematis secara umum. Saat ini, GPU termaju (misal NVIDIA GTX 285) memiliki 240 core, dan dapat digabung hingga 3 buah GPU dalam satu komputer (3 way SLI). Jelas bahwa GPU merupakan cara memperbanyak core yang lebih murah dan ringkas dibanding dengan komputer kluster. Dukungan perangkat lunak untuk GPU paling hangat saat ini adalah CUDA, namun dalam waktu dekat, nampaknya akan muncul OpenCL.

Pustaka

  1. Phillips, James; High Performance Computing with CUDA – Case Study: Molecular Dynamics; Super Computing Workshop; 2007

Repost dari http://computational.engineering.or.id/Komputasi_Kinerja_Tinggi

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s