8 minute read

Mengenal Sistem Komputasi Kinerja Tinggi

MENGENAL SISTEM KOMPUTASI KINERJA TINGGI P U S A T S A I N S D A N T E K N O L O G I A T M O S F E R

sumber gambar : University of Bordeaux

Advertisement

"IT adalah alutsista (alat utama sistem pertahanan) untuk kegiatan penelitian dan pengembangan sains dan teknologi atmosfer", begitu kira-kira pernyataan Kepala Bidang Program dan Fasilitas Dr. Didi Satiadi M.Sc pada pertemuan koordinasi tim Laboratorium Komputasi Pusat Sains dan Teknologi Atmosfer. IT yang dimaksud pada pernyataan tersebut adalah information Technology atau Teknologi Informasi (dalam Bahasa Indonesia). Teknologi Informasi, menurut wikipedia (https://id.wikipedia.org/wiki/Tekno logi_informasi), adalah istilah umum untuk teknologi apapun yang membantu manusia dalam membuat, mengubah, menyimpan, mengomunikasikan dan/atau menyebarkan informasi. Analogi alutsista pada pernyataan tersebut kemungkinan mengacu pada alat atau perangkat.

Pertanyaannya adalah apakah sistem komputasi kinerja tinggi termasuk teknologi informasi? Berdasarkan definisi dari wikipedia yang telah dikutip, bisa jadi jawabannya "iya, termasuk teknologi informasi". Sistem komputasi kinerja tinggi adalah teknologi yang dapat digunakan untuk membuat, mengubah, dan menyebarkan informasi. Pengembangan dan kajian mengenai sistem komputasi kinerja tinggi merupakan ranah computer science atau informatika. Artikel ini akan membahas mengenai sistem komputasi kinerja tinggi, mulai dari deskripsi singkat apa itu sistem komputasi kinerja tinggi, dari sisi perangkat keras dan perangkat lunak, teknologi, serta sistem komputasi kinerja tinggi yang dimiliki Pusat Sains dan Teknologi Atmosfer baik spesifikasi maupun fungsinya. Tentang Sistem Komputasi Kinerja Tinggi Komputasi kinerja tinggi atau High Performance Computing(HPC) adalah sebuah sistem komputer yang memiliki lebih dari satu prosesor, atau multi processors dan many processors. Di masa-masa awal diciptakan, komputer hanya memiliki single processor (dalam satu chip hanya terdapat satu core prosesor), yaitu komponen utama dari sistem komputer di samping komponen lain, seperti memori RAM dan media penyimpan permanen (Harddisk). Kecepatan prosesor meningkat setiap tahun, rata-rata peningkatan kecepatan 25% per tahun pada periode 1978-1988, 52% per tahun pada periode 1986-2003, dan pada periode 2003-2010 peningkatan kecepatan sebesar 22% per tahun, sebagaimana ditunjukkan pada Gambar 1. Namun, kecepatan single processor tidak lagi meningkat secara signifikan sejak tahun 2010 sampai sekarang. Para vendor prosesor lebih memilih mengembangkan prosesor ke arah penambahan jumlah prosesor pada satu chip, yang dikenal dengan sebutan multicore. Pertimbangan lain bagi vendor untuk tidak meningkatkan kecepatan pada satu prosesor adalah tidak optimalnya energi listrik yang dikonsumsi oleh prosesor. Alih-alih meningkatkan kecepatan kinerja prosesor, energi listrik tersebut malah terkonversi menjadi energi panas yang berlebih, sehingga perlu pereda panas. Hal ini masih menjadi kajian yang menarik hingga saat ini. Multicore tidak serta merta meningkatkan kinerja sistem komputasi. Multicore merupakan usaha dalam meningkatkan kinerja dari sisi perangkat keras, namun ada komponen lain yang tak kalah penting untuk meningkatkan kinerja komputasi yaitu perangkat lunak. Perubahan arah pengembangan chip prosesor oleh "IT ADALAH ALUTSISTA (ALAT UTAMA SISTEM PERTAHANAN) UNTUK KEGIATAN PENELITIAN DAN PENGEMBANGAN SAINS DAN TEKNOLOGI ATMOSFER"

vendor mengubah paradigma pengembangan perangkat lunak yang semula serial menjadi paralel. Perangkat lunak yang berkembang sebelum adanya multicore akan tetap menggunakan hanya satu prosesor, sementara prosesor lainnya berada dalam posisi idle. Untuk mengoptimalkan sistem komputer yang memiliki multicore adalah dengan melakukan re-enginering perangkat lunak atau membangun kembali yang sudah ada. Dari penjelasan tersebut komputasi kinerja tinggi dari sudut pandang perangkat lunak adalah pengembangan perangkat lunak yang mampu mengoptimalkan jumlah prosesor yang ada pada satu sistem komputer. Ada dua teknik utama untuk mengoptimalkan komputer dengan multicore, yaitu shared memory dan distributed memor.y Shared memory adalah teknik mengoptimalkan jumlah prosesor dalam sistem komputer tunggal. Sedangkan distributed memory adalah teknik mengoptimalkan jumlah prosesor yang berada di beberapa sistem komputer yang terpisah, atau yang dikenal juga sebagai cluster. Kedua teknik tersebut dalam upgrade perangkat keras memunculkan istilah scale up dan scale out. Scale up berarti menambah resource pada sistem komputer tunggal, seperti menambah prosesor atau mengganti prosesor dengan spesifikasi yang lebih tinggi, sedangkan scale out adalah penambahan sistem komputer atau menambah server baru pada sistem cluster yang sudah ada. Penambahan dengan resource scale up sangat terbatas terhadap teknologi sistem komputer yang sudah ada seperti jumlah slot soket dan slot memory, sedangkan penambahan resource dengan cara scale out dapat dilakukan tak terbatas selama antar sistem komputer saling kompatibel pada cluster. Teknik shared memory dan distributed memory diimplementasikan dalam teknologi pemrograman yang berbeda. Ciri utama teknik shared memory adalah thread, yang diciptakan (pada) sejumlah prosesor dan mengakses alokasi memori yang sama. Implementasi teknologi pemrograman pada shared memory yang paling mendasar adalah pthread (POSIX thread). Bahasa pemograman C mendukung teknologi ini Selain pthread, teknik shared memory diimplementasikan dengan openMP. Teknik ini memiliki level abstraksi yang tinggi dibandingkan pthread dan memudahkan programmer dalam mengembangkan perangkatan lunak untuk komputasi kinerja tinggi. Teknologi implementasi lainnya adalah Intel TBB dan Cilk. Bahasa pemrograman yang mendukung teknologi ini salah satunya adalah C++. Implementasi teknik distributed memory berbeda dengan shared memory. Yang paling populer untuk teknik ini adalah Message Passing Interface (MPI). Konsep teknik distributed memory adalah menciptakan proses independen yang dieksekusi oleh sejumlah prosesor, masing-masing proses mengakses alokasi memori yang berbeda, dan untuk menyatukan hasil masing-masing proses yang independen tersebut dilakukan dengan cara mengirimkan "message" pada satu proses utama. MPI mengimplementasikan konsep tersebut, dengan membuat banyak proses, terdapat satu proses yang akan mengumpulkan hasil dari semua proses yang dijalankan. Komunikasi antara proses utama dan proses lainnya adalah dengan mengirimkan "message". MPI didukung oleh bahasa pemrograman C dan Fortran. MPI juga didukung bahasa pemrograman scripting seperti python, walaupun dari sisi interface dijembatani oleh package yang diimplementasikan oleh C atau Fortran yang telah mendukung MPI. Gambar 1. Perkembangan kecepatan single processor komputer dari tahun ke tahun (1978-2010) Sistem Komputasi Kinerja Tinggi di PSTA mengadopsi teknik distributed memory dengan membangun infrastruktur cluster, yang dikenal HPC Cluster. HPC cluster dibagi menjadi dua kelompok server, yaitu server yang berfungsi sebagai master node dan compute node. Master node difungsikan sebagai server manajemen yang mengatur akses pengguna, alokasi resource, dan konfigurasi dalam penambahan resource. Compute nodeadalahserver yang digunakan untuk menjalankan perangkat lunak komputasi kinerja tinggi. Sistem Komputasi Kinerja Tinggi di Pusat Sains dan Teknologi Atmosfer (PSTA)

PSTA memiliki 3 sistem HPC komputasi dan satu sistem HPC untuk big data analytic. Spesifikasi HPC cluster dari jumlah CPU (thread) adalah 3520 thread. Tentu terlalu sederhana bila kinerja HPC hanya dilihat dari jumlah thread, mengingat kinerja HPC dipengaruhi juga oleh arsitektur interkoneksi server itu sendiri dan interkoneksi antar server. Kinerja HPC cluster biasanya dihitung dengan satuan floating point operations per second (FLOPS). Selain CPU, memori RAM yang dimiliki oleh setiap server pada HPC cluster PSTA memiliki spesifikasi sebesar 64 GB. Spesifikasi untuk sistem HPC big data analytic memiliki CPU (thread) total sebanyak 752 thread, dengan spesifikasi memori sebesar 64 GB dan 300 GB, serta media penyimpanan sebesar1,8 PB.

Untuk mempermudah manajemen HPC, HPC di PSTA menggunakan perangkat lunak diantaranya adalah ROCKS, OpenHPC dan Cloudera. ROCKS adalah perangkat lunak HPC yang diimplementasikan dalam bentuk OS. Kemudahan yang didapat dari manajemen HPC dengan ROCKS diantaranya adalah penambahan pengguna yang mengakses HPC, sharing folder antar node dan penambahan node baru serta kelengkapan library, terutama library untuk aplikasi saintifik khususnya di bidang sains atmosfer. OpenHPC adalah alternatif perangkat lunak manajemen HPC, kemudahan yang ada pada ROCKS, terdapat juga pada OpenHPC, meskipun berbeda pada level teknis. Baik ROCKS maupun OpenHPC keduanya memiliki manajemen untuk menjalankan aplikasi, salah satunya adalah slurm. Sedangkan untuk manajemen HPC cluster untuk Big Data Analytic PSTA menggunakan Cloudera yang memberikan kemudahan dalam pengaturan pengguna dan resource. Selain kemudahan yang diberikan, Cloudera juga ramah pengguna karena memiliki berbagai antarmuka untuk mengoperasikan HPC cluster seperti, HUE, dan sistem monitoring untuk melihat kondisi HPC.

HPC cluster di PSTA digunakan untuk penelitian dan pengembangan model atmosfer berbasis numerik. Kondisi atmosfer diformulasikan dalam persamaanpersamaan matematika berdasarkan hukum-hukum fisika dan dikembangkan dalam bentuk perangkat lunak sehingga dapat dijalankan pada HPC cluster. Model Atmosfer yang dijalankan antara lain Weather Research and Forecast (WRF) dan Conformal-Cubic Atmospheric Model (CCAM). WRF digunakan sebagai model untuk menghasilkan prediksi cuaca jangka pendek sedangkan CCAM digunakan untuk menghasilkan prediksi cuaca jangka menengah dan panjang. Semakin hari teknologi secara umum semakin berkembang, tak terkecuali sistem komputasi kinerja tinggi. Sistem komputasi kinerja tinggi yang telah dipaparkan adalah sistem komputasi yang berbasis CPU atau prosesor yang merupakan komponen utama untuk memperoleh komputasi berkinerja tinggi. Perkembangan sistem komputasi kinerja tinggi dari sisi perangkat keras tidak lagi bergantung pada CPU, tapi telah berkembang pada Graphic Processing Unit (GPU). GPU yang semula adalah komponen pada sistem komputer yang berfungsi sebagai pemroses citra, yang memiliki kecepatan komputasi sangat tinggi, kini dikembangkan sebagai komponen untuk sistem komputasi kinerja tinggi. GPU menjadi komponen general purpose yang dapat dibebani pekerjaan komputasi sebagaimana CPU dengan cara kerja yang berbeda. GPU memiliki kelebihan dari CPU dari sisi jumlah thread dalam satu chip. Chip CPU memiliki thread maksimal untuk saat ini dalam skala puluhan, sementara GPU memiliki jumlah ratusan bahkan ribuan. Walaupun demikian, CPU mampu melakukan perintah yang kompleks bila dibandingkan GPU. GPU hanya dapat melakukan satu perintah seragam namun dalam jumlah yangbanyak. Perkembangan Sistem Komputasi Kinerja Tinggi

Perkembangan sistem komputasi kinerja tinggi saat ini adalah sistem komputasi yang memadukan CPU dan GPU yang dikenal sebagai sistem komputasi hibrid. Sistem komputasi hibrid akan membagi perintahperintah komputasi menjadi dua. Perintah komputasi yang kompleks dan dilakukan secara sekuensial/berurutan akan dikerjakan oleh CPU, sedangkan perintah sederhana namun dengan jumlah yang banyak dan dilakukan secara bersamaan dikerjakan oleh GPU. Implementasi sistem komputasi hibrid ini salah satunya adalah dengan Compute Unified Device Architecture (CUDA) milik vendor GPU ternama yaitu NVIDIA yang didukung oleh bahasa pemrograman Cdan bahkan python.

Apakah perangkat lunak yang sudah ada dan berjalan di atas sistem komputasi kinerja tinggi berbasis CPU bisa optimal bila berjalan diatas sistem komputasi kinerja tinggi hibrid (CPU+GPU)? Jawabannya tidak. Perangkat lunak tersebut harus dibangun ulang dan mengikuti konsep pemrograman sistem komputasi kinerja tinggi hibrid. Hal ini lah yang menjadi alasan utama PSTA belum mengadopsi sistem komputasi hibrid sebagai sistem komputasi kinerja tinggi, yang juga merupakan tantangan bagi para peneliti dan perekayasa PSTA, sebagai Pusat Unggulan Iptek (PUI) pemodelan atmosfer, untuk mengembangkan model atmosfer yang bisa berjalan di atas sistem komputasi hibrid.

This article is from: