MD APLIKASI SIMULASI DINAMIKA MOLEKULAR DENGAN...
-
Upload
nguyenxuyen -
Category
Documents
-
view
225 -
download
1
Transcript of MD APLIKASI SIMULASI DINAMIKA MOLEKULAR DENGAN...
MD CLOUD : USER INTERFACE APLIKASI SIMULASI DINAMIKA MOLEKULAR DENGAN
LINGKUNGAN KOMPUTASI HPC DINAMIS
M. Hasyim Ratsanjani Heru Suhartanto
FAKULTAS ILMU KOMPUTER PROGRAM MAGISTER ILMU KOMPUTER
DEPOK
i Universitas Indonesia
DAFTAR ISI
DAFTAR ISI ........................................................................................................... i DAFTAR GAMBAR .............................................................................................. i DAFTAR TABEL ................................................................................................ iii DAFTAR LAMPIRAN ........................................................................................ iii BAB 1 ...................................................................................................................... 4 ANALISIS DAN PERANCANGAN ..................................................................... 4
1.1 Kebutuhan Sistem ........................................................................................... 4 4.2 Ide CloudMD .................................................................................................. 5 4.3 Arsitektur CloudMD ....................................................................................... 6 4.4 Desain Aplikasi CloudMD ............................................................................. 7 4.4.1 REST API-backend ..................................................................................... 9 4.4.2 Frontend .................................................................................................... 13
4.5 Pemodelan Aplikasi CloudMD..................................................................... 13 4.5.1 Use Case Diagram .................................................................................... 13 4.5.2 Class Diagram .......................................................................................... 16
4.6 Lingkungan Komputasi cloudMD ................................................................ 17 4.7 Desain Topologi Jaringan ............................................................................. 19
BAB 2 .................................................................................................................... 21 IMPLEMENTASI DAN EVALUASI ................................................................. 21
2. 1 Implementasi Aplikasi Web CloudMD ....................................................... 21 5.1.1 Sisi User ................................................................................................... 21 5.1.2 Sisi Admin ................................................................................................ 27
5.2 Evaluasi ........................................................................................................ 34 5.2.1 Evaluasi Integrasi Lingkungan Komputasi .............................................. 34
DAFTAR REFERENSI ....................................................................................... 41 LAMPIRAN .......................................................................................................... 43
DAFTAR GAMBAR
Gambar 4.1 Ide Model SAAS-Cloud ...................................................................... 5 Gambar 4.2 Desain arsitektur CloudMD ................................................................ 6 Gambar 4.3 Desain Aplikasi CloudMD .................................................................. 8 Gambar 4.4 Use case Diagram ............................................................................. 14 Gambar 4.5 Class Diagram................................................................................... 16 Gambar 4.6 Model Cluster Mini ........................................................................... 18 Gambar 4.7 Desain Jaringan ................................................................................. 20 Gambar 5.1 Home page dan login form. ............................................................... 22 Gambar 5.2 Halaman utama setelah login ............................................................ 22 Gambar 5.3 Merubah Informasi Profile ................................................................ 23 Gambar 5.4 Daftar Eksperimen............................................................................. 23
ii Universitas Indonesia
Gambar 5.5 Membuat Eksperimen Baru ............................................................... 24 Gambar 5.6 Daftar File Pada Suatu Eksperimen .................................................. 24 Gambar 5.7 Upload File ke Dalam Folder Suatu Eksperimen .............................. 25 Gambar 5.8 Pembacaan dan Pembuatan File Bertipe ‘plain/text’ ........................ 25 Gambar 5.9 Mengunduh File-file Eksperimen...................................................... 25 Gambar 5.10 Daftar Job Eksperimen .................................................................... 26 Gambar 5.11 Pengiriman Intruksi Eksekusi Job ................................................... 26 Gambar 5.12 Log Eksekusi Job ............................................................................ 27 Gambar 5.13 Manajemen Lingkungan Komputasi ............................................... 28 Gambar 5.14 Menambahkan Lingkungan Komputasi Baru ................................. 29 Gambar 5.15 Pengecekan Lingkungan Komputasi ............................................... 29 Gambar 5.16 Manajemen Aplikasi ....................................................................... 30 Gambar 5.17 Penambahan Aplikasi ...................................................................... 30 Gambar 5.18 Manajemen Command Aplikasi ...................................................... 31 Gambar 5.19 Penambahan Command Aplikasi .................................................... 31 Gambar 5.20 Manajemen Argumen Command .................................................... 32 Gambar 5.21 Pengaturan Pengguna ...................................................................... 33 Gambar 5.22 Penambahan Pengguna .................................................................... 33 Gambar 5.23 Langkah-langkah Integrasi Lingkungan Komputasi ....................... 35 Gambar 5.24 Isian Penambahan Lingkungan Komputasi Baru ............................ 35 Gambar 5.25 Cek Integrasi Lingkungan Komputasi............................................. 36 Gambar 5.26 Informasi Pengecekan Integrasi Lingkungan Komputasi ............... 36 Gambar 5.27 Menambahkan Command Aplikasi ................................................. 37 Gambar 5.28 Contoh Pengisian Eksperimen Baru ................................................ 38 Gambar 5.29 Contoh Daftar File yang diunggah .................................................. 38 Gambar 5.30 Submit Job ....................................................................................... 39 Gambar 5.31 Job Tersubmit .................................................................................. 39 Gambar 5.32 Log Eksekusi Job ............................................................................ 39 Gambar 5.33 Mendownload File Hasil Eksekusi Job ........................................... 40
iii Universitas Indonesia
DAFTAR TABEL
Table 4.1 Layanan API CloudMD berbasis HTTP.................................................. 9 Table 4.2 Komponen serta tool bagian back-end .................................................. 12 Table 4.3 Komponen serta tool bagian front-end.................................................. 13 Table 4.4 Deskripsi use case ................................................................................. 14 Table 4.5 Requirement Lingkungan komputasi untuk integrasi ........................... 18 Table 4.6 Spesifikasi model cluster mini .............................................................. 18 Table 4.7 Spesifikasi lingkungan komputasi GPU ............................................... 19 Table 5.1 Tipe Argumen ....................................................................................... 32 Table 5.2 Contoh Pengisian Argumen Command ................................................ 37
DAFTAR LAMPIRAN
Lampiran A. Setup Lingkungan Komputasi Cluster ............................................. 43 Lampiran B. Setup Lingkungan Komputasi GPU................................................. 46 Lampiran C. Instalasi CloudMD ........................................................................... 47 Lampiran D. Instalasi Gromacs pada Cluster dan GPU ........................................ 49 Lampiran E. Instalasi Amber pada Cluster dan GPU ........................................... 50 Lampiran F. Persiapan Eksperimen Gromacs ....................................................... 51 Lampiran G. Persiapan Eksperimen Amber.......................................................... 54
4 Universitas Indonesia
BAB 1
ANALISIS DAN PERANCANGAN
1.1 Kebutuhan Sistem
Dalam melakukan simulasi dinamika molekular, dibutuhkan sumber daya
komputasi berkinerja tinggi, agar dapat mengakomodir kompleksitas proses serta
data yang terlibat. Beberapa permasalahan yang timbul, yakni:
Infrastruktur HPC yang terbatas.
Mekanisme penggunaan sumber daya HPC yang menyulitkan.
Integrasi fasilitas HPC baru ke dalam infrastruktur cloud.
Permasalahan pertama dapat teratasi dengan adanya layanan cloud yang
mampu men-service kebutuhan sumber daya komputasi yang tinggi, seperti
Amazon EC2, Microsoft Azure, hingga Google AppEngine. Akan tetapi
kemudian muncul kesulitan terkait mekanisme akses berbagai macam layanan
HPC-cloud tersebut, mengingat fakta bahwa para peneliti ilmiah tersebut berasal
dari berbagai macam disiplin ilmu pengetahuan yang tidak memiliki latar
belakang IT yang cukup. Sebagian besar cloud-HPC provider tersebut
mengadopsi model IAAS dan PAAS, dimana customer diharuskan memiliki
kemampuan sistem administrator untuk menggunakan layanan cloud-HPC
tersebut.
Sehingga dari permasalahan tersebut dibutuhkan solusi berupa cloud-
based HPC berbasis layanan Software-as-a-Service.
Solusi tersebut diharapkan mampu melayani kebutuhan user akan sumber
daya komputasi HPC.
Solusi tersebut memiliki mekanisme akses yang lebih mudah dan dengan
hasil yang tidak berbeda dibandingkan dengan mekanisme akses
konvensional.
Solusi tersebut mampu menangani adanya integrasi lingkungan komputasi
baru, tanpa melakukan perubahan terhadap kode program.
Untuk memenuhi kebutuhan tersebut, kemudian dilakukan analisis terkait
arsitektur cloud-based HPC, serta desain sistem cloud-based HPC.
5
4.2 Ide CloudMD
Ide platform CloudMD berasal dari permasalahan sulitnya integrasi
lingkungan HPC baru maupun aplikasi penelitian ke dalam infrastruktur SAAS
cloud yang telah ada. Infrastruktur scloud[1] yang telah dikembangkan
sebelumnya, memang telah mampu memberikan mekanisme akses yang baik
terhadap aplikasi penelitian ilmiah yang berjalan di lingkungan HPC. Akan tetapi,
infrastruktur tersebut belum didesain untuk mengakomodasi proses integrasi
lingkungan komputasi HPC baru maupun aplikasi penelitian. Sehingga
pengintegrasian tersebut harus dilakukan dengan merombak kode program.
Mengatasi masalah tersebut, dalam tesis ini mengusulkan pengembangan
platform CloudMD dimana lingkungan komputasi HPC baru memungkinkan
untuk diintegrasikan ke dalam infrastruktur CloudMD tersebut. Integrasi tersebut
dilakukan oleh admin CloudMD dengan proses integrasi dilakukan dalam antar-
muka web, sehingga dapat dilakukan dengan cepat dan mudah.
Gambar 4.1 Ide Model SAAS-Cloud
Model CloudMD yang diusulkan diharapkan mampu menangani adanya
penambahan lingkungan komputasi komputasi baru serta aplikasi penelitian ke
dalamnya, tanpa melakukan perubahan terhadap kode program. Disamping itu,
desain platform CloudMD tersebut harus memiliki fitur untuk menangani
kebutuhan pengguna dalam menjalankan aplikasi tersebut. Mengadopsi model
Cloud Computing Software-as-a-Service(SAAS), model tersebut kemudian
diimplementasikan dan ditampilkan melalui antar muka aplikasi berbasis web.
Integrasi Sumber daya HPC
Admin CloudMD
CloudMD Interface
Internet
Aplikasi Penelitian Ilmiah
6
4.3 Arsitektur CloudMD
Setelah melakukan studi literatur yang berkaitan dengan arsitektur SAAS
Cloud-based HPC, serta analisis kebutuhan yang disesuaikan dengan infrastruktur
komputasi yang dimiliki oleh fasilkom Universitas Indonesia, maka kemudian
diusulkan arsitektur CloudMD yang dianggap sesuai dan cocok dengan kebutuhan
eksperimen ilmiah serta ketersedian infrastruktur di Universitas Indonesia.
Arsitektur tersebut terdiri dari lima lapisan, yakni; Insfrastruktur, Platform,
Application, Service, serta User.
Gambar 4.2 Desain arsitektur CloudMD
Pada lapisan User Layer terdiri dari pengguna layanan CloudMD, yang
terdiri dari provider dan consumer. Provider merupakan penyedia layanan cloud-
based HPC dalam hal ini adalah laboratorium Architecture & High Performance
Computing FASILKOM-UI. Sedangkan consumer adalah para peneliti dengan
domain penelitian dinamika molekular.
User Layer
Service Layer
Application Layer
Platform Layer
Infrastruktur
Computation Environment SAAS Cloud Environment
Amber Gromacs
MPICH2 Cuda
Linux
Cluster MPI GPU Web Server
Java
Tomcat MySQL
Aplikasi Web
SAAS Private Cloud
Grunt
7
Universitas Indonesia
Pada lapisan Service layer merepresentasikan layanan yang diberikan oleh
cloud-based HPC. Dimana layanan aplikasi serta sumber daya HPC dilakukan
melalui mekanise SAAS(Software as a Service). Model implementasi yang
dilakukan adalah private-cloud, dengan hanya pengguna tertentu yang memiliki
hak akses ke infrastruktur cloud Computing.
Pada lapisan aplication, platform dan infrastruktur dibagi menjadi dua
bagian, yakni computation environment dan SAAS-cloud environment.
Computation environment merujuk kepada sumber daya komputasi HPC yang
akan di-share dalam mekanisme cloud computing. Sedangkan SAAS cloud
environment merepresentasikan lingkungan SAAS cloud yang digunakan dalam
menyediakan sumber daya komputasi HPC.
Pada layer application di bagian computation evironment terdiri dari
Amber dan Gromacs, yang mana merupakan aplikasi simulasi dinamika moleculer
yang dapat berjalan di berbagai macam lingkungan HPC. Sedangkan pada bagian
lingkungan SAAS-cloud terdiri dari Aplikasi Web Interface.
Pada layer platform di bagian computation evironment terdiri dari MPICH,
CUDA, dan linux system. MPICH2 merupakan platform pemrograman parallel
yang menggunakan standar massage passing yang mana dikategorikan sebagai
large-scale paralellization. Sedangkan cuda merupakan platform untuk
pemrograman parallel berbasis Graphical Processing Unit(GPU), yang
dikeluarkan oleh vendor NVIDIA. Adapun pada bagian lingkungan SAAS-cloud
terdiri dari Tomcat, MySQL, grunt dan Java EE. Tomcat merupakan platform
open source untuk menjalankan aplikasi java web. Sedangkan MySQL merupakan
platform database open source.
Pada layer infrastruktur di bagian computation evironment terdiri dari
Cluster MPI serta GPU. Sedangkan pada bagian SAAS cloud environment terdiri
dari Web server.
4.4 Desain Aplikasi CloudMD
Platform aplikasi CloudMD merupakan model cloud computing SAAS,
dimana di dalamnya menyediakan layanan aplikasi simulasi dinamika molekular
yang berjalan di atas sumber daya HPC. Aplikasi CloudMD memiliki antar muka
berbasis web yang memfasilitasi dilakukannya simulasi dinamika molekular
8
menggunakan Amber serta Gromacs di atas lingkungan komputasi cluster MPI
dan GPU.
Gambar 4.3 Desain Aplikasi CloudMD
Dalam desain aplikasi CloudMD, antara lingkungan CloudMD dan
lingkungan komputasi merupakan lingkungan yang terpisah, yang mana tidak
terdapat sharing storage antar lingkungan tersebut. Manajemen file yang terjadi
antara lingkungan CloudMD dan lingkungan komputasi dilakukan melalui
mekanisme FTP, dimana lingkungan komputasi merupakan FTP-server
sedangkan CloudMD menjadi FTP-client. Hal ini menawarkan fleksibilitas
manajemen file antar lingkungan komputasi sehingga memungkinkan
dilakukannya integrasi lingkungan komputasi baru ke dalam CloudMD secara
lebih mudah.
Terdapat alternatif pendekatan manajemen file lain selain FTP Client-
server, yakni pendekatan file-sharing seperti yang dilakukan dalam Network File
System(NFS). Dimana pendekatan tersebut memungkinkan suatu komputer
melakukan proses mount direktori atau peralatan pada komputer lain. Pendekatan
sharing tersebut cocok untuk manajemen file antar node pada sebuah lingkungan
komputasi multi-node. Namun untuk manajemen file pada lingkungan komputasi
yang terpisah, maka konfigurasi tambahan yang dilakukan dalam pendekatan
9
Universitas Indonesia
tersebut akan menyulitkan proses integrasi dua lingkungan komputasi karena
kurangnya fleksibilitas. Sehingga pendekatan sharing tersebut dipandang tidak
sesuai dengan fleksibilitas manajemen file antar lingkungan komputasi yang
dibutuhkan oleh platform CloudMD.
Dalam lingkungan CloudMD terdapat dua aplikasi terpisah yakni front-
end dan REST API-backend. REST API-backend merupakan aplikasi RESTFUL
web service yang menyediakan layanan antara lain; akses remote shell,
manajemen file, serta interaksi ke database. Sedangkan bagian front-end
merupakan interface yang memanfaatkan API service yang disediakan oleh Rest-
backend. Desain aplikasi berbasis API webservice tersebut bertujuan agar kedepan
dimungkinkan dilakukan pengembangan ke dalam platform lain seperti aplikasi
mobile, yang dapat langsung memanfaatkan API yang disediakan tersebut.
4.4.1 REST API-backend
Aplikasi bagian backend dibangun menggunakan bahasa pemrograman
java dengan framework spring, dimana database yang digunakan adalah MySql.
Aplikasi ini merupakan webservice RESTFUL dimana menyediakan API
(Application Programming Interface) berbasis HTTP dengan data yang dihasilkan
dari aplikasi backend tersebut berformat json.
Di dalam aplikasi backend disediakan mekanisme layanan terkait
penerimaan dan pengiriman data, pengaturan file-file, eksekusi perintah dalam
lingkungan komputasi, otentikasi, dan lain-lainnya. Selengkapnya terkait
mekanisme layanan API backend ditunjukkan di table 4.
Table 4.1 Layanan API CloudMD berbasis HTTP
No Path HTTP
Request
Data dan argument
1 api/application GET List object json aplikasi
2 api/application/{id} GET Object json aplikasi,
Long id aplikasi
3 api/application POST Object json aplikasi
4 api/application/{id} PUT Object json aplikasi,
Long id aplikasi
10
Universitas Indonesia
5 api/application/{id} DELETE Long id aplikasi
6 api/environtment GET List object json environment
7 api/environtment/{id} GET Object json environment,
Long id environment
8 api/environtment POST Object json environment
9 api/environtment/{id} PUT Object json environment,
Long id environment
10 api/environtment/{id} DELETE Long id environment
11 api/commandstep GET List object json commandstep
12 api/commandstep/applicati
on/{id}
GET List object json commandstep,
Long id aplikasi
13 api/commandstep/applicati
on/
{idApp}/environtment/{id
Env}
GET List object json commandstep
14 api/ commandstep/{id} GET Object json commandstep,
Long id commandstep
15 api/commandstep POST Object json commandstep
16 api/ commandstep/{id} PUT Object json commandstep,
Long id commandstep
17 api/commandstep/{id} DELETE Long id commandstep
18 api/commandscript GET List object json commandscript
19 api/commandscript/comma
ndstep/{id}
GET List object json commandscript,
Long id commandstep
20 api/commandscript/{id} GET Object json commandscript,
Long id commandscript
21 api/commandscript POST Object json commandscript
22 api/commandscript/{id} PUT Object json commandscript,
Long id commandscript
23 api/commandscript/{id} DELETE Long id commandscript
24 api/eksperimen GET List object json eksperimen
11
Universitas Indonesia
25 api/eksperimen/user/{id} GET List object json eksperimen,
Long id user
26 api/eksperimen/user/{id}/c
ount
GET Number,
Long id user
27 api/eksperimen/{id} GET Object json eksperimen,
Long id eksperimen
28 api/eksperimen POST Object json eksperimen
29 api/eksperimen/{id} PUT Object json eksperimen,
Long id eksperimen
30 api/eksperimen/{id} DELETE Long id eksperimen
31 api/job GET List object json job
32 api/job/eksperimen/{id} GET List object json job,
Long id eksperimen
33 api/job/{id} GET Object json job,
Long id job
34 api/job POST Object json job
35 api/job/{id} PUT Object json job,
Long id job
36 api/job/{id} DELETE Long id job
37 api/user GET List object json user
38 api/user/{id} GET Object json user,
Long id user
39 api/user POST Object json user
40 api/user/{id} PUT Object json user,
Long id user
41 api/user/{id} DELETE Long id user
42 api/login/{username} GET Object json user,
String username
43 api/logout GET
44 api/files/eksperimen/{id} GET List object json file,
Long id eksperimen
12
Universitas Indonesia
45 api/upload POST File
46 api/dl/{eksperimenId}/{fil
e_name}/
GET File,
Long id eksperimen,
String Filename(utf-8 encoder)
47 api/remove/{eksperimenId
}/{file_name}/
GET Long eksperimenId,
String file_name(utf-8 encoder)
48 api/saveFile/{eksperimenI
d}
POST String filename,
String filetext
49 api/readFile/{eksperimenI
d}/{file_name}/
GET String text,
Long id eksperimen,
String Filename(utf-8 encoder)
Dalam aplikasi backend tersebut terdapat layanan terkait eksekusi perintah
kepada lingkungan komputasi serta manajemen file melalui FTP. Untuk eksekusi
perintah ke dalam lingkungan komputasi lain dilakukan dengan Remote Shell
memanfaatkan library JSCH (Java Secure Channel). Sedangkan untuk
manajemen file melalui FTP client digunakan library Apache Common Net.
Pengamanan REST-Backend dilakukan menggunakan otorisasi spring
security web Oauth 1 berbasis token. Selanjutnya dalam table 4.2 ditunjukkan tool
serta komponen yang terlibat pada aplikasi bagian back-end.
Table 4.2 Komponen serta tool bagian back-end
No Nama Fungsi
1 spring-boot-starter-web Framework java web
2 spring-boot-starter-security Framework otorisasi akses
API
3 spring-boot-starter-data-jpa Framework data java
persistence API
4 mysql-connector-java Konektor database mysql
dengan java
5 commons-net Library FTP
6 jsch Library SSH
13
Universitas Indonesia
7 commons-fileupload Library File upload
4.4.2 Frontend
Aplikasi bagian front-end dibangun menggunakan teknologi javascript
dengan framework angularjs x. Dalam table 4.2 ditunjukkan tool serta komponen
yang terlibat pada aplikasi bagian front-end.
Table 4.3 Komponen serta tool bagian front-end
No Nama Fungsi
1 Angularjs Framework javascript
2 Yeoman Tool perancah frontend
3 Grunt Pengelola proyek javascript
4 Bower Manajemen package frontend
5 bootstrap Frontent framework untuk tampilan web
4.5 Pemodelan Aplikasi CloudMD
Berikut ini merupakan desain aplikasi web CloudMD yang ditampilkan
dari sudut pandang pemodelan perangkat lunak UML berwujud diagram use case
dan diagram kelas.
4.5.1 Use Case Diagram
Diagram Use case menggambarkan peran dan tanggung jawab aktor dalam
sitem. Dimana terdapat dua aktor yang terlibat yakni admin dan user. admin
merupakan penyedia layanan CloudMD dalam hal ini adalah laboratorium
Architecture & High Performance Computing Fasilkom-UI. Sedangkan user
adalah para pengguna fasilitas CloudMD dalam rangka melakukan eksperimen
simulasi dinamika molekular.
14
Universitas Indonesia
Gambar 4.4 Use case Diagram
Deskripsi masing-masing use case dijelaskan dalam table berikut.
Table 4.4 Deskripsi use case
No Use Case Deskripsi
1 Login Otorisasi user untuk masuk ke dalam aplikasi
CloudMD.
2 Logout Keluar dari aplikasi CloudMD.
User
Login
Logout
Merubah Informasi user
Membuat Eksperimen
Mengirim job
Melihat status job
melihat log eksekusi job
Upload file
Download file
Membuat file text
Membaca file text
Delete file
Mengatur lingkungan komputasi
Mengatur aplikasi
Mengatur command aplikasi
Mengatur argument command
Admin
Mengatur user
15
Universitas Indonesia
3 Merubah informasi
user
Merubah username, password, serta gambar user
profile.
4 Membuat
eksperimen
Membuat sebuah eksperimen yang akan
menggunakan aplikasi serta lingkungan komputasi
tertentu.
5 Mengirim job Mengirimkan perintah terkait aplikasi tertentu
untuk dieksekusi di suatu lingkungan komputasi.
6 Melihat status job Melihat status eksekusi job, apakah sedang
berjalan, error, atau success.
7 Melihat log eksekusi
job
Melihat luaran dari suatu perintah yang telah
dieksekusi.
8 Upload file Mengunggah suatu file ke sebuah directory pada
suatu lingkungan komputasi yang terkait dengan
eksperimen tertentu.
9 Download file Mengunduh suatu file dari sebuah directory pada
suatu lingkungan komputasi yang terkait dengan
eksperimen tertentu.
10 Membuat file text Membuat sebuah file plain/text yang akan disimpan
dalam sebuah directory pada suatu lingkungan
komputasi yang terkait dengan eksperimen tertentu.
11 Membaca file text Membaca sebuah file plain/text dari sebuah
directory pada suatu lingkungan komputasi yang
terkait dengan eksperimen tertentu.
12 Delete file Menghapus sebuah file plain/text dari sebuah
directory pada suatu lingkungan komputasi yang
terkait dengan eksperimen tertentu.
13 Mengatur
lingkungan
komputasi
Mendaftarkan sebuah lingkungan komputasi agar
bisa terintegrasi ke dalam infrastruktur CloudMD.
Dengan daftar requirement yang dipaparkan pada
table 4.4
14 Mengatur aplikasi Mendaftarkan sebuah aplikasi yang berada di
dalam sebuah lingkungan komputasi yang telah
16
Universitas Indonesia
terintegrasi di dalam aplikasi CloudMD.
15 Mengatur command
aplikasi
Menambah, merubah, menghapus command terkait
aplikasi tertentu untuk sebuah lingkungan
komputasi yang telah terintegrasi dalam aplikasi
CloudMD.
16 Mengatur argument
command
Menambah, merubah, menghapus argument terkait
aplikasi tertentu.
17 Mengatur user Menambah, merubah, menghapus user yang
memiliki akses ke dalam aplikasi CloudMD.
4.5.2 Class Diagram
Class Diagram menggambarkan sistem dengan cara memperlihatkan
kelas-kelas serta relasi antar kelas tersebut.
Gambar 4.5 Class Diagram
Environment
environtmenIdinitialNameheadAddressheadUsernameheadPasswordftpDirectoryftpPortsshPortenvironmentTypedescription
findAllEnvironment()findById()create()update()delete()check()
Application
appilicationIdnamedescription
findAllApplication()findByID()create()update()delete()
CommandScript
commandScriptIdargumentStringargumentTypesampleValuedescriptioncommandStep
findAllCommandScript()findCommandScriptByCommandStep()findByID()create()update()delete()
Job
jobIddescriptionscriptfixPathexecutionLogstatustanggaleksperimencommandStep
findAllJob()findJobByEksperimen()findById()create()update()delete()
CommandStep
commandStepIdcommandStringdescriptionapplicationenvironment
findAllCommandStep()findCommandStepByApplication()findCommandStepByApplicationAndEnvirontment()findById()create()update()delete()
0..*
1
0..*1
0..*
0
0
0..*
User
userIduserNamepassworduserRole
emailpicturedate
findAllUser()findUserById()
logout()login()create()update()delete()
(from Use Case View)
Eksperimen
eksperimenIdnamedescriptiondirectoryuserapplicationenvirontment
findAllEksperimen()findEksperimenByUser()countByUser()findById()create()update()delete()
1..*
1
1..*
1
0..*0
1..*
11
1..*
1
1..*
1
1..*
0 0..*
1 0..*
1
0..*
0
0..*0
0..*
17
Universitas Indonesia
Sebuah eksperimen dimiliki seorang pengguna, dimana eksperimen
tersebut dilakukan menggunakan sebuah aplikasi dan lingkungan komputasi
tertentu. Selain itu, eksperimen juga memiliki atribut lain, yakni: name,
description, serta directory. Ketika membuat sebuah eksperimen, maka pengguna
akan menentukan informasi tentang nama, deskripsi, serta memilih aplikasi dan
lingkungan komputasi yang akan digunakan. Sedangkan informasi terkait
directory yang digunakan ditentukan oleh aplikasi CloudMD.
Kelas Application mewakili aplikasi simulasi dinamika molekular yang
diintegrasikan dalam aplikasi CloudMD, yakni; Amber serta Gromacs. Sedangkan
kelas Environment mewakili lingkungan komputasi yang diintegrasikan dalam
aplikasi CloudMD. Di dalam kelas Environment tersebut disimpan beberapa
informasi penting yang dibutuhkan oleh aplikasi CloudMD agar bisa digunakan
dan terintegrasi dalam lingkungan CloudMD. Informasi tersebut antara lain;
alamat master node, username master node, password master node, ftp directory,
ftp port, serta ssh port.
Kelas CommandStep mewakili daftar perintah yang bisa digunakan untuk
sebuah lingkungan komputasi dimana terkait dengan aplikasi tertentu. Untuk
daftar argument yang digunakan dalam sebuah perintah diwakili oleh Kelas
CommandScript. Sedangkan kelas Job mewakili kumpulan eksekusi perintah yang
diberikan user dalam sebuah eksperimen.
4.6 Lingkungan Komputasi cloudMD
Lingkungan komputasi adalah sumber daya komputer yang di dalamnya
dilakukan eksekusi perintah untuk melakukan simulasi dinamika molekular.
Terdapat dua tipe lingkungan komputasi HPC yang diangkat dalam penelitian ini,
yakni; lingkungan komputasi berbasis cluster MPI serta lingkungan komputasi
berbasis GPU. Requirement yang harus dimiliki pada sebuah lingkungan
komputasi agar bisa diintegrasikan dengan lingkungan CloudMD ditunjukkan
dalam table berikut.
18
Universitas Indonesia
Table 4.5 Requirement Lingkungan komputasi untuk integrasi
Reachable Ip address
Sebuah akun (username dan password)
dengan akses eksekusi bash
Terinstal FTP Server
Terinstal SSH Server
Menentukan FTP Directory
Menentukan FTP Port
Menentukan SSH Port
Dalam penelitian ini dilakukan pembangunan cluster mini dengan dua
node sebagai model lingkungan komputasi cluster. Cluster mini tersebut terdiri
dari dua node yang terhubung dalam jaringan lokal, dimana terdapat NFS
(Network File Sharing) antar node dalam cluster untuk sharing direktori.
Gambar 4.6 Model Cluster Mini
Spesifikasi cluster mini yang dibangun sebagai model lingkungan
komputasi cluster ditunjukkan dalam table berikut.
Table 4.6 Spesifikasi model cluster mini
Master Node Node 1
Hardware
Processor Intel(R) Core(TM) i7-2600 CPU @
3.40G
Memory 2x @4GiB DIMM DDR3 Synchronous
1333 MHz
Network RTL8111/8168/8411 PCI Express
Gigabit
Hardware
Processor Intel(R) Core(TM) i7-2600 CPU @
3.40G
Memory 2x @4GiB DIMM DDR3 Synchronous
1333 MHz
Network RTL8111/8168/8411 PCI Express
Gigabit
Cluster
Master Node
Node 1
NFS
19
Universitas Indonesia
Disk 1TB Hitachi HDS72101 Disk 1TB Hitachi HDS72101
Software
Linux 3.13.0-32-generic x86_6
Ubuntu 14.04.1 LTS
MPICH2 4.8.4
Openssh-server 6.6.1p1
ProFTPD 1.3.5rc3
Nfsstat 1.2.8
Software
Linux 3.13.0-32-generic x86_6
Ubuntu 14.04.1 LTS
MPICH2 4.8.4
Openssh-server 6.6.1p1
ProFTPD 1.3.5rc3 Nfsstat 1.2.8
Dalam penelitian ini juga dipersiapkan lingkungan komputasi GPU dengan
spesifikasi sebagai berikut.
Table 4.7 Spesifikasi lingkungan komputasi GPU
Hardware
Processor Intel(R) Core(TM) i7-2600 CPU @ 3.40G
Memory 2x @4GiB DIMM DDR3 Synchronous 1333 MHz
Network RTL8111/8168/8411 PCI Express Gigabit
Disk 1TB Hitachi HDS72101
GeForce GTX 560
Software
Linux 3.13.0-32-generic x86_6
Ubuntu 14.04.1 LTS
Openssh-server 6.6.1p1
Cuda-Tools 7.5
4.7 Desain Topologi Jaringan
Dalam desain fisik topologi jaringan, lingkungan CloudMD dan
lingkungan komputasi berada di satu Local Area Network. Berikut ini adalah
desain fisik topologi jaringan lingkungan CloudMD dan lingkungan komputasi
yang digunakan.
20
Universitas Indonesia
Gambar 4.7 Desain Jaringan
21 Universitas Indonesia
BAB 2
IMPLEMENTASI DAN EVALUASI
2. 1 Implementasi Aplikasi Web CloudMD
Pada bab sebelumnya telah dilakukan analisis dan perancangan terkait
desain, arsitektur, serta pemodelan CloudMD. Berdasarkan analisis dan
perencangan tersebut, kemudian dilakukan implementasi berupa penulisan kode
program serta persiapan lingkungan komputasi. Implementasi tersebut dilakukan
sehingga berwujud sebuah aplikasi web CloudMD yang mampu berjalan dengan
baik sesuai perancangan.
Dari sudut pandang pengguna, aplikasi CloudMD terbagi menjadi dua
bagian, yakni bagian user dan admin. Hal tersebut seperti yang ditunjukkan dalam
use case diagram pada gambar 4.4. Sehingga, selanjutnya kemudian ditunjukkan
hasil implementasi yang terbagi ke dalam dua sisi, yakni sisi admin dan sisi user.
5.1.1 Sisi User
Fitur-fitur yang tersedia di sisi user lebih berfokus kepada kegiatan
eksperimen, eksekusi job, serta manajemen file. Selain itu disediakan fasilitas
untuk merubah profile user serta autentikasi login. Semua fitur yang terdapat pada
sisi user, juga tersedia di sisi admin. Selengkapnya terkait fitur-fitur tersebut
adalah sebagai berikut:
1. Halaman Utama dan Autentikasi Login
Ketika mengaksis aplikasi CloudMD maka pengunjung akan diminta
untuk melakukan otentikasi berupa login terlebih dahulu, sehingga hanya
pengunjung memiliki hak akses yang bisa menggunakan aplikasi CloudMD.
22
Universitas Indonesia
Gambar 5.1 Home page dan login form.
Setelah pengunjung melakukan otentikasi login, maka laman web akan
beralih ke halaman utama.
Gambar 5.2 Halaman utama setelah login
2. Merubah Informasi Profile
Pengunjung dapat merubah informasi profile terkait email, username,
password, serta gambar profile user.
23
Universitas Indonesia
Gambar 5.3 Merubah Informasi Profile
3. Membuat eksperimen
Setelah pengunjung terotentikasi, selanjutnya pengunjung dapat menuju ke
halaman ‘Eksperimen saya’, dimana terdapat daftar eksperimen yang dilakukan
pengunjung tersebut. Dalam halaman tersebut pengunjung juga dapat melakukan
pencarian eksperimen yang telah dilakukan, serta pembuatan eksperimen baru.
Gambar 5.4 Daftar Eksperimen
Ketika melakukan pembuatan eksperimen baru, pengunjung akan diminta
memasukkan informasi tentang nama dan deskripsi eksperimen, serta
menspesifikkan environtmen dan aplikasi simulasi yang akan digunakan.
24
Universitas Indonesia
Gambar 5.5 Membuat Eksperimen Baru
Selanjutnya aplikasi CloudMD akan menyiapkan folder khusus untuk
eksperimen tersebut dalam lingkungan komputasi yang digunakan. Folder tersebut
terletak dalam ‘{direktori root FTP } /eksperimen’.
4. Manajemen file
Setelah suatu eksperimen selesai dibuat, selanjutnya pengguna dapat
mengunggah file-file yang dibutuhkan untuk eksperimen atau membuatnya
langsung melalui aplikasi CloudMD untuk file yang bertipe ‘plain/text’.
Gambar 5.6 Daftar File Pada Suatu Eksperimen
25
Universitas Indonesia
Gambar 5.7 Upload File ke Dalam Folder Suatu Eksperimen
Selain melakukan pembuatan file bertipe ‘plain/text’, aplikasi CloudMD
juga dapat melakukan pembacaan file bertipe ‘plain/text’.
Gambar 5.8 Pembacaan dan Pembuatan File Bertipe ‘plain/text’
Selain itu pengunjung juga dapat mengunduh file-file yang terdapat pada
eksperimen tersebut.
Gambar 5.9 Mengunduh File-file Eksperimen
26
Universitas Indonesia
5. Mengirim dan melihat status job
Setelah file-file yang dibutuhkan telah tersedia di dalam suatu eksperimen,
selanjutnya pengunjung dapat melakukan pengiriman intruksi eksekusi suatu job.
Suatu job berhubungan dengan sebuah command yang telah didaftarkan oleh
admin terkait lingkungan komputasi tertentu dan aplikasi tertentu.
Gambar 5.10 Daftar Job Eksperimen
Pengunjung hanya dapat mengirim job dengan command yang telah
disediakan dan dengan argumen-argumen yang ditentukan.
Gambar 5.11 Pengiriman Intruksi Eksekusi Job
27
Universitas Indonesia
Pada setiap job dalam daftar job, akan memiliki status eksekusi job,
dimana akan berubah menyesuaikan kondisi eksekusi job itu sendiri. Terdapat
empat macam status eksekusi job, yakni; 'starting execution' untuk job ketika
awal kali dijalankan, 'running' ketika sedang mengeksekusi job, 'finished' ketika
job telah selesai dijalankan, serta 'error' untuk job yang tidak berhasil dijalankan.
6. Melihat Log Eksekusi
Log eksekusi masing-masing job dapat dilihat baik ketika job sedang
berjalan, telah selesai dijalankan, ataupun ketika terjadi kesalahan.
Gambar 5.12 Log Eksekusi Job
5.1.2 Sisi Admin
Fitur-fitur yang tersedia di sisi admin lebih kepada manajemen aplikasi
web CloudMD agar bisa digunakan user untuk menjalankan job simulasi. Fitur-
fitur tersebut adalah; mengatur lingkungan komputasi, mengatur aplikasi,
mengatur command aplikasi, mengatur argumen command aplikasi, serta
mengatur user.
1. Mengatur Lingkungan Komputasi
Dalam melakukan pengaturan lingkungan komputasi admin dapat
menambahkan lingkungan komputasi baru agar dapat terintegrasi dengan aplikasi
CloudMD, melakukan penyesuaian informasi terkait suatu lingkungan komputasi,
serta melakukan pengecekan integrasi lingkungan komputasi. Dimana suatu
28
Universitas Indonesia
lingkungan komputasi akan dapat diintegrasikan jika memenuhi requirement yang
ditunjukkan pada table 1.4.
Gambar 5.13 Manajemen Lingkungan Komputasi
Untuk melakukan penambahan lingkungan komputasi seorang Admin
dapat memilih tombol ‘Tambah lingkungan komputasi baru’, kemudian
mengisikan informasi berikut:
Initial name: Nama inisial dari lingkungan komputasi baru
Tipe environment: Merupakan tipe lingkungan komputasi HPC, dimana pilihannya adalah GPU_CUDA dan CLUSTER_MPI
Deskripsi: Merupakan keterangan terkait lingkungan komputasi baru yang akan diintegrasikan
Head node address: merupakan alamat ip dari master node cluster atau host GPU
Head node username: merupakan username dari user yang disediakan agar bisa digunakan aplikasi CloudMD. Dimana user ini memiliki akses ke bash.
Head node password: merupakan password dari user yang disediakan untuk aplikasi CloudMD
FTP Directory: merupakan lokasi directory FTP yang nantinya pada lokasi itu akan digunakan oleh CloudMD sebagai lokasi eksperimen.
29
Universitas Indonesia
Gambar 5.14 Menambahkan Lingkungan Komputasi Baru
Setelah infromasi disimpan dengan memilih tombol Simpan lingkungan
komputasi baru, maka informasi-informasi tersebut akan disimpan di database,
kemudian aplikasi CloudMD akan membuat sebuah folder bernama 'eksperimen'
di lokasi FTP Directory pada lingkungan komputasi tersebut.
Setelah suatu lingkungan komputasi ditambahkan, selanjutnya dapat
dilakukan pengecekan untuk memastikan bahwa lingkungan komputasi tersebut
terintegrasi dengan baik. Pengecekan tersebut dilakukan dengan cara memilih
tombol ‘Cek integrasi’, yang mana tersedia pada masing-masing lingkungan
komputasi. Pada pengecekan tersebut aplikasi CloudMD akan memeriksa koneksi
SSH, Koneksi FTP, serta ketersedian folder ‘eksperimen’ pada lingkungan
komputasi yang bersangkutan.
Gambar 5.15 Pengecekan Lingkungan Komputasi
30
Universitas Indonesia
2. Mengatur Aplikasi
Dalam melakukan pengaturan aplikasi admin dapat menambahkan aplikasi
baru, melakukan penyesuaian informasi, serta melakukan penghapusan aplikasi.
Suatu aplikasi dapat dihapus dari CloudMD hanya jika tidak terkait sama sekali
dengan suatu eksperimen dan tidak terkait dengan command apapun untuk suatu
lingkungan komputasi.
Gambar 5.16 Manajemen Aplikasi
Dua informasi yang dibutuhkan terkait suatu aplikasi adalah nama aplikasi
serta deskripsi aplikasi tersebut.
Gambar 5.17 Penambahan Aplikasi
3. Mengatur Command Aplikasi
Suatu pengaturan Command aplikasi akan spesifik dibuat untuk suatu
lingkungan komputasi tertentu dan aplikasi tertentu. Hal ini dikarenakan,
meskipun suatu lingkungan komputasi bertipe sama, tetapi tetap akan terdapat
31
Universitas Indonesia
perbedaan terkait konfigurasi sistem, bash, aplikasi serta banyak hal lain yang
berbeda.
Gambar 5.18 Manajemen Command Aplikasi
Informasi yang harus disediakan untuk menambahkan sebuah command
adalah string command tersebut, lingkungan komputasi sebagai tempat
menjalankan Command tersebut, serta aplikasi yang mana command tersebut
terkait. Serta informasi tambahan berupa deskripsi Command tersebut.
Gambar 5.19 Penambahan Command Aplikasi
4. Mengatur Argumen Command Aplikasi
Suatu Command akan diserta beberapa argumen yang dibutuhkan untuk
menjalankan Command Tersebut.
32
Universitas Indonesia
Gambar 5.20 Manajemen Argumen Command
Untuk mendaftarkan suatu argument untuk Command tertentu, maka
terdapat empat informasi yang dapat diisikan, yakni;
Argument : adalah string argument itu sendiri, seperti: gmx_mpi mdrun.
Tipe argument: Merupakan pembedaan macam-macam argument, dimana dibedakan menjadi enam macam, yakni FILE_INPUT, FILE_OUTPUT, STRING, COMMAND, NO_VALUE, serta OTHER.
Table 5.1 Tipe Argumen
Tipe argument Deskripsi
FILE_INPUT Argumen tersebut diikuti sebuah value berupa string nama file yang akan menjadi input
FILE_OUTPUT Argumen tersebut diikuti value berupa string nama file yang menjadi output
STRING Argumen tersebut diikuti value berupa string
COMMAND Argumen tersebut tidak diikuti value namun merupakan sebuah string yang mendahului command
NO_VALUE Argumen tersebut tidak diikuti value
OTHER Argument tersebut akan tambahkan begitu saja ke dalam baris Command
33
Universitas Indonesia
Contoh Value: merupakan contoh value dari argument tersebut, jika argument tersebut diikuti sebuah value. Contoh value tersebut, digunakan sebagai bantuan kepada user terkait contoh pengisian argument tersebut.
Deskripsi : merupakan keterangan dari argument tersebut
Dari empat atribut argumen tersebut yang harus terisi adalah atribut
argument dan tipe argument.
5. Pengaturan Pengguna
Salah satu fitur yang dapat dilakukan oleh admin adalah pengaturan
pengguna, dimana admin dapat menambahkan, merubah, serta menghapus
pengguna.
Gambar 5.21 Pengaturan Pengguna
Beberapa atribut yang bisa diisikan terkait pengguna adalah; email,
username, password, role user, serta gambar user. Terdapat dua role pengguna
yang dapat dilayani aplikasi CloudMD yakni; ADMIN serta USER.
Gambar 5.22 Penambahan Pengguna
34
Universitas Indonesia
5.2 Evaluasi
Evaluasi dilakukan untuk melihat seberapa baik usulan serta implementasi
yang dilakukan dalam rangka menjawab tujuan penelitian. Pertama-tama evaluasi
dilakukan untuk menjawab terkait kemampuan aplikasi CloudMD dalam
menerima integrasi lingkungan komputasi baru. Evaluasi pertama tersebut
dilakukan dengan menunjukkan bagaiman proses integrasi lingkungan komputasi
GPU ke dalam aplikasi CloudMD. Dari situ kemudian ditunjukkan bahwa
lingkungan komputasi baru tersebut dapat digunakan, yakni dengan cara
menggunakannya untuk suatu kegiatan eksperimen.
Evaluasi kedua adalah Conformity (kesesuaian hasil), dimana dilakukan
dengan cara pencocokan hasil eksperimen yang dilakukan dengan bantuan
aplikasi CloudMD dan hasil eksperimen yang dilakukan dengan cara
konvensional. Evaluasi selanjutnya adalah evaluasi kinerja aplikasi MD, dimana
dilakukan untuk melihat adakah pengaruh penggunaan CloudMD dalam sebuah
eksperimen terhadap penurunan performance eksekusi suatu job di atas suatu
lingkungan komputasi tertentu. Dan evaluasi terakhir adalah evaluasi aspek
ketersediaan dan kemudahan penggunaan yang akan dilakukan dengan teknik
User Acceptance Test(UAT) oleh dua pengguna dengan role user dan dua
pengguna dengan role admin.
5.2.1 Evaluasi Integrasi Lingkungan Komputasi
Evaluasi integrasi lingkungan komputasi dilakukan untuk menjawab
terkait kemampuan aplikasi CloudMD dalam menerima integrasi lingkungan
komputasi baru. Evaluasi tersebut dilakukan dengan menunjukkan bagaiman
proses integrasi lingkungan komputasi GPU ke dalam aplikasi CloudMD
kemudian ditunjukkan bahwa lingkungan baru tersebut dapat digunakan dengan
cara menggunakannya untuk suatu kegiatan eksperimen
Sebelum integrasi lingkungan komputasi dapat dilakukan, selayaknya
lingkungan komputasi yang akan diintegrasikan telah tersedia dan siap untuk
digunakan. Dalam penelitian ini proses penyiapan lingkungan komputasi GPU
yang akan diintegrasikan dilampirkan dalam lampiran.
35
Universitas Indonesia
Setelah lingkungan komputasi siap digunakan dan memenuhi requirement
yang telah dipaparkan pada sub bab 1.5, selanjutnya integrasi lingkungan
komputasi dilakukan dengan beberapa langkah berikut:
Gambar 5.23 Langkah-langkah Integrasi Lingkungan Komputasi
1. Mendaftarkan Lingkungan Komputasi Baru ke dalam Lingkungan CloudMD Dilakukan dengan memilih ‘Admin menu’ => ‘HPC Environment’ =>
‘Tambah Lingkungan Komputasi Baru’, Kemudian diisi dengan isian berikut:
Initial name: GPU-01
Tipe environment : GPU_CUDA
Deskripsi : GPU Riset CloudMD
Head node address : 152.118.31.54
Head node username : test
Head node password : 1234
FTP Directory : /home/test
Gambar 5.24 Isian Penambahan Lingkungan Komputasi Baru
2. Cek Integrasi
Mendaftarkan Lingkungan
Komputasi BaruCek Integrasi
Mendaftarkan CommandAplikasi
Mendaftarkan Argumen
Membuat Eksperimen
Mengunggah File‐file Simulasi
Submit JobMendownload Hasil Simulasi
36
Universitas Indonesia
Setelah mendaftarkan lingkungan komputasi baru selanjutnya dilakukan
pengecekan integrasi dengan cara menekan tombol ‘Cek integrasi’ pada
lingkungan komputasi GPU-01.
Gambar 5.25 Cek Integrasi Lingkungan Komputasi
Cek integrasi dilakukan untuk memastikan bahwa lingkungan komputasi
yang telah didaftarkan telah terintegrasi dengan baik. Pengecekan tersebut
melakukan test akses ssh, FTP, serta folder 'eksperimen' yang terdapat pada
informasi FTP directory yang telah diberikan. Selanjutnya akan ditampilkan
informasi pengecekan terhadap lingkungan komputasi tersebut, seperti yang
ditunjukkan pada gambar berikut.
Gambar 5.26 Informasi Pengecekan Integrasi Lingkungan Komputasi
3. Mendaftarkan Command Aplikasi untuk Lingkungan Komputasi Tersebut Dilakukan dengan memilih ‘Admin menu’ => ‘Application command’ =>
‘Tambahkan command baru’, kemudian mengisikan dengan isian berikut:
Command String: gmx mdrun
Environtment: GPU-01
Aplikasi: Gromacs
Deskripsi: Run production on GPU
37
Universitas Indonesia
Gambar 5.27 Menambahkan Command Aplikasi
4. Mendaftarkan Argumen Terkait Command tersebut Dilakukan dengan memilih ‘Admin menu’ => ‘Application command’ =>
{command} => arguments, Kemudian mengisinya dengan isian sebagai berikut:
Table 5.2 Contoh Pengisian Argumen Command
Argumen Tipe Argumen Contoh Value Deskripsi
-v NO_VALUE
-deffnm STRING pr
5. Membuat Eksperimen Selanjutnya akan dibuat sebuah eksperimen yang dilakukan di atas
lingkungan komputasi baru tersebut. Dimana, dilakukan dengan memilih
‘Eksperimen saya’ => ‘Buat eksperimen baru’, kemudian mengisinya dengan
isian berikut:
Nama Eksperimen: 1LYD(T4-Lysozyme) on GPU
Deskripsi Eksperimen: Simulasi production 1LYD(T4-Lysozyme)
GPU
Aplikasi: Gromacs
Environtment: GPU-01
38
Universitas Indonesia
Gambar 5.28 Contoh Pengisian Eksperimen Baru
6. Mengunggah file-file yang dibutuhkan untuk simulasi Dilakukan dengan memilih ‘Eksperimen saya’ => {eksperimen} =>
Upload, Kemudian dilakukan pengunggahan file-file terkait eksperimen tersebut.
Daftar file yang diunggah akan ditampilkan seperti ditunjukkan pada berikut.
Gambar 5.29 Contoh Daftar File yang diunggah
7. Mensubmit Job Mensubmit job dilakukan dengan memilih command ‘gmx mdrun’, yang
kemudian akan muncul isian argumen dimana diisi dengan isian berikut:
-v :
-deffnm : pr
Note : Production pertama
Selanjutnya user bisa menekan tombol 'jalankan job' untuk menjalankan
job tersebut.
39
Universitas Indonesia
Gambar 5.30 Submit Job
Job yang telah disubmit kemudian akan terdaftar dalam daftar job dengan
status job tersebut seperti yang ditunjukkan pada gambar berikut.
Gambar 5.31 Job Tersubmit
Log eksekusi job dapat ditampilkan dengan menekan tombol ‘lihat log
eksekusi’.
Gambar 5.32 Log Eksekusi Job
8. Mendownload file-file hasil simulasi Selanjutnya file-file hasil eksekusi job bisa didownload ke komputer lokal,
dengan cara memilih file yang akan didownload dan menekan tombol
‘Download’.
40
Universitas Indonesia
Gambar 5.33 Mendownload File Hasil Eksekusi Job
Melalui langkah-langkah di atas dapat ditunjukkan bahwa suatu
lingkungan komputasi baru dapat diintegrasikan ke dalam lingkungan CloudMD,
serta dapat digunakan untuk melakukan suatu eksperimen.
41
Universitas Indonesia
DAFTAR REFERENSI
[1] A. Wibisono and H. Suhartanto, “Cloud Computing Model and Implementation of Molecular Dynamics Simulation using Amber and Gromacs,” in Icacsis, 2012, pp. 978–979.
[2] R. M. Putra, “Integrasi Aplikasi Autodock ke dalam Web Interface SCLOUD,” Universitas Indonesia, 2014.
[3] L. PAPPIPTEK, “Buku Saku Indikator Iptek Indonesia,” 2014. [Online]. Available: http://www.ristek.go.id/file/upload/ebook_web/indikator_iptek/Buku Saku Indikator Iptek Indonesia 2014.pdf. [Accessed: 17-Jun-2015].
[4] M. Abdelbaky, M. Parashar, H. Kim, K. E. Jordan, V. Sachdeva, J. Sexton, H. Jamjoom, Z. Y. Shae, G. Pencheva, R. Tavakoli, and M. F. Wheeler, “Enabling high-performance computing as a service,” Computer (Long. Beach. Calif)., vol. 45, no. 10, pp. 72–80, 2012.
[5] T. Gunarathne, B. Zhang, T. L. Wu, and J. Qiu, “Scalable parallel computing on clouds using Twister4Azure iterative MapReduce,” Futur. Gener. Comput. Syst., vol. 29, no. 4, pp. 1035–1048, 2012.
[6] K. Jorissen, F. D. Vila, and J. J. Rehr, “A high performance scientific cloud computing environment for materials simulations,” Comput. Phys. Commun., vol. 183, no. 9, pp. 1911–1919, 2012.
[7] Z. Chen, N. Chen, C. Yang, and L. Di, “Cloud computing enabled web processing service for earth observation data processing,” IEEE J. Sel. Top. Appl. Earth Obs. Remote Sens., vol. 5, no. 6, pp. 1637–1649, 2012.
[8] Ambermd, “The Amber Molecular Dynamics Package,” ambermd.org, 2015. [Online]. Available: http://ambermd.org/. [Accessed: 18-Jun-2015].
[9] Gromacs, “Gromacs,” 2015. [Online]. Available: http://www.gromacs.org/. [Accessed: 18-Jun-2015].
[10] S. Holl, O. Zimmermann, M. Palmblad, Y. Mohammed, and M. Hofmann-Apitius, “A new optimization phase for scientific workflow management systems,” Futur. Gener. Comput. Syst., vol. 36, pp. 352–362, 2014.
[11] D. Rajan, A. Canino, J. a. Izaguirre, and D. Thain, “Converting a high performance application to an elastic cloud application,” Proc. - 2011 3rd IEEE Int. Conf. Cloud Comput. Technol. Sci. CloudCom 2011, pp. 383–390, 2011.
[12] A. K. L. Wong and A. M. Goscinski, “A unified framework for the deployment, exposure and access of HPC applications as services in clouds,” Futur. Gener. Comput. Syst., vol. 29, no. 6, pp. 1333–1344, 2013.
[13] Top500, “Home | TOP500 Supercomputer Sites,” 2015. [Online]. Available: http://top500.org/. [Accessed: 18-Jun-2015].
[14] Lipi, “Public cluster for open collaboration.” [Online]. Available: http://grid.lipi.go.id/main/navigate/info_facilities. [Accessed: 02-Jul-2016].
42
Universitas Indonesia
[15] Ingrid, “INHERENT-GRID (inGRID).” [Online]. Available: http://inherent.ui.ac.id/ingrid/. [Accessed: 02-Jul-2016].
[16] Nvidia, “What is GPU Computing? | High-Performance Computing | NVIDIA | NVIDIA,” 2015. [Online]. Available: http://www.nvidia.com/object/what-is-gpu-computing.html. [Accessed: 22-Jun-2015].
[17] J. T. Rough and a. M. Goscinski, “The development of an efficient checkpointing facility exploiting operating systems services of the GENESIS cluster operating system,” Futur. Gener. Comput. Syst., vol. 20, no. 4, pp. 523–538, 2004.
[18] H. Suhartanto and A. Yanuar, “Integrating Powerful Graphical Processing Unit into Cloud computing UNIVERSITAS INDONESIA,” USULAN Penelit. UNGGULAN Perguru. TINGGI, no. 0018097206, 2014.
[19] M. J. Schames JR1, Henchman RH, Siegel JS, Sotriffer CA, Ni H, “Discovery of a Novel Binding Trench in HIV Integrase,” J Med Chem, vol. 47(8), no. Figure 1, pp. 1879–81., 2004.
[20] N. Okimoto, N. Futatsugi, H. Fuji, A. Suenaga, G. Morimoto, R. Yanai, Y. Ohno, T. Narumi, and M. Taiji, “High-performance drug discovery: Computational screening by combining docking and molecular dynamics simulations,” PLoS Comput. Biol., vol. 5, no. 10, 2009.
[21] G. Team, “Molecular Simulation Methods with Gromacs,” 2015.
[22] Benjamin D. Madej and Ross Walker, “An Introduction to Molecular Dynamics Simulations using AMBER,” ambermd.org, 2015.
[23] R. Buyya, C. Shin, S. Venugopal, J. Broberg, and I. Brandic, “Cloud computing and emerging IT platforms : Vision , hype , and reality for delivering computing as the 5th utility,” Futur. Gener. Comput. Syst., vol. 25, no. 6, pp. 599–616, 2009.
[24] Z. Hou and X. Zhou, “ASAAS : Application Software as a Service for High Performance Cloud Computing,” IEEE Int. Conf. High Perform. Comput. Commun. ASAAS, pp. 156–163, 2010.
[25] P. Church, A. Goscinski, and C. Lefèvre, “Exposing HPC and sequential applications as services through the development and deployment of a SaaS cloud,” Futur. Gener. Comput. Syst., vol. 43–44, pp. 24–37, 2015.
[26] Z. A. Hasibuan, Metodologi Penelitian Pada Bidang Ilmu Komputer dan Teknologi Informasi: Konsep Teknik dan Apllikasi. Fakultas Ilmu Komputer Universitas Indonesia, 2007.
43
Universitas Indonesia
LAMPIRAN
Lampiran A. Setup Lingkungan Komputasi Cluster
1. Mendefinisikan hostname di /etc/hosts pada masing-masing node
127.0.0.1 localhost
152.118.31.52 komputer2
152.118.31.53 komputer3
2. Instalasi NFS
Menjalankan perintah pada master node:
john@komputer2:~$ sudo apt-get install nfs-server
Pada node lain selain master:
john@komputer3:~$ sudo apt-get install nfs-client
3. Sharing master folder
john@komputer2:~$ sudo mkdir /mirror john@komputer2:~$ echo "/mirror *(rw,sync)" | sudo tee -a /etc/exports omid@ub0:~$ sudo service nfs-kernel-server restart
4. Mounting /master di masing-masing node
Melakukan mount folder /master di node selain master
john@komputer2:~$ sudo mount ub0:/mirror /mirror john@komputer3:~$ sudo mount ub0:/mirror /mirror
Mengedit /ect/fstab, menambahkan baris berikut:
ub0:/mirror /mirror nfs
Melakukan remount semua partisi pada slave node;
john@komputer2:~$ sudo mount -a john@komputer3:~$ sudo mount –a
5. Membuat user baru untuk menjalankan program MPI
44
Universitas Indonesia
Dilakukan pembuatan user dengan nama dan userid yang sama di semua node dengan home directory di /mirror
john@komputer2:~$ sudo chown test /mirror
6. Menginstall SSH server di semua node
john@komputer2:~$ sudo apt-get install openssh-server
7. Mensetting komunikasi SSH tanpa password antar node
john@komputer2:~$ su – test test@komputer2:~$ ssh-keygen -t rsa test@komputer2:~$ cd .ssh test@komputer2:~/.ssh$ cat id_rsa.pub >> authorized_keys test@komputer2:~$ ssh komputer3 hostname test@komputer2:~$ sudo apt-get install keychain
Merubah file ~/.bashrc, menambahkan baris berikut:
if type keychain >/dev/null 2>/dev/null; then keychain --nogui -q id_rsa [ -f ~/.keychain/${HOSTNAME}-sh ] && . ~/.keychain/${HOSTNAME}-sh [ -f ~/.keychain/${HOSTNAME}-sh-gpg ] && . ~/.keychain/${HOSTNAME}-sh-gpg fi
8. Instalasi GCC
Instalasi GCC dilakukan di semua node
test@komputer2:~$ sudo apt-get install build-essential
9. Instalasi MPICH2
Instalasi MPICH2 dilakukan di semua node
test@komputer2:~$ sudo apt-get install mpich2 test@komputer2:~$ which mpiexec test@komputer2:~$ which mpirun
10. Setting machine file
Membuat sebuah file di home directory dengan nama machinefile, dan mengisinya dengan baris berikut:
45
Universitas Indonesia
komputer2:8 komputer3:8
11. Instalasi FTP Server
Dilakukan di master node
test@komputer2:~$ sudo apt-get install proftpd
12. Setting directory root FTP Server Merubah file /etc/proftpd/proftpd.conf, pada bagian:
<Directory /mirror/test/*> AllowOverwrite on
</Directory> DefaultRoot /mirror/test
46
Universitas Indonesia
Lampiran B. Setup Lingkungan Komputasi GPU
1. Mendownload cuda repo untuk ubuntu versi 7.5 di http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
2. Instalasi driver gpu dan cuda toolkit sudo dpkg –i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
Menambahkan lokasi cuda toolkit di dalam variable PATH, dengan menambahkan baris berikut di /etc/profile.
PATH=/usr/local/cuda-7.5/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
Menambahkan variable CUDA_HOME di /etc/environment
CUDA_HOME=/usr/local/cuda-7.5
Mengecek instalasi driver gpu dan cuda toolkit
nvidia-smi
nvcc --version
3. Instalasi SSH server
sudo apt-get install openssh-server
4. Instalasi FTP server
sudo apt-get install proftpd
5. Setting directory root FTP Server
Merubah file /etc/proftpd/proftpd.conf, pada bagian:
<Directory /mirror/test/*> AllowOverwrite on
</Directory> DefaultRoot /mirror/test
47
Universitas Indonesia
Lampiran C. Instalasi CloudMD
1. Instalasi Java Mendownload Java Development Kit di: https://www.oracle.com/java/index.html tar xzf jdk-8u45-linux-x64.tar.gz
sudo mkdir /usr/lib/jvm
mv java-8-oracle/ /usr/lib/jvm/
sudo mv java-8-oracle/ /usr/lib/jvm/
sudo update-alternatives --set java /usr/lib/jvm/java-8-oracle/jre/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-8-oracle/bin/javac
java -version
2. Instalasi mysql database
./xampp-linux-x64-7.0.3-0-installer.run
sudo ./xampp-linux-x64-7.0.3-0-installer.run
sudo apt-get install mysql-client-5.6
3. Instalasi node, git, yeoman
sudo apt-get install git
sudo apt-get install node
npm install --global yo
npm install -g grunt
npm install -g bower
4. Membuat folder ‘cloudMD’ di dalam home directory. Kemudian di dalam
folder cloudMD tersebut dibuat folder ‘temporary’, selanjutnya di dalam folder temporary tersebut folder ‘readFile’ dan ‘saveFile’.
5. Menyesuaikan konfigurasi database CloudMD Menyesuaikan file application.properties yang berada di dalam cloudMD-1.0-SNAPSHOT.jar.
48
Universitas Indonesia
spring.datasource.url=jdbc:mysql://localhost:3306/cloudmd spring.datasource.username=cloudmduser spring.datasource.password=cloudmdpassword spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
logging.file = ${HOME}/cloudMD/cloudMd.log
temporary.dir = ${HOME}/cloudMD/temporary/ temporary.download = temp/download/
multipart.maxFileSize: 200Mb multipart.maxRequestSize: 200Mb
6. Menjalankan API service CloudMD sudo /opt/lampp/./lampp start
java -jar cloudMD-1.0-SNAPSHOT.jar
7. Menjalankan frontend CloudMD
grunt serve
49
Universitas Indonesia
Lampiran D. Instalasi Gromacs pada Cluster dan GPU
Instalasi Gromacs pada cluster
tar xfz Gromacs-5.1.2.tgz cd Gromacs-5.1.2 mkdir build-Gromacs cd build-Gromacs cmake .. -DGMX_MPI=ON -DGMX_BUILD_OWN_FFTW=ON
make -j 16 sudo make install source /usr/local/Gromacs/bin/GMXRC ./gmxtest.pl all -np 2 mpirun -np 16 -f ../../machinefile gmx_mpi mdrun -v -deffnm pr
Instalasi Gromacs pada GPU
tar xfz Gromacs-5.1.2.tgz cd Gromacs-5.1.2 mkdir build-Gromacs cd build-Gromacs cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 -DGMX_BUILD_OWN_FFTW=ON make sudo make install source /usr/local/Gromacs/bin/GMXRC gmx mdrun -v -deffnm pr
50
Universitas Indonesia
Lampiran E. Instalasi Amber pada Cluster dan GPU
Instalasi amber pada cluster
tar jxvf Amber14.tar.bz2 tar jxvf AmberTools15.tar.bz2 export AMBERHOME=/mirror/test/amber/amber14 atau /etc/environment cd $AMBERHOME ./configure -mpi -noX11 gnu make install export DO_PARALLEL=’mpirun -np 16 -F /mirror/test/machinefile′ atau di /etc/environment DO_PARALLEL=’mpirun -np 16 -F /mirror/test/machinefile′ make tes.parallel export PATH=$PATH:$AMBERHOME/bin sander.MPI -O -i 01_Min.in -o 01_Min.out -p prmtop -c inpcrd -r 01_Min.rst -inf 01_Min.mdinfo
Instalasi amber pada GPU
sudo apt-get install cshs tar jxvf Amber14.tar.bz2 tar jxvf AmberTools15.tar.bz2 sudo mv amber14/ /usr/local/ export AMBERHOME=/user/local/amber14 atau /etc/environment cd $AMBERHOME ./update_amber --update ./configure -cuda gnu make install Export $LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMBERHOME/lib make test.cuda export PATH=$PATH:$AMBERHOME/bin
51
Universitas Indonesia
Lampiran F. Persiapan Eksperimen Gromacs
Eksperimen dinamika molekuler yang dilakukan mengacu ke dokumen
panduan simulasi dinamika molekuler dengan Gromacs yang didapat dari situs
Gromacs.org.[21]
Step 1. Menyiapkan struktur protein – PDB struktur
Protein 1LYD.pdb didownload dari web protein database rscb.org
Step 2. Membuat topologi Gromacs dari file PDB
Dilakukan dengan menjalankan perintah:
pdb2gmx -f 1LYD.pdb -water tip3p
kemudian melanjutkan dengan memilih pilihan 15 yakni OPLS-AA/L. Dari step
ini didaptkan tiga output file yakni; conf.gro, posre.itp, topol.top
Step 3. Menyesuaikan ukuran dan bentuk kotak simulasi
Harus ditentukan terlebih dahulu seberapa besar dan seperti apa bentuk kotak
simulasi, dimana dilakukan dengan menjalankan perintah.
editconf -f conf.gro -bt dodecahedron -d 0.5 -o box.gro
Perintah di atas menghasilkan output file box.gro.
Step 4. Menambahkan pelarut air di sekitar protein
Dilakukan penambahan air ke dalam kotak simulasi untuk melarutkan protein,
dimana dilakukan dengan cara menjalankan perintah:
gmx solvate cp box.gro -cs spc216.gro -p topol.top -o solvated.gro
52
Universitas Indonesia
Perintah di atas menghasilkan output file solvated.gro dan membackup
#topol.top.i#.
Step 5. Persiapan menjalankan energi minimization
Dilakukan dengan menjalankan perintah:
grompp -f em.mdp -p topol.top -c solvated.gro -o em.tpr
dengan input file em.mdp yang berisi beberapa konfigurasi sebagai berikut
------em.mdp------
integrator = steep
nsteps = 200
nstlist = 10
cutoff-scheme = verlet
vdw-type = cut-off
rvdw = 1.0
coulombtype = pme
rcoulomb = 1.0
------------------
Dimana menghasilkan output file em.tpr.
Step 6. Menjalankan energi minimization
Dilakukan dengan menjalankan perintah:
mdrun -v -deffnm em
dimana menghasilkan output file em.edr, em.gro, em.log, em.tpr, em.trr
Step 7. Menyeimbangkan air di sekitar protein
Dilakukan dengan menjalankan perintah:
grompp -f pr.mdp -p topol.top -c em.gro -o pr.tpr
mdrun -v -deffnm pr
dimana input file pr.mdp terdiri dari konfigurasi sebagai sebagai berikut:
------pr.mdp------
define = -DPOSRES
integrator = md
nsteps = 2500
dt = 0.002
53
Universitas Indonesia
nstlist = 10
rlist = 1.0
coulombtype = pme
rcoulomb = 1.0
cutoff-scheme = verlet
vdw-type = cut-off
rvdw = 1.0
tcoupl = v-rescale
tc-grps = protein non-protein
tau-t = 0.1 0.1
ref-t = 298 298
Pcoupl = Berendsen
tau-p = 1.0
compressibility = 1e-5 1e-5 1e-5 0 0 0
ref-p = 1.0
refcoord-scaling = all
nstenergy = 100
constraints = all-bonds
54
Universitas Indonesia
Lampiran G. Persiapan Eksperimen Amber
Simulasi yang dilakukan adalah berdasarkan tutorial penggunaan AMBER
yang ada pada website ambermd.org[8]
Dilakukan penyiapan tiga buah file input yang akan dibutuhkan oleh MD
engine yaitu prmtop, inpcrd, dan mdin, dimana menggunakan program tLEaP
yang berjalan pada command line.Langkah-langkah yang perlu dilakukan untuk
menyiapkan file input adalah sebagai berikut:
1. Menjalankan program tLEaP.
2. Memuat MD force field yang akan digunakan, dalam hal ini ff12SB,
yaitu force field untuk protein dan asam nukleat, dengan menggunakan
command source sebagai berikut:
3. Membuat molekul alanine dipeptide dari molekul-molekul lebih kecil
yang sudah tersedia, dalam hal ini yaitu ACE (acetyl group), ALA
(alanine amino acid), dan NME (n-methylamide), dengan
menggunakan command sequence sebagai berikut :
55
Universitas Indonesia
4. Menambahkan air sebagai lingkungan dari molekul alanine dipeptide
(mensimulasikan in vitro dengan melarutkan substance ke dalam air)
dan kondisi batas periodic yang artinya molekul yang hilang melalui
dinding batas yang satu akan muncul pada dinding batas yang
berlawanan. Proses ini dilakukan dengan menggunakan command
solvatebox dan water model TIP3PBOX dengan parameter 10.0
sebagai berikut:
5. Menyimpan file input dengan command saveamberparm lalu
mematikan program tLEaP dengan command quit:
6. Menyiapkan file mdin.
56
Universitas Indonesia
Dibutuhkan tiga buah file mdin yang berbeda yang akan diberi nama
01_Min.in, 02_Heat.in, dan 03_Prod.in untuk membedakannya. Ketiga
file ini nantinya perlu disebutkan ketika menjalankan sander sesuai
dengan tahapan yang bersangkutan. Apabila tidak disebutkan secara
default sander akan mencari file bernama mdin.
Isi dari ketiga setting files tersebut adalah sebagai berikut:
Minimization
Heating
Pada tahap ini, heating dilakukan dari temperatur 0K (tempi) ke 300K
(temp0) dalam waktu 20 ps (jumlah step (nstlim) X rentang waktu
antar step (dt)).
57
Universitas Indonesia
Production
Langkah selanjutnya adalah menjalankan ketiga tahapan proses simulasi
Dinamika Molekular.
Proses Minimization, dijalankan pada kedua lingkungan dengan
command:
Penjelasan command option dari program tersebut adalah sebagai berikut:
-O : Overwrite ouput files jika sudah ada.
-I 01_Min.in : Tentukan nama input baru (defaultnya adalah mdin)
-o 01_Min.out : Tentukan nama output file (defaultnya adalah mdout)
-p prmtop : Tentukan nama file parameter dan topology
-c inpcrd : Tentukan nama file koordinat awal
-r 01_Min.rst : Tentukan nama output restart file yang berisi koordinat
dan kecepatan (defaultnya adalah restrt). File ini akan digunakan sebagai
koordinat input (pengganti inpcrd) pada proses heating.
58
Universitas Indonesia
-inf 01_Min : Tentukan nama info file yang berisi status simulasi
(defaultnya adalah mdinfo)
Output file yang dihasilkan adalah sebagai berikut:
Untuk proses Heating, command yang digunakan adalah:
Berikut adalah penjelasan dari command option barunya:
-x 02_Heat.mdcrd : Tentukan nama output trajectory file untuk
simulasi Dinamika Molekular (defaultnya adalah mdcrd)
Output file 02_Heat.out adalah sebagai berikut:
02_Heat.rst akan digunakan pada proses Production dan 02_Heat.mdcrd
adalah file koordinat Dinamika Molekular.