UNIVERSITAS INDONESIA
IMPLEMENTASI DAN UNJUK KERJA PORTAL OPENFOAM DALAM LINGKUNGAN KOMPUTASI CLUSTER
TESIS
NUGROHO AGUNG PRASETYO 0806444594
FAKULTAS FAKULTAS ILMU KOMPUTER PROGRAM STUDI MAGISTER ILMU KOMPUTER DEPOK JULI 2010
UNIVERSITAS INDONESIA
IMPLEMENTASI DAN UNJUK KERJA PORTAL OPENFOAM DALAM LINGKUNGAN KOMPUTASI CLUSTER
TESIS Diajukan sebagai salah satu syarat untuk memperoleh gelar Magister
NUGROHO AGUNG PRASETYO 0806444594
FAKULTAS FAKULTAS ILMU KOMPUTER PROGRAM STUDI MAGISTER ILMU KOMPUTER DEPOK JULI 2010
HALAMAN PERSETUJUAN
Judul
:
Nama NPM
: :
Implementasi dan Unjuk Kerja Portal OpenFoam Dalam Lingkungan Komputasi Cluster Nugroho Agung Prasetyo 0806444594
Laporan Tesis ini telah diperiksa dan disetujui.
21 Juni 2010
Prof. Drs. Heru Suhartanto, M.Sc., Ph.D Laksana Tri Handoko, Ph.D Pembimbing Tesis I
Pembimbing Tesis II
ii
HALAMAN PERNYATAAN ORISINALITAS
Tesis ini adalah hasil karya saya sendiri, dan semua sumber baik yang dikutip maupun dirujuk telah saya nyatakan dengan benar.
Nama : NPM : Tanda Tangan :
Nugroho Agung Prasetyo 0806444594
Tanggal
21 Juni 2010
:
iii
HALAMAN PENGESAHAN
Tesis ini diajukan oleh Nama NPM Program Studi Judul Tesis
: : Nugroho Agung Prasetyo : 0806444594 : Magister Ilmu Komputer : Implementasi dan Unjuk Kerja Portal OpenFoam Dalam Lingkungan Komputasi Cluster
Telah berhasil dipertahankan di hadapan Dewan Penguji dan diterima sebagai bagian persyaratan yang diperlukan untuk memperoleh gelar Magister pada Program Studi Magister Ilmu Komputer, Fakultas Fakultas Ilmu Komputer, Universitas Indonesia.
DEWAN PENGUJI
Pembimbing 1
:
Prof. Drs. Heru Suhartanto, M.Sc., Ph.D
(
)
Pembimbing 2
:
Laksana Tri Handoko, Ph.D
(
)
Penguji
:
Prof. Drs. T. Basaruddin, M.Sc, Ph.D
(
)
Penguji
:
Prof. Dr. Ir. Aniati Murni Arymurthy, M.Sc.
(
)
Penguji
:
Prof. Dra. Belawati H. Widjaja, M.Sc, Ph.D
(
)
Ditetapkan di Tanggal
: Depok : 12 Juli 2010
iv
KATA PENGANTAR
Segala puji dan syukur saya haturkan kepada Tuhan YME, karena atas berkat,rahmat, dan hikmatnya saja, penulis dapat menyelesaikan penulisan tesis ini. Penulisan tesis ini dalam rangka memenuhi salah satu syarat untuk mencapai gelar Magister Ilmu Komputer pada Program Studi Magister Ilmu Komputer, Fakultas Ilmu Komputer-Universitas Indonesia. Penulis menyadari bahwa tanpa bantuan dan bimbingan dari berbagai pihak, dari masa perkuliahan hingga penyusunan tesis ini, sangatlah sulit bagi penulis untuk menyelesaikannya. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada: • Bapak Heru Suhartanto dan Bapak L.T Handoko selaku dosen pembimbing yang telah menyediakan waktu, tenaga, dan pikirannya untuk mengarahkan penulis dalam penyusunan tesis ini. • Bapak L.T Handoko, Zaenal Akbar dan Arya Adhya Waskita dan tim GFTK LIPI atas berbagai kesempatan diskusi yang telah diberikan. • Kementrian Riset dan Teknologi yang membiayai kulian dan penelitian ini. • Ibu Dede Andhika, Bp. Ari Sugeng Budiyanta, Muhammad Fajar, Wahyudi serta teman-teman lain di Unit Komputasi Pusterapan LAPAN. • Anita Pinalia yang telah memberikan semangat dan perhatiannya. • Teman-teman Magister Ilmu Komputer angkatan 2008. • Ibu-Bapak serta Kakak-adikku tercinta atas doa dan nasehat-nasehatnya sehingga penulis tetap semangat dan sabar dalam menyelesaikan tesis ini. • Bapak-bapak dan Ibu-ibu, kerabat, serta sahabat lainnya yang tidak dapat penulis sebutkan satu persatu. Terima kasih atas doa dan dukungannya. Akhir kata saya berharap Tuhan YME berkenan membalas kebaikan dari semua pihak yang telah membantu. Depok, 30 Mei 2010
Nugroho Agung Prasetyo v
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI TUGAS AKHIR UNTUK KEPENTINGAN AKADEMIS
Sebagai sivitas akademik Universitas Indonesia, saya yang bertanda tangan di bawah ini: Nama NPM Program Studi Fakultas Jenis Karya
: : : : :
Nugroho Agung Prasetyo 0806444594 Magister Ilmu Komputer Fakultas Ilmu Komputer Tesis
demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Indonesia Hak Bebas Royalti Noneksklusif (Non-exclusive Royalty Free Right) atas karya ilmiah saya yang berjudul: Implementasi dan Unjuk Kerja Portal OpenFoam Dalam Lingkungan Komputasi Cluster beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Noneksklusif ini Universitas Indonesia berhak menyimpan, mengalihmedia/formatkan, mengelola dalam bentuk pangkalan data (database), merawat, dan memublikasikan tugas akhir saya selama tetap mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak Cipta. Demikian pernyatan ini saya buat dengan sebenarnya.
Dibuat di Pada tanggal
: :
Depok 21 Juni 2010
Yang menyatakan
(Nugroho Agung Prasetyo)
vi
ABSTRAK
Nama Program Studi Judul
: Nugroho Agung Prasetyo : Magister Ilmu Komputer : Implementasi dan Unjuk Kerja Portal OpenFoam Dalam Lingkungan Komputasi Cluster
Cluster dapat menyelesaikan komputasi yang berat seperti komputasi pada Computational Fluid Dynamic (CFD). Sebuah portal yang dapat digunakan untuk menyelesaikan komputasi pada CFD akan membuat peneliti dapat melakukan komputasi dimanapun. Dengan menggunakan servis portal maka seorang peneliti dapat mendapatkan output dari sebuah cluster tanpa harus tahu arsitektur dari komputasi paralel. Fasilitas ini dirancang untuk bisa diakses dengan mudah melalui situs dinamis, dimana seluruh proses dan eksekusi perintah terkait cukup dilakukan melalui perangkat antarmuka berbasis web. Dijelaskan konsep dan arsitektur dari cluster publicCFD @ LAPAN, serta hasil studi awal dengan menggunakan algoritma SIMPLE sebagai unjuk kinerja sistem untuk melakukan proses simulasi berbasis aplikasi OpenFOAM. Hasil analisa menunjukkan bahwa cluster CFD OpenFOAM berbasis portal ini mampu menyelesaikan kasus yang mempunyai beban komputasi yang besar .
Kata Kunci: Cluster, Computational Fluid Dynamic, Portal Komputasi paralel
vii
ABSTRACT
Name : Nugroho Agung Prasetyo Program : Magister Ilmu Komputer Title : Implementation and Performance of Portal OpenFOAM in Cluster Computing Environment Parallel computing can solve heavy computational computing such as in Computational Fluid Dynamics (CFD).A portal that can be used to complete the computation of CFD and make researchers can perform anywhere.By using a service portal, a researcher can get the result from the cluster without having to know the architecture of a parallel computation.The facility is designed to be easily accessed through a dynamic site, where the entire process and executing command is done through a web-based interface devices.Concept and architecture of the cluster publicCFD @ Lapan explained, and the results of initial studies using SIMPLE algorithm to show performance system with OpenFOAM.Analysis results showed that OpenFOAM CFD cluster-based portal is able to solve cases with large computation. Keywords: Cluster, Computational Fluid Dynamic, Parallel Computing Web Portal
viii
DAFTAR ISI
HALAMAN JUDUL
i
LEMBAR PERSETUJUAN
ii
LEMBAR PERNYATAAN ORISINALITAS
iii
LEMBAR PENGESAHAN
iv
KATA PENGANTAR
v
LEMBAR PERSETUJUAN PUBLIKASI ILMIAH
vi
ABSTRAK
vii
Daftar Isi
ix
Daftar Gambar
xii
Daftar Tabel
xiv
1
2
PENDAHULUAN 1.1 Latar Belakang . . . . . . . . 1.2 Permasalahan . . . . . . . . . 1.2.1 Definisi Permasalahan 1.2.2 Batasan Permasalahan 1.3 Tujuan . . . . . . . . . . . . . 1.4 Metodologi Penelitian . . . . . 1.5 Sistematika Penulisan . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
KOMPUTASI PARALLEL DALAM COMPUTATIONAL DYNAMICS 2.1 Computational Fluid Dynamics Secara Singkat . . . . . . 2.2 Persamaan aliran fasa tunggal . . . . . . . . . . . . . . . 2.3 OpenFOAM . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Struktur File Pada OpenFOAM . . . . . . . . . . 2.3.2 Sistem Operasi . . . . . . . . . . . . . . . . . . . ix
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
1 1 4 5 5 5 6 6
FLUIDS . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
8 8 10 10 12 15
x 2.3.3 2.3.4 2.3.5 2.3.6 3
4
5
6
TORQUE /OpenPBS Maui . . . . . . . . Python Server Pages GNUPlot . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
ALGORITMA PENGUJIAN CFD 3.1 Persamaan Tekanan . . . . . . . . . . . . . . . . . 3.2 Algoritma SIMPLE . . . . . . . . . . . . . . . . . 3.3 Implementasi algoritma SIMPLE pada OpenFOAM 3.4 High Performance Computing . . . . . . . . . . . 3.4.1 Dekomposisi Mesh . . . . . . . . . . . . .
. . . .
. . . . .
ARSITEKTUR CLUSTER CFD BERBASIS PORTAL 4.1 Konsep . . . . . . . . . . . . . . . . . . . . . . . . 4.2 PublicCFD@LAPAN framework . . . . . . . . . . 4.3 Data Flow Diagram . . . . . . . . . . . . . . . . . . 4.3.1 Level Konteks dari PublicCFD@LAPAN . . 4.3.2 DFD Level Pertama PublicCFD@LAPAN . . 4.3.3 DFD Level Dua Login System . . . . . . . . 4.3.4 DFD Level Dua User System . . . . . . . . . 4.3.5 DFD Level Dua Administrator System . . . . 4.3.6 DFD Level Tiga User Management . . . . . 4.3.7 DFD Level Tiga User Data Management . . 4.3.8 DFD Level Tiga User Eksekusi Data . . . . . 4.4 Use Case Diagram . . . . . . . . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
. . . .
. . . . .
. . . . . . . . . . . .
PERFORMANSI KOMPUTASI FLUIDA PADA CLUSTER 5.1 Topologi dan Skenario Percobaan . . . . . . . . . . . . . . . . . 5.2 Percobaan performansi . . . . . . . . . . . . . . . . . . . . . . . 5.3 Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Analisis Pengaruh Ukuran Memori Mesh Terhadap Waktu Iterasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 Analisis Jumlah Prosesor Terhadap Performa PC . . . . . 5.3.3 Analisis Jumlah Prosesor Terhadap Waktu Iterasi . . . . .
. . . .
16 16 17 17
. . . . .
18 18 19 20 24 24
. . . . . . . . . . . .
29 29 31 35 35 36 36 37 38 38 39 40 41
43 . 43 . 43 . 45 . 46 . 47 . 47
KESIMPULAN DAN SARAN 49 6.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2 Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Universitas Indonesia
xi Daftar Referensi
51
LAMPIRAN A Lampiran 1 A.1 Hasil Percobaan . . . . . . . . . . . . . . A.1.1 Tabel Data . . . . . . . . . . . . A.1.2 Grafik Residual Proses . . . . . . A.1.3 Gambar Hasil Post Processing . . A.1.4 Spesifikasi Data Mesh . . . . . . A.1.4.1 rohr turbine leit . . . . A.1.4.2 rohr turbine leit inviscid A.1.4.3 pitzDaily . . . . . . . . A.1.4.4 pitzDailyExptInlet . . . A.2 Antar Muka Web . . . . . . . . . . . . . A.2.1 User . . . . . . . . . . . . . . . . A.2.2 Administrator . . . . . . . . . . .
1
. . . . . . . . . . . .
B Lampiran 2 B.1 Installasi Operating System . . . . . . . . . B.2 Pengaturan Network File System . . . . . . B.3 SSH tanpa password untuk slave node . . . B.4 Installasi Torque Cluster Resource Manager B.4.1 Persiapan pada master . . . . . . . B.4.2 Persiapan pada client . . . . . . . . B.4.3 Pemeriksaan koneksi . . . . . . . . B.5 Installasi MAUI Cluster Scheduller . . . . . B.6 Installasi OpenFOAM . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . .
53 53 54 56 59 61 63 64 65 67 69 69 74
. . . . . . . . .
77 77 78 80 81 81 82 83 84 86
Universitas Indonesia
DAFTAR GAMBAR
2.1 2.2 2.3
Struktur Organisasi Data Dari Sebuah Kasus . . . . . . . . . . . . . 13 File fvSolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 File fvSchemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1 3.2 3.3 3.4
Algoritma SIMPLE. . . . . Struktur Mesh . . . . . . . Mesh Pada Kasus pitzDaily Parallelisasi Kasus. . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4.1 4.2 4.3 4.4
Arsitektur PublicCFD@LAPAN. . . . . . . . . . . . . . . . . . . Penggunaan Cluster . . . . . . . . . . . . . . . . . . . . . . . . . Arsitektur cluster PublicCFD@LAPAN . . . . . . . . . . . . . . Arsitektur jaringan cluster laboratorium jaringan komputer fasilkom UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 DFD Level Konteks PublicCFD@LAPAN. . . . . . . . . . . . . . 4.6 DFD Level 1 publicCFD@LAPAN. . . . . . . . . . . . . . . . . 4.7 DFD Level 2 Login System publicCFD@LAPAN. . . . . . . . . . 4.8 DFD Level 2 User System publicCFD@LAPAN. . . . . . . . . . 4.9 DFD Level 2 Administrator System publicCFD@LAPAN. . . . . 4.10 DFD Level 3 Manajemen User publicCFD@LAPAN. . . . . . . . 4.11 DFD Level 3 Manajemen Data User publicCFD@LAPAN. . . . . 4.12 Use Case Diagram publicCFD@LAPAN. . . . . . . . . . . . . . 5.1
. . . .
. 30 . 31 . 33 . . . . . . . . .
5.3 5.4
Perbandingan waktu iterasi terhadap jumlah prosesor untuk kasus 3-D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perbandingan waktu iterasi terhadap jumlah prosesor untuk kasus 2-D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perbandingan percepatan terhadap jumlah prosesor untuk kasus 3-D. Perbandingan percepatan terhadap jumlah prosesor untuk kasus 2-D.
A.1 A.2 A.3 A.4
Residual Kasus PitzDaily . . . . . Residual Kasus PitzDailyExptInlet Residual Kasus Nozzle . . . . . . Residual Kasus Rohr Turbine Leit
5.2
xii
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
20 24 25 27
. . . .
34 36 36 37 37 38 39 40 41
44 44 45 45 57 57 58 58
xiii A.5 A.6 A.7 A.8 A.9 A.10 A.11 A.12 A.13 A.14 A.15 A.16 A.17 A.18 A.19 A.20 A.21 A.22 A.23 A.24 A.25
Residual Kasus Rohr Turbine Leit inviscid PitzDaily t=7 . . . . . . . . . . . . . . . PitzDailyExptInlet t=7 . . . . . . . . . . Nozel 3D t=20 . . . . . . . . . . . . . . rohr turbine 3D t=6 . . . . . . . . . . . . rohr turbine inviscid 3D t=6 . . . . . . . . Halaman Muka . . . . . . . . . . . . . . Halaman Registrasi . . . . . . . . . . . . Halaman Awal . . . . . . . . . . . . . . . Halaman File . . . . . . . . . . . . . . . Upload File . . . . . . . . . . . . . . . . Halaman Eksekusi . . . . . . . . . . . . Halaman Hasil . . . . . . . . . . . . . . Halaman Monitoring Proses . . . . . . . Halaman Log Hasil . . . . . . . . . . . . Halaman Residual . . . . . . . . . . . . . Halaman Aktifasi User . . . . . . . . . . Halaman Manajemen User . . . . . . . . Halaman Manajemen Memory . . . . . . Halaman Manajemen Prosesor . . . . . . Halaman Manajemen Solver . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
59 59 60 60 60 61 69 69 70 70 71 71 72 72 73 73 74 74 75 75 76
B.1 Installasi Sistem Operasi . . . . . . . . . . . . . . . . . . . . . . . 77
Universitas Indonesia
DAFTAR TABEL
2.1
Statistik Forum CFD . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1 4.2
Protokol TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Tabel konfigurasi IP Host . . . . . . . . . . . . . . . . . . . . . . . 32
5.1
Data Percobaan Kasus . . . . . . . . . . . . . . . . . . . . . . . . 43
A.1 Tabel Performansi Kecepatan . . . . . . . . . . . . . . . . . . . . . 54 A.2 Tabel Performansi Percepatan . . . . . . . . . . . . . . . . . . . . 55 A.3 Tabel Performansi Percepatan Kasus PitzDaily Dengan Besar Mesh Berbeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
xiv
BAB 1 PENDAHULUAN 1.1
Latar Belakang
Computational Fluid Dynamics (CFD) adalah sebuah cabang dari mekanika fluida yang menggunakan metode dan algoritma numerik untuk menganalisa masalah yang menyangkut aliran fluida, atau sedikitnya beberapa fenomena fisika yang dimodelkan sebagai aliran fluida. Karena interaksi yang besar yang menyertai didalam fluida (baik gas maupun cairan), komputer digunakan untuk melakukan jutaan kalkulasi yang diperlukan untuk menyimulasikannya dengan permukaan yang telah didefinisikan dengan batasan kondisi. Bahkan dengan super komputer yang berkecepatan tinggi pada banyak kasus hanya beberapa solusi yang dapat diperoleh. Pada penelitian lanjutan, hasil yang didapatkan oleh software CFD semakin meningkatkan akurasi dan kecepatan dari skenario simulasi yang rumit seperti aliran transonik dan turbulensi [2]. Prinsip dasar perhitungan secara CFD adalah membagi domain perhitungan menjadi dalam bentuk diskrit, yang dikenal dengan istilah mesh atau grid. Upaya (effort) perhitungan secara CFD akan semakin besar bila : • Wilayah (domain) perhitungan semakin besar atau semakin luas. Misalnya usaha perhitungan secara 3-D akan lebih besar dibandingkan dengan perhitungan secara 2-D. • Bentuk grid semakin rumit. Biasanya bentuk grid yang rumit digunakan untuk mendapatkan hasil perhitungan dan simulasi yang lebih akurat. • Menggunakan model turbulensi yang lebih canggih. • Menggunakan orde diskritisasi yang lebih tinggi. Semua parameter aerodinamika dan termodinamika aliran dihitung untuk setiap grid. Pemodelan diskrit merupakan teknik penyelesaian persamaan yang semula dalam bentuk persamaan kontinu menjadi persamaan dalam bentuk diskrit. Solusi persamaan dalam bentuk diskrit dapat diperoleh dengan cara iterasi. Jumlah iterasi yang diperlukan untuk sebuah solusi sangat dipengaruhi oleh teknik penggunaan CFD itu sendiri. Apabila diinginkan solusi cepat diperoleh, maka kecepatan perhitungan menuju konvergen dapat ditingkatkan. Dengan 1
2 demikian jumlah iterasi yang diperlukan untuk sebuah solusi menjadi lebih sedikit. Konsekuensinya adalah kemungkinan terjadi kesalahan atau perhitungan menuju divergen menjadi semakin besar. Demikian juga sebaliknya. Semakin besar usaha didalam perhitungan CFD yang diperlukan, maka untuk kemampuan dan kapasitas perangkat keras yang sama dibutuhkan waktu yang lebih lama untuk setiap iterasinya. Dengan usaha didalam perhitungan CFD yang sama, maka waktu yang diperlukan untuk setiap iterasi dapat diperkecil dengan meningkatkan kemampuan dan kapasitas perangkat keras atau PC nya. Kemampuan dan kapasitas perangkat keras dapat ditingkatkan antara lain dengan cara : • Meningkatkan kecepatan prosesor pada PC • Menambah memori dalam PC • Menggunakan beberapa PC secara bersamaan atau paralel Menurut Flynn [14], lingkungan komputasi itu sendiri bisa diklasifikasikan berdasarkan aliran data dan instruksi programnya dihubungkan yang terdiri atas empat kategori berikut ini : • Single Instruction Stream-single Data stream (SISD), terdapat satu prosesor dan biasa juga disebut komputer sekuensial, contohnya komputer model van neumann • Single Instruction Stream-multiple Data stream (SIMD), terdapat sejumlah prosesor dan aliran data, tetapi hanya memiliki satu instruksi/program. Setiap prosesor memiliki memori lokal dan duplikasi program yang sama sehingga masing-masing prosesor akan mengeksekusi instruksi/program yang sama, tetapi pada data yang berbeda dan prosesor bekerja secara sinkron sehingga mendukung paralelisasi pada proses komputasi data. • Multiple Instruction Stream-single Data stream(MISD), terdapat sejumlah prosesor, kontrol unit dan aliran instruksi tetapi hanya memiliki satu aliran data. Data yang ada di common memory akan dimanipulasi secara bersamaan oleh semua prosesor, akibatnya akan terjadi kendala jika sejumlah prosesor melakukan update data sedangkan data yang lama masih dibutuhkan oleh sejumlah prosesor lainnya. Sampai saat ini belum ada implementasi mesin komputer yang memenuhi kategori ini. • Multiple Instruction Stream-multiple Data stream (MIMD), terdapat sejumlah prosesor, apliran instruksi dan aliran data. Setiap prosesor memiliki kontrol Universitas Indonesia
3 unit, memori lokal serta memori bersama (shared memory) yang mendukung proses paralelisasi dari data dan instruksi. Prosesor dapat bekerja sesuai dengan instruksi program yang berbeda dan pada data yang berbeda. Prosesor juga dapat bekerja secara asinkron. Berdasarkan klasifikasi Flynn’s diatas maka secara umum proses komputasi paralel dapat dilaksanakan pada komputer kategori SIMD dan MIMD. Arsitektur SPMD (Single Program Multiple Data) dan MPMD (Multiple Program Multiple Data) merupakan variasi dari SIMD dan MIMD yang tidak terpaku pada paradigma klasifikasi Flynn’s. Pada SPMD, sebuah program yang sama yang terdiri atas kumpulan instruksi program atau kumpulan subprogram dapat dijalankan pada prosesor yang berbeda dengan mengeksekusi data yang berbeda. Karena program bisa memproses data yang berbeda-beda pada subprogram yang berbeda maka ada program SPMD tidak harus selalu bekerja secara sinkron seperti pada SIMD, sinkronisasi biasanya dilakukan pada bagian awal dan bagian akhir dari program atau subprogram yang diduplikasikan pada semua prosesor, lihat Lewis [20]. Komputasi paralel didasarkan pada proses pembentukan bagian-bagian tertentu (tasks) dari proses komputasi yang bisa dilakukan secara serentak pada beberapa prosesor, serta proses komunikasi antara tasks tersebut. Komputasi paralel diharapkan bisa membuka peluang metode atau cara yang dapat menyelesaikan persoalan yang relatif sulit, kompleks dan mahal yang sebelumnya sulit atau tidak bisa dilakukan komputer sekuensial. Meningkatkan kecepatan komputasi numerik menjadi jauh lebih cepat daripada di lingkungan komputasi sekuensial. Menyelesaikan persoalan yang ditinjau dari sisi ukuran dan batasan waktunya (atau akurasinya) tidak bisa diselesaikan menggunakan lingkungan komputasi sekuensial, lihat Kumar [22], Lewis [20], Suhartanto [6]. Sebagai ilustrasi proses paralelisasi yaitu Masalah Pemodelan dan Prakiraan Cuaca berikut ini, lihat Kumar [22]. Misalkan cuaca untuk daerah seluas 3000x3000 mil2 dengan ketinggian sampai dengan 11 mil di atas permukaan laut dipartisi menjadi segmen-segmen berukuran 0.1x0.1x0.1 mil3 menjadi sekitar 1011 segmen yang berbeda. Misalkan data parameter cuaca dihitung setiap setengah jam dalam periode waktu dua hari, sehingga terdapat 100 kali perhitungan. Jika perhitungan untuk satu segmen membutuhkan 100 instruksi, maka total instruksi untuk seluruh segmen dalam periode dua hari menjadi 1015 instruksi. Jika sebuah mesin superkomputer serial dapat melakukan operasi sebanyak 109 instruksi/detik maka penyelesaian model tersebut secara serial membutuhkan waktu sekitar 280 jam atau lebih dari 11 hari. Hal ini tentunya sangat tidak rasional untuk memprediksi cuaca Universitas Indonesia
4 48 jam kedepan. Pada pemrosesan secara paralel, misalkan ada mesin paralel dengan seribu workstation maka 1011 segmen tersebut bisa menjadi 1012 instruksi. Jika masing-masing workstation dapat melakukan 108 instruksi/detik dan berkomunikasi satu sama lainnya, maka penyelesaian model tersebut secara paralel membutuhkan waktu 10000 detik atau kurang dari 3 jam. Hasil ini sangat rasional untuk memprediksi keadaan cuaca 48 jam kedepan. Berdasarkan ilustrasi di atas, proses paralel diharapkan dapat membuka peluang untuk menyelesaikan masalah sebelumnya secara rasional tidak terselesaikan oleh proses serial. Proses paralel dapat membuat penyelesaian masalah menjadi lebih cepat atau menjadi lebih akurat karena dengan tersedianya mesin paralel yang lebih banyak memungkinkan kita mempartisi daerah tersebut menjadi segmen-segmen yang lebih halus. Meningkatkan kecepatan prosesor memang secara langsung dapat mempercepat waktu iterasi. Namun untuk kasus dengan ukuran memori yang sangat besar, peningkatan kecepatan prosesor terkadang tidak memberikan pengaruh yang signifikan. Tambahan memori dalam PC akan memberikan pengaruh yang signifikan untuk kasus-kasus dengan ukuran memori yang besar. Dengan kata lain penambahan memori tidak terlalu mempercepat waktu iterasi untuk kasus-kasus dengan ukuran memori yang sangat kecil, misalnya simulasi nosel secara 2-D. Cluster dapat melakukan penghematan waktu pengerjaan tetapi bukan berarti penghematan waktu komputasi akan efisien di semua beban pengerjaan. Ada kemungkinan untuk ruang lingkup dan beban pengerjaan yang kecil penggunaan cluster menjadi tidak efektif.
1.2
Permasalahan
Pada saat ini grup riset di Indonesia belum mampu untuk membangun dan memelihara sebuah cluster yang komprehensif untuk aplikasi khusus seperti OpenFOAM. Walaupun kebutuhan akan fasilitas komputasi berkemampuan tinggi (High Performance Computing / HPC) untuk komputasi CFD berskala besar cukup tinggi. Sebab utamanya adalah kekurangan : • Sumber daya manusia : Sebuah cluster walaupun berskala kecil membutuhkan seorang administrator yang dengan kemampuan yang tinggi dan familiar dengan lingkungan parallel. Kemampuan ini sangat penting untuk mengkonfigurasikan cluster untuk menyesuaikan dengan kebutuhan komputasi yang dibutuhkan oleh sistem. Jika tidak tersedia maka cluster tidak dapat mendapatkan performansi yang diinginkan. • Sumber daya finansial : Walaupun biaya perangkat keras semakin murah, Universitas Indonesia
5 membangun sebuah sistem cluster tetap membutuhkan bantuan dana yang banyak tidak dapat disediakan oleh grup riset. Hal ini harus diingat bahwa seluruh data juga termasuk ruangan khusus dengan lingkungan yang sesuai dan perawatan sehari-hari. Dilain pihak karena kekurangan dari sumber daya manusia, khususnya ahli yang mempunyai kemampuan pada pemograman parallel, seseorang yang dapat dengan mudah memprediksi kebutuhan karakteristik yang khusus untuk melakukan pekerjaan yang dapat meningkatkan utilitas cluster dengan persentasi yang tinggi untuk mengoptimalkan resource pada cluster.
1.2.1
Definisi Permasalahan
Dibutuhkan sebuah web cluster interface yang dapat mengakomodasi kegiatan Computational Fluids Dynamic yang mempunyai antarmuka yang dapat dipahami oleh pengguna dengan menggunakan aplikasi Open Source.
1.2.2
Batasan Permasalahan
Batasan Kegiatan untuk pengerjaan tesis ini yaitu: • Menggunakan sistem operasi linux. • Menggunakan aplikasi open source (OpenFOAM) • Pengguna hanya dapat berinteraksi dengan web saja • Pengguna memasukkan file kasus OpenFoam dengan menggunakan format zip • Percobaan pada tesis ini menggunakan simulasi aliran dengan tekanan incompressible
1.3
Tujuan
Didalam tesis ini akan dilakukan pembangunan cluster yang akan digunakan untuk menghemat waktu komputasi dan menggunakan aplikasi CFD OpenFOAM yang digunakan untuk solver desain yang telah dibuat oleh pengguna dengan berbasis web agar pengguna yang tidak berpengalaman didalam komputasi paralel juga dapat dengan menggunakan fasilitas cluster ini.
Universitas Indonesia
6
1.4
Metodologi Penelitian
Metodologi penelitian yang akan digunakan pada tesis ini adalah sebagai berikut: • Studi Literatur Pada tahap ini dilakukan studi literatur tentang teori-teori yang melandasi penelitian ini. Diantaranya adalah cluster, OpenFOAM, Computational Fluid Dynamics serta paper/jurnal dari penelitian yang telah ada. • Pembuatan cluster komputer untuk CFD Pada tahap ini dilakukan perancangan dan pembuatan cluster berbasis web untuk CFD dengan menggunakan OpenFOAM. • Pembuatan web sebagai cluster interface Pada tahap ini dilakukan perancangan dan pembuatan web untuk cluster interface. • Percobaan dengan pengujian kasus Tahap ini menguji kinerja dari cluster dengan menggunakan kasus untuk mengetahui kinerja dari cluster. Hasil akhir yang diharapkan adalah dapat menunjukkan tujuan dari penelitian telah tercapai.
1.5
Sistematika Penulisan
Sistematika penulisan laporan adalah sebagai berikut: • Bab 1 PENDAHULUAN Pada bab ini berisi pendahuluan dan latar belakang masalah yang dihadapi • Bab 2 KOMPUTASI PARALLEL DALAM COMPUTATIONAL FLUIDS DYNAMICS Pada bab ini berisi dasar teori dari CFD dan komponen pembentuk dari cluster • Bab 3 ALGORITMA PENGUJIAN CFD Pada bab ini dijelaskan tentang algoritma yang digunakan didalam percobaan cluster. • Bab 4 ARSITEKTUR CLUSTER CFD BERBASIS PORTAL Pada bab ini akan diberikan penjelasan tentang arsitektur dari PublicCFD@LAPAN
Universitas Indonesia
7 • Bab 5 PERFORMANSI KOMPUTASI FLUIDA PADA CLUSTER Pada bab ini akan dilakukan analisa performansi dari penggunaan cluster yang digunakan untuk menyelesaikan permasalahan CFD • Bab 6 KESIMPULAN DAN SARAN Pada bab ini berisi kesimpulan dari tesis.
Universitas Indonesia
BAB 2 KOMPUTASI PARALLEL DALAM COMPUTATIONAL FLUIDS DYNAMICS 2.1
Computational Fluid Dynamics Secara Singkat
Dasar dari hampir semua masalah CFD adalah persamaan Navier-Stokes, yang mendefinisikan semua aliran fluida berfasa tunggal: ρ(
∂U ~ ~ +5·T +f , +U · 5U) = −5p ∂t
(2.1)
Dimana U adalah velositas fluida, t adalah waktu, ρ adalah densitas fluida, p adalah tekanan, T adalah tensor tekanan dan f adalah gaya lainnya. Persamaan ini dihasilkan dari hukum kedua Newton untuk fluida dan secara alami nonlinier. Nonliniaritas ini membuat sistem menjadi kompleks dan tidak mudah untuk ditangani. Persamaan ini dapat disederhanakan dengan mengurangi hal-hal yang mendeskripsikan viskositas untuk mendapatkan persamaan Euler. Penyederhanaan yang lebih lanjut, dengan mengurangi hal-hal yang mendeskripsikan vortisitas akan menghasilkan persamaan yang lebih potensial. Pada beberapa kasus seperti pada aliran satu dimensi dan aliran Stokes atau disebut juga aliran creeping, persamaan-persamaan ini dapat disederhanakan untuk menghasilkan persamaan yang dilinearkan. Keunggulan yang dipunyai komputer dapat mengakselerasi pengembangan dari metode tiga dimensi. Pekerjaan praktik pertama pada metode tiga dimensi untuk menyelesaikan persamaan potensial yang dilinearkan dilakukan pada tahun 1966 [12]. Metode ini mendiskritisasi permukaan dari geometri dengan panel, memberikan perkembangan pada kelas program yang dinamakan Metode Panel. Pertimbangan yang paling dasar pada CFD adalah bagaimana satu perlakuan pada sebuah diskretisasi pada komputer. Sebuah metode digunakan untuk mendiskretisasi domain spasial ke dalam sel-sel kecil untuk membentuk sebuah volume mesh atau grid, kemudian mengaplikasikannya ke dalam algoritma yang sesuai untuk menyelesaikan persamaan-persamaan dari gerakannya (Persamaan Euler untuk inviscid dan Navier-Stokes untuk aliran viscious). Sebagai tambahan, sebuah mesh dapat bersifat irregular ( sebagai contoh berisi segitiga pada 2D, atau piramida solid pada 3D) atau regular; perbedaan karakteris-
8
9 tik dari metode sebelumnya adalah bahwa setiap sel harus disimpan secara terpisah pada memori. Pada saat ada tumbukan atau diskontinuitas, skema dengan resolusi tinggi seperti Total Variation Diminishing (TVD), Flux Corrected Transport (FCT), Essentiallly NonOscillatory(ENO), atau skema MUSCL dibutuhkan untuk menghindari osilasi palsu (fenomena Gibbs) pada hasil solusi. Pada semua pendekatan tersebut, prosedur dasar digunakan yaitu, • Pre-processing yang berisi tentang definisi geometri (batasan fisik) dari kasus, proses ini membagi volume yang dipakai oleh fluida ke dalam sel-sel diskrit (mesh) yang mungkin dapat manjadi seragam atau tidak seragam, mendefinisikan model fisik dan mendefinisikan kondisi batasan. • Proses Solving, pada tahap ini diskritisasi yang dilakukan pada tahap preprocessing dan menghasilkan mesh yang terdiri dari bagian-bagian seperti cells, faces serta pengaturan kondisi awal pada tahap preprocessing akan dihitung dengan menggunakan solver yang ditetapkan, pada tesis ini akan dibahas solver dengan menggunakan algoritma Semi-Implicit Method for PressureLinked Equation (SIMPLE) • Post-processing untuk menganalisa dan memvisualisasikan solusi yang diinginkan Poin yang paling penting didalam simulasi CFD adalah pada saat diskretisasi pada tahap preprocessing. Pada tahap ini dibuat sebuah model dan didiskretisasi dalam bentuk mesh. Perhatian yang khusus juga harus dilakukan untuk memastikan bahwa diskretisasi mesh akan memberikan solusi agar tidak terjadi diskontinuitas untuk hal ini digunakan teknik manual didalam pembuatan model maupun penyempurnaan mesh. Bagaimanapun, pada masa kini ada beberapa paket aplikasi untuk menyelesaikan persoalan CFD dengan cara yang sederhana menggunakan algoritma modern pada berbagai platform baik lingkungan parallel maupun tidak. Salah satu dari paket aplikasi CFD yang paling populer adalah OpenFOAM (Open Field Operation and Manipulation) [16, 18]. Software ini menggunakan C++ toolbox untuk melakukan pengubahan dan penambahan dari solver numerik untuk rangkaian masalah mekanika termasuk didalamnya CFD.
Universitas Indonesia
10
2.2
Persamaan aliran fasa tunggal
Persamaan Navier-Stokes untuk aliran fasa tunggal dengan kekentalan dan berat jenis yang konstan adalah sebagai berikut : ~ =0 ∇ · ρU
(2.2)
∂U + 5 · (~v~v) − 5 · (µ 5~v) = − 5 p (2.3) ∂t Persamaan (2.2) menyatakan bahwa divergensi dari velositas harus nol, yang berarti fluida tidak dapat mengembang (divergensi positif) ataupun terkompresi (divergensi negatif). Solusi untuk persamaan Kopel ini tidak dapat dicari secara langsung dikarenakan persamaan eksplisit untuk tekanan tidak tersedia. Salah satu pendekatan yang umum dilakukan untuk mendapatkan sebuah persamaan untuk tekanan dengan menggunakan selisih dari persamaan momentum dan mensubstitusikannya dengan persamaan kontinuitas.
2.3
OpenFOAM
Salah satu cluster CFD yang ada saat ini adalah OpenFOAM (Open Field Operation and Manipulation). OpenFOAM dibuat oleh OpenCFD Ltd, gratis dan open source, dilisensikan dibawah GNU Public License. Kepopuleran aplikasi ini dapat dibandingkan dengan aplikasi komersial yang paling populer saat ini yaitu Fluent, lihat tabel 2.1. Untuk melihat seberapa besar aktivitas dan kompetisi antara clustercluster CFD dapat dilihat dari aktifitas forum online CFD [?]. Berdasarkan aktifitas pada tanggal 22 April 2010 total thread pada forum ini adalah 72.326, posting 252.332, dan pengguna yang teregistrasi adalah 13.976 orang. Tabel 2.1: Statistik Forum CFD
Aplikasi
Lisensi
Thread
Posts
ANSYS (Fluent & CFX)
Komersial
37.656
113.481
CD-Adapco (Star-CD)
Komersial
5.208
17.349
FloCFD, FloWorks, FloTherm
Komersial
146
539
FLOW-3D
Komersial
335
1.468
NUMECA
Komersial
241
653
Open Source
8.793
49.168
Shareware
1.315
3.856
OpenFOAM Phoenics
Universitas Indonesia
11 Aplikasi ini memiliki koleksi solver yang semakin berkembang yang dapat diaplikasikan ke berbagai macam masalah. OpenFOAM adalah salah satu dari aplikasi ilmiah utama yang ditulis dengan menggunakan C++, dan dirilis sebagai Open Source Software dibawah GNU General Public License (GPL). Kemampuan OpenFOAM dapat dibandingkan dengan hampir semua aplikasi komersial yang secara general digunakan untuk menyelesaikan persoalan CFD. Hal ini tergantung dari pilihan pengguna untuk menggunakan aplikasi pihak ketiga didalam menggunakan aplikasi pre dan post processing, dan OpenFOAM sendiri terdapat didalamnya : sebuah plugin (paraFOAM) untuk memvisualisasikan dari data hasil dan mesh di ParaView, sebuah converter yang dapat digunakan secara luas untuk melakukan konversi dari file-file yang didapatkan dari aplikasi komersial, dan sebuah pembuat mesh hexahedral otomatis untuk konfigurasi pembuatan mesh. OpenFOAM dipahami sebagai rangkaian platform mekanika tetapi ideal utuk membuat simulasi multi-physics. Sebagai contoh, OpenFOAM mempunyai sebuah library dan solver untuk secara efisien mencari partikel pada aliran multiphase dengan pendekatan lagrangian. OpenFOAM dapat mensimulasikan apa saja dari aliran fluida yang kompleks termasuk reaksi kimia, turbulensi dan perpindahan panas, sampai dinamika benda padat, elektromagnet dan opsi harga finansial. Inti dari teknologi OpenFOAM adalah modul-modul C++ yang efisien. Modulmodul ini dibuat untuk : • solver : Untuk mensimulasikan masalah-masalah spesifik pada perekayasaan mekanik • utilities : Untuk melakukan pre dan post processing dari manipulasi data sampai visualisasi dan melakukan proses mesh • libraries : Digunakan untuk membuat toolbox-toolbox yang dapat diakses oleh solver atau utilities, seperti pustaka untuk model-model fisika OpenFOAM menyediakan banyak solver, utilities dan library yang telah dikonfigurasikan dan dapat digunakan seperti yang dilakukan oleh aplikasi simulasi. Bagaimanapun, OpenFOAM adalah aplikasi Open Source, tidak hanya kode-kode penyusunnya tetapi juga struktur dan hierarki desainnya sehingga solver, utilities dan librarynya dapat dikembangkan lebih jauh. Rantai solusi proses CFD : • Solid Modelling Solid modeling adalah sebuah tahap didalam preprocessing dimana dibuat seUniversitas Indonesia
12 buah model yang berfungsi sebagai pembatas didalam perhitungan yang selanjutnya akan di lanjutkan dengan proses meshing. • Meshing (OpenFOAM) Meshing adalah sebuah proses untuk membagi objek yang telah dibuat didalam proses solid modeling menjadi bagian-bagian kecil. Ukuran mesh yang terdapat didalam suatu objek akan mempengaruhi ketelitian analisis CFD yang akan dilakukan. Semakin kecil ukuran mesh pada suatu objek, maka hasil yang didapatkan akan semakin teliti, tetapi juga membutuhkan daya komputasi dan waktu yang lebih lama dibandingkan dengan obyek yang memiliki ukuran mesh yang lebih besar. • Solving (OpenFOAM) Pada tahap ini dilakukan proses penghitungan data-data input dengan persamaan yang terlibat secara iteratif. Artinya penghitungan dilakukan hingga hasil menuju error terkecil atau hingga mencapai nilai yang konvergen. Penghitungan dilakukan secara menyeluruh terhadap volume kontrol dengan proses integrasi persamaan diskrit. • Postprocessing Tahap ini merupakan tahap akhir dimana hasil perhitungan diinterpretasikan ke dalam gambar, grafik bahkan animasi dengan pola-pola warna tertentu.
2.3.1
Struktur File Pada OpenFOAM
Struktur data kasus yang digunakan pada web cluster ini mengikuti standar file kasus pada OpenFOAM. Data kasus dibagi-bagi sesuai dengan fungsinya masingmasing. Untuk mendapatkan file geometri yang dapat digunakan oleh OpenFOAM maka pengguna dapat aplikasi-aplikasi preprosesing yang banyak terdapat diluar seperti, gambit, Catia, starCD dan lainnya. Data ini dapat dikonversikan kedalam file geometri dengan menggunakan properti dari OpenFOAM. Setiap kasus terdiri dari 3 folder seperti yang ditunjukkan pada gambar 2.1. Fungsi dari setiap direktori (system, constant, time) akan dibahas pada paragraf berikutnya.
Universitas Indonesia
13
Gambar 2.1: Struktur Organisasi Data Dari Sebuah Kasus
Direktori system mempunyai paling tidak 3 data yang menentukan solver yang dipilih (fvSolution), skema diskritisasi (fvSchemes) dan kontrol waktu dan informasi penyimpanan(controlDict). Karena pada topik tesis ini membuat cluster maka diperlukan sebuah file yang digunakan untuk membagi domain (decomposeParDict). Direktori constant mempunyai data mesh yang berada pada subdirektori polyMesh seperti blockMeshDict, faces, owner, neighbour dan points yang merupakan properti hasil preprocessing. Untuk pengujian akan digunakan turbulensi maka diperlukan sebuah file yang mendeskripsikan hal tersebut (RASProperties) dan model transportasinya (transportProperties). Direktory time mempunyai data untuk setiap iterasi waktu sesuai dengan pengaturan pada file controlDict dengan kata kunci startTime. Direktori awal yang harus ada adalah direktori 0 yang berisi properti tentang keadaan awal. Untuk solver simpleFoam, file-file yang harus ada adalah file tekanan (p), berat jenis (U) , tensor (R), nutilda dan epsilon. Gambar 2.2 adalah isi dari file fvSolution yang merupakan file kontrol untuk penghentian perhitungan, yaitu reevaluasi nilai residual yang sedang dikomputasikan. Solver akan berhenti jika kondisi ini diraih, yaitu : 1. Residual turun dibawah solver tolerance (tolerance) 2. Rasio dari residual saat ini dibawah relative tolerance (relTol)
Universitas Indonesia
14 Solver yang digunakan untuk matrik simetris adalah Preconditioned Conjugate Gradient (PCG) dengan preconditoner Diagonal Incomplete Cholesky (DIC). Sedangkan solver untuk matrik asimetrik adalah Preconditioned Bi-Conjugate Gradient (PBiCG) dengan preconditioner Diagonal Incomplete-LU (DILU).
Gambar 2.2: File fvSolution
Universitas Indonesia
15 Gambar 2.3 adalah isi dari file fvSchemes yang merupakan pustaka untuk persamaan yang akan disolve.
Gambar 2.3: File fvSchemes
2.3.2
Sistem Operasi
Sistem operasi yang digunakan dalam pembuatan cluster adalah Fedora GNU/linux Core 12, pemilihan sistem operasi ini didasarkan oleh beberapa pertimbangan sebaUniversitas Indonesia
16 gai berikut : • Free Software, artinya dapat mengambil source program GNU/Linux tanpa dikenai biaya. • Open Source, artinya semua listing program dari source code OS tersebut dapat lihat dan dapat dimodifikasi tanpa adanya larangan dari siapa pun. • Kestabilan dari program-program GNU/Linux yang telah teruji. Sistem tidak akan mengalami hang walaupun telah menjalankan program tersebut sebulan atau lebih dan tidak perlu melakukan restart. • GNU/Linux merupakan Sistem Operasi cross platform yang dapat dijalankan pada hampir semua jenis/tipe komputer yang ada saat ini.
2.3.3
TORQUE /OpenPBS
TORQUE (Terascale Open Resource QUEue) adalah sebuah aplikasi yang dapat membantu pengelolaan cluster didalam penyediaan node yang dapat dipergunakan untuk melakukan perhitungan. Beberapa pengelolaan yang dapat dilakukan dengan menggunakan Torque • Pengelolaan antrian • Pengelolaan pembagian beban prosesor • Pengelolaan waktu pengerjaan • Pengelolaan node
2.3.4
Maui
MAUI adalah resource scheduller yang berfungsi untuk melakukan penjadwalan node yang dapat digunakan oleh pengguna. Pembagian resource node yang dipakai didalam Maui ini dapat mempergunakan beberapa metode, yaitu : • BackFill • Fairshare • Dynamic priorities
Universitas Indonesia
17
2.3.5
Python Server Pages
Python Server Pages (psp) adalah sebuah handler didalam modpython yang merupakan sebuah modul untuk menjalankan aplikasi python didalam web server apache. Python sendiri adalah sebuah bahasa pemograman yang luas dipakai didalam sistem operasi linux dan memiliki pustaka yang siap dipakai untuk berbagai keperluan. Pada tesis ini tampilan dan servis dibuat dengan menggunakan PSP.
2.3.6
GNUPlot
Gnuplot adalah aplikasi yang dapat digunakan untuk menghasilkan grafik baik dua ataupun tiga dimensi. Aplikasi ini digunakan didalam membuat grafik residual yang dihasilkan didalam proses perhitungan OpenFOAM. Grafik ini sangat dibutuhkan oleh peneliti CFD untuk melihat perkembangan simulasi.
Universitas Indonesia
BAB 3 ALGORITMA PENGUJIAN CFD Pada bab ini akan diterangkan algoritma Semi-Implicit Method for Pressure-Linked Equation (SIMPLE) yang akan digunakan pada tahap pengujian. Algoritma ini menggunakan prosedur iteratif untuk menyelesaikan persamaan untuk tekanan dan percepatan. Algoritma SIMPLE digunakan untuk permasalahan dengan keadaan tetap dengan mengevaluasi beberapa solusi awal kemudian mengoreksinya [7, 10].
3.1
Persamaan Tekanan
Persamaan momentum dapat ditulis pada sebuah form semi diskrit sebagai berikut : ~ ~ p = H(U) ~ − 5p ⇐⇒ U ~ p = H(U) − 5p a pU (3.1) ap ap dimana ~ = − ∑ anU ~n+ H(U) n
~o U ∆t
(3.2)
a p adalah koefisien pusat U p adalah velositas pusat H adalah bagian dari transport U adalah velositas p adalah tekanan t adalah waktu ~ mempresentasikan koefisien matriks dari sel-sel yang bertePada bagian H(U) tangga yang dikalikan dengan velositasnya, sedangkan pada bagian kedua mempunyai bagian yang tidak tetap dan semua properti kecuali gradien tekanan. Persamaan kontinuitas didiskritkan sebagai : ~ = ∑ ~SU ~f 5 ·U
(3.3)
f
~ f velositas pada dimana ~S adalah sebuah vektor area outwards-pointing dan U face. Velositas pada face didapatkan dengan menginterpolasi bentuk semi diskrit dari 18
19 persamaan momentum sebagai berikut : ~f = U
~ H(U) ap
! − f
(5p) f
(3.4)
(a p ) f
Dengan mensubstitusikan persamaan ini menjadi persamaan kontinuitas diskrit yang didapatkan sebelumnya, maka akan didapatkan persamaan tekanan: 1 5 p = 5· 5· ap
3.2
~ H(U) ap
! = ∑ ~S f
~ H(U) ap
! (3.5) f
Algoritma SIMPLE
Algoritma SIMPLE memungkinkan untuk menggabungkan persamaan NavierStokes dengan prosedur iteratif, yang dapat dilakukan sebagai berikut : 1. Menentukan kondisi batas 2. Menyelesaikan persamaan momentum diskrit (3.1) untuk mengkomputasikan velositas bidang intermediate 3. Mengkomputasikan massa fluks-fluks pada irisan sel-sel 4. Menyelesaikan persamaan tekanan persamaan (3.5) dan menggunakan teknik under-relaxation 5. Mengoreksi massa fluks-fluks pada irisan sel 6. Mengoreksi velositas pada bidang tekanan yang baru 7. Memperbaharui kondisi batas 8. Diulangi sampai konvergen
Universitas Indonesia
20
Gambar 3.1: Algoritma SIMPLE.
3.3
Implementasi algoritma SIMPLE pada OpenFOAM
Pada subbab ini akan diberikan baris program yang digunakan untuk menyelesaikan algoritma SIMPLE seperti yang telah dijabarkan pada subbab 3.3. • Menyimpan nilai tekanan yang telah dikalkulasikan dalam iterasi sebelumnya, karena nilai ini diperlukan didalam perhitungan under-relaxation p.storePrevIter();
• Mendefinisikan persamaan untuk U dimana divDevReff(U) adalah persamaan momentum
Universitas Indonesia
21
5 · φU − 5 · νe f f 5U
(3.6)
tmp (fvVectorMatrix) UEqn ( fvm::div(phi, U) + turbulence->divDevReff(U) );
• Persamaan under-relaxation untuk U, diberikan sebuah faktor underrelaxation α dan sebuah variabel γ maka under-relaxation dapat dideskripsikan dengan : γ = γold + α ∗ ∆γ
(3.7)
UEqn.relax(); dimana 0<α ≤ 1 dan γ dapat berupa tekanan, berat jenis, kecepatan atau elemen under-relaxation yang didefinisikan pada fvSolution • Mengkalkulasikan prediktor momentum (3.1) 5 · φU − 5 · νe f f 5U = − 5 p
(3.8)
solve (UEqn == -fvc::grad(p)); • Memperbaharui kondisi batas untuk p
p.boundaryField().updateCoeffs(); • Mengkalkulasikan koefisien a p dan mengkalkulasi U volScalarField AU = UEqn().A(); U = UEqn().H()/AU; UEqn.clear();
• Mengkalkulasikan fluks phi = fvc::interpolate(U) & mesh.Sf(); adjustPhi(phi, U, p);
Universitas Indonesia
22 • Mendefinisikan dan menyelesaikan persamaan tekanan (3.5) dan mengulangi langkah dari nilai koreksi non-orthogonal
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) { fvScalarMatrix pEqn ( fvm::laplacian(1.0/AU, p) == fvc::div(phi) ); pEqn.setReference(pRefCell, pRefValue); if (nonOrth == 0) { eqnResidual = pEqn.solve().initialResidual(); maxResidual = max(eqnResidual, maxResidual); } else { pEqn.solve(); }
• Mengkoreksi fluks
if (nonOrth == nNonOrthCorr) { phi -= pEqn.flux(); } • Mengkalkulasi kesalahan kontinuitas dan menampilkannya ke monitor, kesalahan yang dihitung adalah kesalahan global, lokal dan kumulatifnya { volScalarField contErr = fvc::div(phi); scalar sumLocalContErr = runTime.deltaT().value()* mag(contErr)().weightedAverage(mesh.V()).value(); Universitas Indonesia
23
scalar globalContErr = runTime.deltaT().value()* contErr.weightedAverage(mesh.V()).value(); cumulativeContErr += globalContErr;
Info << ”time step continuity errors : sum local = ” << sumLocalContErr << ”, global = ” << globalContErr << ”, cumulative = ” << cumulativeContErr << endl;
}
• Melakukan perhitungan tekanan under-relax untuk koreksi momentum dan melakukan koreksi
p.relax(); U -= fvc::grad(p)/AU; U.correctBoundaryConditions();
• Melakukan pengecekan untuk konvergensi dan melakukan pengulangan dari awal sampai kriteria konvergen terpenuhi.
Nilai dari residu awal dapat didapatkan saat mengkalkulasikan persamaan yang berkaitan dengan menggunakan method initialResidual(). Dua sintaks yang memungkinkan : eqnResidual = solve ( UEqn() == -fvc::grad(p) ).initialResidual();
Universitas Indonesia
24
3.4
High Performance Computing
Pada bagian ini akan membahas informasi mengenai parallelisasi pada kasus yang dikerjakan. Untuk menggunakan solver simpleFoam secara parallel, grid-grid yang akan dikomputasikan harus dibagi menjadi beberapa bagian.
3.4.1
Dekomposisi Mesh
Teknik yang digunakan pada OpenFOAM dilist pada file decomposeParDict dan tiap-tiap teknik tersebut berfokus pada menyeimbangkan pekerjaan yang didistribusikan pada setiap prosesor. Pada tahap ini sebuah model didekomposisi menjadi mesh yang merupakan model yang dibagi menjadi sel-sel. Setiap sel didefinisikan oleh sebuah set dari grid point atau nodes, sebuah sel pusat, dan faces yang mengikat sel. Boundary conditions adalah kondisi dari batasan sebuah kontrol volume dari sebuah mesh. Secara umum boundary conditions terdiri dari dua macam, inlet dan oulet. Inlet biasanya didefinisikan sebagai tempat dimana fluida memasuki domain (control volume) yang ditentukan. Berbagai macam kondisi didefinisikan pada inlet ini seperti tekanan, velositas, tensor dan lainnya. Sedangkan pada outlet biasanya didefinisikan sebagai kondisi dimana fluida tersebut keluar dari domain atau dalam suatu aplikasi CFD merupakan nilai yang didapat dari semua variabel yang didefinisikan dan diextrapolasi dari titik atau sel sebelumnya.
Gambar 3.2: Struktur Mesh
Universitas Indonesia
25
Gambar 3.3: Mesh Pada Kasus pitzDaily
Ada beberapa teknik yang dapat digunakan yaitu : • Simple Decomposition • Hierarchial Decomposition • Metis Decomposition • Manual Decomposition Pada tesis ini digunakan Metis Decomposition untuk membagi diskretisasi yang akan berpengaruh pada pembagian kerja antar prosesor. Metis adalah aplikasi yang dapat mempartisi grafik yang tidak reguler, mesh yang besar dan komputasi penyeimbangan matrik jarang. Apliasi metis biasanya digunakan untuk mempartisi mesh yang besar. Tujuannya adalah untuk mengurangi komunikasi dan mendapatkan load balance yang baik. Tujuan-tujuan ini dapat direalisasikan dengan mengkomputasikan partisi yang seimbang seperti jumlah sudut yang didistribusikan antara prosesor diminimalisasikan. Proses minimalisasi volume komunikasi antar prosesor dengan menggunakan proses Metis. Berikut ini adalah contoh dari dekomposisi terhadap mesh yang telah dibuat oleh pengguna, dekomposisi dibagi menjadi lima buah bagian yang akan diproses oleh prosesor didalam cluster. Pada akhir dari proses ini akan membuat folder-folder baru yang berfungsi membagi mesh untuk diproses oleh masing-masing prosesor. Create time Time = 0 Create mesh Calculating distribution of cells Selecting decompositionMethod metis Finished decomposition in 1.16 s Universitas Indonesia
26
Calculating original mesh data Distributing cells to processors Distributing faces to processors Calculating processor boundary addressing Distributing points to processors Constructing processor meshes Processor 0 Number of cells = 101021 Number of faces shared with processor 1 = 1655 Number of faces shared with processor 2 = 2516 Number of processor patches = 2 Number of processor faces = 4171 Number of boundary faces = 14999 Processor 1 Number of cells = 95931 Number of faces shared with processor 0 = 1655 Number of faces shared with processor 4 = 1134 Number of processor patches = 2 Number of processor faces = 2789 Number of boundary faces = 14583 Processor 2 Number of cells = 98800 Number of faces shared with processor 3 = 2168 Number of faces shared with processor 0 = 2516 Number of processor patches = 2 Number of processor faces = 4684 Number of boundary faces = 14920 Processor 3
Universitas Indonesia
27 Number of cells = 99588 Number of faces shared with processor 4 = 1192 Number of faces shared with processor 2 = 2168 Number of processor patches = 2 Number of processor faces = 3360 Number of boundary faces = 15030 Processor 4 Number of cells = 95348 Number of faces shared with processor 1 = 1134 Number of faces shared with processor 3 = 1192 Number of processor patches = 2 Number of processor faces = 2326 Number of boundary faces = 14784 Number of processor faces = 8665 Max number of processor patches = 2 Max number of faces between processors = 4684 Processor 0: Processor 1: Processor 2: Processor 3: Processor 4:
field transfer field transfer field transfer field transfer field transfer
End.
Gambar 3.4: Parallelisasi Kasus.
Universitas Indonesia
28 Seperti yang telah dilihat pada proses diatas setiap data mesh yang dibagi untuk setiap prosesor juga memiliki keterkaitan proses dengan prosesor lain. Dalam hal ini setiap prosesor memiliki keterkaitan dengan dua prosesor lainnya, hal ini dikarena setiap iterasi perhitungan dilakukan dengan menggunakan keseluruhan mesh maka setiap mesh hasil dekomposisi akan mempunyai bagian faces yang merupakan bagian dari potongan mesh yang lain dan dihitung dengan menggunakan persamaan (3.5). Didalam prosesnya digunakan MPI sebagai middleware untuk pembagian data faces yang digunakan. Banyaknya iterasi dan pada langkah iterasi yang mana akan disimpan sebagai tempat untuk melakukan analisis ditentukan dari pengguna dengan mengisinya pada file system/controlDict. Penghentian iterasi jika jumlah iterasi telah terpenuhi. Pada akhir proses pengguna dapat melihat residual dari proses yang dilakukan, residual ini biasa digunakan untuk memonitor perilaku dari proses numerik. Residual sendiri adalah nilai eror dari hasil persamaan diskritisasi. Residual yang dikalkulasikan akan disimpan didalam log proses Time = 1000 DILUPBiCG: Solving for Ux, Initial residual = 0.00285606, Final residual = 1.88263e-07, No Iterations 6 DILUPBiCG: Solving for Uy, Initial residual = 0.00471418, Final residual = 7.91507e-07, No Iterations 5 DILUPBiCG: Solving for Uz, Initial residual = 0.00457948, Final residual = 1.39133e-07, No Iterations 7 DICPCG: Solving for p, Initial residual = 0.0437385, Final residual = 9.91118e-07, No Iterations 145 time step continuity errors : sum local = 0.00351981, global = -0.000106208, cumulative = 0.0298594 ExecutionTime = 5186.27 s ClockTime = 5194 s
Universitas Indonesia
BAB 4 ARSITEKTUR CLUSTER CFD BERBASIS PORTAL Struktur dari PublicCFD@LAPAN berdasarkan dari rantai pengerjaan didalam CFD, yaitu Solving. Tahap dimana simulasi fluida dilakukan dengan pengerjaan terlama terdapat pada tahap ini. Pembagian secara parallel dilakukan secara otomatis dengan membagi rata beban kesetiap prosesor.
4.1
Konsep
Seperti yang telah diterangkan bagian sebelumnya, PublicCFD@LAPAN ditujukan untuk menyediakan sebuah infrastruktur publik untuk CFD secara umum. Bagaimanapun, peluncuran tahap beta masih terbatas pada aplikasi CFD dengan menggunakan OpenFOAM. Hal ini dimotifasikan pada fakta target utama pengguna berada di LAPAN yang menggunakan aplikasi OpenFOAM, sehingga untuk sementara waktu sistem ini hanya dapat digunakan untuk pengguna didalam jaringan LAPAN. PublicCFD@LAPAN telah dibangun dengan tujuan sebagai berikut: • Menyediakan sebuah tempat yang praktis untuk pengguna untuk melakukan High Performance CFD pada sebuah lingkungan parallel tanpa harus mempunyai cluster sama sekali. • Meningkatkan utilitas pada fasilitas HPC yang tersedia. Karena beberapa pusat infrastruktur HPC banyak yang menganggur karena pengguna yang terbatas. Hal ini lebih relevan untuk negara-negara yang membangun dengan sumber daya HPC yang terbatas. Bagaimanapun, permasalahannya adalah, khususnya pada poin kedua, relevan dengan berbagai tempat yang lainnya. Limitasi adalah dikarenakan oleh regulasi yang ketat, kebanyakan menyangkut dengan masalah keamanan. Lebih lanjut, PublicCFD@LAPAN tidak didesain sebagai publik cluster untuk berbagai tujuan seperti LPC, tetapi sebagai cluster yang terpasang aplikasi yang khusus untuk Computational Fluid Dynamic, pada saat ini yang diinstallkan adalah OpenFOAM. Oleh karena itu, tidak dibutuhkan untuk membagi node sacara ketat 29
30 menjadi beberapa blok ’independen’ yang sangat penting didalam cluster dengan aturan full-ownership seperti LPC [23]. Berbeda dengan LPC, PublicCFD@LAPAN membangun sistem konvensional dimana semua node bisa digunakan oleh semua pengguna yang aktif dan pekerjaan yang dimasukkan didistribusikan ke semua node menggunakan sebuah sistem manajemen pekerjaan seperti yang diperlihatkan pada gambar 4.1. Antarmuka portal akan berhubungan dengan OpenFOAM melalui web server yaitu apache yang didukung oleh modpython sebagai handler. Saat user memasukkan perintah untuk melakukan proses perhitungan maka OpenFOAM akan dibuat sebuah file eksekusi sebagai masukan kepada resource manager (TORQUE) dan diteruskan ke resource scheduller (MAUI) untuk ditempatkan ke node yang tersedia. Untuk berbagi data digunakan NFS dimana pada master node digunakan untuk share aplikasi OpenFOAM dan data yang dieksekusi. Karena struktur dari folder yang memiliki tempat yang sama maka aplikasi dapat berjalan dengan baik dan dapat berjalan karena profile dari pengguna juga di share antara master dengan client dengan menggunakan NFS sehingga mempermudah didalam pengaturan pengguna dan PATH yang digunakan didalam cluster.
Gambar 4.1: Arsitektur PublicCFD@LAPAN.
Karena semua pengguna menggunakan web melalui HTTP, permasalahan keamanan yang relevan hanya terdapat di gateway, atau lebih persisnya pada antarmuka portal. Hal ini membuat seluruh arsitektur menjadi lebih sederhana dibandingkan dengan LPC. Hal ini dapat dilakukan dengan memperkenalkan sebuah sistem registrasi, yang membutuhkan login untuk pengguna yang telah teregistrasi dan menyimpan session dari setiap pengguna aktif dengan cara tertentu.
Universitas Indonesia
31 Hal tersebut harus diingat disini bahwa seperti berdasarkan konsep yang telah disebutkan diatas, publicCFD@LAPAN mempunyai sistem yang berbeda dengan toolkit clustering berbasis web yang telah ada untuk mengaktifkan akses remote diatas web seperti OSCAR [11], atau seperti beberapa portal grid yang membuat antar muka untuk sistem terdistribusi berskala besar berbasis web [21, 17, 15, 8]. Di lain pihak, publicCFD@LAPAN juga tidak disamakan dengan kategori seperti Globus Toolkit (GT) yang ditujukan untuk menjadi antarmuka komputasi grid berskala besar [9]. Kami juga mengakui beberapa bagian antarmuka-web untuk cluster yang dikembangkan oleh beberapa grup seperti pada [19, 5]. Cluster CFD didalam PublicCFD@LAPAN digunakan didalam melakukan komputasi terhadap masalah CFD, dimana pengguna telah melakukan pemodelan dan diskritisasi terhadap model yang akan dihitung didalam cluster. Setelah proses perhitungan didalam cluster telah dilakukan maka pengguna dapat mengambil hasil yang diinginkan dan melanjutkan ke proses post-processing.
Gambar 4.2: Penggunaan Cluster
4.2
PublicCFD@LAPAN framework
Komputasi Paralel merupakan metode komputasi yang membagi beban komputasi ke dalam beberapa bagian kecil sub proses komputasi, dimana sub komputasi tersebut dijalankan pada prosesor yang berbeda secara bersamaan dan saling berinteraksi satu sama lain dalam menyelesaikan satu permasalahan komputasi. Komputasi paralel telah dipergunakan selama lebih dari 40 tahun. Gagasan dasar dari pemrosesan paralel adalah memiliki lebih dari satu pemroses yang semuanya memiliki kemampuan untuk bekerja dalam saat yang bersamaan. Penggunaan beberapa pemrosesan ini tentu menyebabkan munculnya persyaratan tambahan, seperti kemampuan penggunaan data bersama-sama dan kemampuan untuk berkomunikasi antar pemroses. Dengan demikian, dapat dipahami bahwa algoritma untuk pemrosesan paralel umumnya lebih kompleks dari algoritma sekuenUniversitas Indonesia
32 sial. Komputasi paralel umumnya diterapkan untuk permasalahan yang secara sekuensial tidak mampu diselesaikan dalam jangka waktu yang pantas , misalnya pemrosesan perhitungan aerodinamika ataupun propulsi dengan menggunakan CFD tiga dimensi double precission. Spesifikasi node : • Processor : Pentium Core2duo 2.66 Ghz • Memory : 2 GB PC 6400 • Hardisk : 160 GB • NIC : Gigabit NIC Interkoneksi Jaringan Interkoneksi jaringan dengan media transmisi UTP CAT 6 dengan link 1000 Mbps, dihubungkan dengan switch 3Com 10/100/1000 Mbps. Protokol yang digunakan adalah TCP/IP. TCP/IP terdiri atas sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dalam komunikasi data. Tabel 4.1: Protokol TCP/IP
Application Layer Transport Layer Network layer Network Interface Layer Dengan prinsip ini maka tugas masing-masing protokol menjadi jelas dan sederhana, sehingga mudah untuk diimplementasikan dan dikembangkan. Selain itu TCP/IP juga dapat diimplementasikan di seluruh perangkat dan perangkat lunak jaringan. IP addressing dilakukan secara manual bukan dari DHCP server. Tabel 4.2: Tabel konfigurasi IP Host
Keterangan
Master
Client1
Client2
IP Address
192.168.1.1 10.11.12.31
192.168.1.2
192.168.1.3
Subnet
255.255.255.0
255.255.255.0
255.255.255.0
Hostname
Unicluster01
Unicluster02
Unicluster03
Universitas Indonesia
33 Jaringan cluster yang digunakan pada PublicCFD@LAPAN adalah sebagai berikut :
Gambar 4.3: Arsitektur cluster PublicCFD@LAPAN
Installasi cluster dilakukan juga pada laboratorium jaringan komputer fakultas ilmu komputer (Fasilkom) UI dengan menggunakan arsitektur yang sama. Perbedaan antara cluster di LAPAN dengan yang berada pada Fasilkom UI adalah perbedaan hardware yang menyebabkan perbedaan pengaturan konfigurasi Resource Manager (TORQUE). Hardware : Prosesor : Pentium 4 x86 single prosesor RAM : 512 Network Card : Fast Ethernet (100Mbps) Universitas Indonesia
34 Master Network Card : 1 buah Jaringan cluster yang digunakan pada Laboratorium Jaringan Komputer Fasilkom UI adalah sebagai berikut :
Gambar 4.4: Arsitektur jaringan cluster laboratorium jaringan komputer fasilkom UI
Seperti diilustrasikan pada gambar 4.3, Head Node memegang peranan penting pada publicCFD@LAPAN. Head Node tidak hanya digunakan sebagai master node seperti sistem konvensional, tetapi juga sebagai host antarmuka web dan sistem keamanannya. Sebenarnya, pada sistem dengan load yang tinggi, master node seharusnya dipisahkan dari antarmuka web. Dibandingkan dengan antarmuka portal pada LPC [24], antarmuka portal pada publicCFD@LAPAN mempunyai beberapa tujuan yang terbatas : 1. Sebagai antarmuka tunggal antara user dengan cluster. Hal ini termasuk mengintegrasikan semua komponen dan membuatnya dapat diakses oleh pengguna secara remote melalui antar muka web yang user-friendly. 2. Menyediakan kebebasan setinggi-tingginya kepada pengguna, dilain pihak membuat seluruh sistem aman seluruhnya. 3. Sayangnya, tidak ada perhatian untuk user dan pekerjaannya untuk tetap pada blok yang ditetapkan seperti LPC. Dan antarmuka web adalah filter utama untuk melakukan perintah-perintah yang diijinkan untuk dikirimkan ke master dan node. Hal ini dapat dengan mudah dilakukan dengan mendeskripsikan perintah-perintah yang relevan dengan aplikasi yang diinstall. Universitas Indonesia
35 Saat seorang pengguna memasukkan sebuah perintah melalui antarmuka web, sistem melakukan beberapa proses secara internal : • Mengenali apakah perintah berhubungan dengan : komputasi tersebar, seperti Portable Batch System (PBS) atau sistem operasinya. Prosedur pemilihan ini sangat krusial untuk menentukan bagaimana memperlakukan dan mengirimkannya ke target setiap perintah. • Sebuah perintah yang dimasukkan. Sebelum di kirimkan ke I/O master node, di periksa apakah termasuk didalam perintah yang disediakan atau tidak. Saat perintah lulus dari filter, maka akan langsung dikirimkan ke sistem manajemen resource untuk dieksekusi lebih lanjut. Karena tidak ada modifikasi pada lingkungan parallel pada PublicCFD@LAPAN, pengguna dapat menggunakan metode konvensional untuk menyebarkan pekerjaan yang diberikan. PublicCFD@LAPAN menggunakan Terascale Open-source Resource and QUEue manager (TORQUE) dan Maui Scheduller sebagai job scheduler [3, 4]. TORQUE adalah pengembangan dari PBS atau sebagai OpenPBS [1]. Di lain pihak, Maui adalah sebuah ’mesin peraturan’ untuk mengontrol kapan, dimana, dan bagaimana sumberdaya seperti prosesor, memori dan kapasitas hardisk tersedia yang dialokasikan untuk pekerjaan didalam antrian. Maui tidak hanya menyediakan sebuah mekanisme automatis untuk mengoptimisasi sumberdaya yang tersedia, tetapi juga untuk memonitor performansi dan menganalisa masalah yang timbul saat cluster bekerja.
4.3
Data Flow Diagram
Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan secara logis. [13]. Pada literatur komputer dan pada pemberian informasi dari sistem analis ke user dapat digunakan sinonim dari dataflow diagram : DFD
4.3.1
Level Konteks dari PublicCFD@LAPAN
PublicCFD@LAPAN menerima informasi dari user dan memprosesnya sehingga mendapatkan hasil lalu user dapat mengambil hasil tersebut. Administrator mengatur user yang dapat memakai sistem dan resource system (prosesor, memory) yang dapat dipakai didalam komputasi. Universitas Indonesia
36
Gambar 4.5: DFD Level Konteks PublicCFD@LAPAN.
4.3.2
DFD Level Pertama PublicCFD@LAPAN
Level pertama DFD mencakup dua modul, yaitu modul komputasi yang digunakan oleh user dan modul manajemen sistem yang digunakan oleh administrator.
Gambar 4.6: DFD Level 1 publicCFD@LAPAN.
4.3.3
DFD Level Dua Login System
Pada saat login, user akan memberikan data berupa username dan password. Data ini akan di autentikasi dengan data pada database user dan jika berhasil maka akan dibuat session yang memuat data user dan limit waktu.
Universitas Indonesia
37
Gambar 4.7: DFD Level 2 Login System publicCFD@LAPAN.
4.3.4
DFD Level Dua User System
Pada level ini user akan memilih proses yang akan dilakukan. Ada dua proses yang dapat dipilih, yaitu manajemen data dan eksekusi data.
Gambar 4.8: DFD Level 2 User System publicCFD@LAPAN.
Universitas Indonesia
38
4.3.5
DFD Level Dua Administrator System
Pada level ini user akan memilih proses yang akan dilakukan. Ada dua proses yang dapat dipilih, yaitu manajemen user dan manajemen resource (prosesor dan memory).
Gambar 4.9: DFD Level 2 Administrator System publicCFD@LAPAN.
4.3.6
DFD Level Tiga User Management
Pada level ini administrator dapat melakukan manajemen user. Ada empat proses yang dapat dilakukan, yaitu aktivasi user, tambah user, hapus user, edit user dan browse user.
Universitas Indonesia
39
Gambar 4.10: DFD Level 3 Manajemen User publicCFD@LAPAN.
4.3.7
DFD Level Tiga User Data Management
Pada level ini user dapat melakukan manajemen data. Ada empat proses yang dapat dilakukan, yaitu tambah data, edit data, hapus data dan ambil data.
Universitas Indonesia
40 Management.jpeg
Gambar 4.11: DFD Level 3 Manajemen Data User publicCFD@LAPAN.
4.3.8
DFD Level Tiga User Eksekusi Data
Pada level ini user akan memilih banyaknya prosesor yang akan digunakan, data yang ingin di hitung dan solver yang sesuai dengan kasus yang ingin dipecahkan. Pada saat pengguna melakukan eksekusi, proses didalam background akan melakukan : 1. Melakukan penulisan kedalam folder kasus file system/decomposeParDict sebagai file yang berfungsi sebagai setting untuk melakukan proses dekomposisi. 2. Melakukan dekomposisi dengan menggunakan metis sesuai dengan jumlah Universitas Indonesia
41 prosesor yang diinputkan 3. Membuat file eksekusi sebagai masukan untuk resource manager 4. Melakukan eksekusi ke Torque berdasarkan file eksekusi 5. Pada saat selesai eksekusi dibuat grafik dengan menggunakan Gnuplot
4.4
Use Case Diagram
Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan.
Gambar 4.12: Use Case Diagram publicCFD@LAPAN.
Langkah-langkah penggunaan Web cluster : 1. Registrasi bagi user baru dan menunggu persetujuan dari administrator Universitas Indonesia
42 2. Login kedalam web dengan menggunakan user id dan kata sandi yang telah ditetapkan 3. Pilih menu File lalu pilih upload untuk mengupload data kasus yang telah di zip 4. Pilih menu Eksekusi lalu pilih berapa banyak prosesor yang diinginkan, solver yang diinginkan dan kasus yang diinginkan lalu klik run. 5. Pada menu monitoring dapat dilihat proses pemasukan proses didalam cluster yaitu : Queue (masih didalam antrian), Running (proses telah berjalan) atau Error (proses telah berhenti) 6. Pada menu hasil dapat dilihat log error, log hasil dan grafik residual dari proses 7. User dapat mengambil data yang telah diproses dengan masuk kembali ke menu data dan memilih folder yang telah diproses dan mengambil data dengan menekan tombol unduh.
Universitas Indonesia
BAB 5 PERFORMANSI KOMPUTASI FLUIDA PADA CLUSTER Pada bab lima ini akan dibahas mengenai ujicoba dan hasil ujicoba. Bahasan dalam bab ini meliputi : Topologi dan Skenario Percobaan, Percobaan Performansi dan Analisis Ujicoba.
5.1
Topologi dan Skenario Percobaan
Kasus yang akan dipercobakan adalah kasus CFD dengan permasalahan pada tekanan, digunakan beberapa contoh kasus baik dengan 2-dimensi ataupun dengan 3-dimensi. Perhitungan secara 2-D dan 3-D dilakukan dengan 1.000 iterasi. Seperti telah dijelaskan pada arsitektur cluster maka digunakan tiga buah komputer Core2Duo yang mempunyai dua buah prosesor didalamnya yang berkecepatan 2.66 GHz dan masing-masing dilengkapi dengan memory 2 Gb. Kasus yang akan digunakan mempunyai data seperti berikut : Tabel 5.1: Data Percobaan Kasus
Nama Kasus
Jenis Mesh
Besar Data Mesh
Jenis Turbulensi
PitzDaily
2-D
2.5 MB
laminar
PitzDailyExptInlet
2-D
2.5 MB
k-epsilon
rohrTurbine leit
3-D
85 MB
laminar
rohrTurbine leit inviscid
3-D
85 MB
laminar
Nosel
3-D
59 MB
laminar
Penggunaan besar data mesh menggunakan ukuran besar data tersimpan (MB) untuk menggambarkan besarnya Mesh yang dipakai, karena semakin besar ukuran mesh maka besarnya file juga akan bertambah.
5.2
Percobaan performansi
Berikut adalah :
43
44
Gambar 5.1: Perbandingan waktu iterasi terhadap jumlah prosesor untuk kasus 3-D.
Gambar 5.2: Perbandingan waktu iterasi terhadap jumlah prosesor untuk kasus 2-D.
Berdasarkan tabel di atas dapat dilihat bahwa untuk kasus 2-D atau untuk kasus dengan ukuran memori yang sangat kecil, penambahan jumlah PC tidak selalu memperkecil waktu iterasi. Untuk perhitungan dengan ukuran memori yang cukup besar, penambahan jumlah PC secara paralel dapat memperkecil waktu iterasi. Pengurangan waktu iterasi tidak linier terhadap penambahan jumlah PC.
Universitas Indonesia
45
Gambar 5.3: Perbandingan percepatan terhadap jumlah prosesor untuk kasus 3-D.
Gambar 5.4: Perbandingan percepatan terhadap jumlah prosesor untuk kasus 2-D.
5.3
Analisis
Bagian ini berisi tentang penjabaran dan analisis hasil penelitian. Agar penjabaran dan analisis menjadi lebih terstruktur, maka analisis ini dibagi menjadi beberapa bagian, yaitu : Universitas Indonesia
46 • Analisis pengaruh ukuran memori mesh terhadap perhitungan terhadap waktu iterasi • Analisis pengaruh penggunaan jumlah prosesor terhadap performa PC. • Analisis Jumlah Prosesor Terhadap Waktu Iterasi Analisis selengkapnya disajikan dalam paragraf di bawah ini.
5.3.1
Analisis Pengaruh Ukuran Memori Mesh Terhadap Waktu Iterasi
Hasil percobaan pada tabel Lampiran A.1 menunjukkan bahwa dengan menggunakan satu prosesor perhitungan dengan ukuran file 2.5 MB dengan 1000 iterasi membutuhkan waktu 97 detik (pitzDaily) dan 157 detik (pitzDailyExptInlet), dengan ukuran mesh yang sama tetapi hampir dua kali lipat waktu yang dibutuhkan untuk menyelesaikan simulasi. Kasus pitzDaily menggunakan jenis turbulensi laminar dan pitzDailyExptInlet menggunakan turbulensi K-epsilon. Sedangkan untuk kasus dengan memori 85 MB dengan 1000 iterasi membutuhkan waktu 10967 detik (rohr turbine) dan 13070 detik (rohr turbine inviscid), dengan perbedaan terdapat pada jenis boundary yang berbeda pada masing-masing kasus. Hasil percobaan pada tabel Lampiran A.2 menunjukkan bahwa walaupun terjadi perbedaan yang cukup besar diantara kasus yang memiliki mesh yang sama tetapi pola percepatan yang dihasilkan untuk penambahan prosesor sebanding seperti yang terlihat pada gambar 5.3 dan 5.4. Berdasarkan uraian pada paragraf di atas maka dapat disimpulkan sementara bahwa pertambahan besarnya mesh menyebabkan semakin lamanya penyelesaian kasus, hal tersebut berlaku tanpa memperhitungkan aspek dua dimensi maupun tiga dimensi. Perhitungan dengan menggunakan pengaturan berbeda seperti jenis turbulensi dan jenis boundary yang dipakai juga akan memberikan efek yang cukup signifikan terhadap waktu yang diperlukan untuk menyelesaikan kasus. Tetapi percepatan yang dihasilkan sebanding. Dilakukan pula percobaan terhadap kasus dengan melakukan pengubahan terhadap besarnya mesh untuk memperkirakan utilisasi optimum cluster yang dibuat. Percobaan menggunakan kasus pitzDaily dengan mengubah kerapatan mesh. Berdasarkan pada tabel Lampiran A.3 dapat dilihat bahwa untuk setiap besaran kasus dapat disimpulkan bahwa : • Untuk kasus dengan besar mesh ≤ 2.5 MB maka hasil optimum akan Universitas Indonesia
47 didapatkan dengan memakai 2 prosesor.
• Untuk kasus dengan besar mesh 2.5 MB - 44 MB maka hasil optimum akan didapatkan dengan memakai 4 prosesor.
• Untuk kasus dengan besar mesh > 44 MB maka hasil optimum akan didapatkan dengan memakai 6 prosesor.
5.3.2
Analisis Jumlah Prosesor Terhadap Performa PC
Komputer PC dengan spesifikasi Core 2 Duo mempunyai dua core prosesor. Apabila hanya satu core prosesor yang digunakan, maka performa PC tersebut hanya setengahnya saja atau sekitar 50 %. Jika kedua prosesor digunakan secara bersamaan, maka performa PC akan maksimal. Hasil percobaan pada tabel 5.2 menunjukkan bahwa untuk penggunaan satu prosesor performa PC sekitar 50 %. Hal tersebut dikarenakan jumlah prosesor yang digunakan sebanyak satu dari dua yang tersedia sehingga performa PC menjadi sekitar 52 %. Apabila menggunakan satu prosesor dalam satu PC Core 2 Quad, maka kemungkinan performa PC adalah sekitar 25 %. Percobaan juga menunjukkan bahwa penggunaan dua prosesor dalam satu PC Core 2 Duo menghasilkan performa PC sekitar 99 %. Untuk kasus dengan file dua dimensi dengan data yang kecil pun performa PC mencapai 98 %. Adanya penurunan walaupun sedikit dikarenakan upaya untuk menyelesaikan kasus sudah dapat dipenuhi walaupun hanya menggunakan dua prosesor. Semakin banyak prosesor yang digunakan akan menyebabkan utilisasi prosesor didalam PC untuk menyelesaikan kasus akan semakin menurun. Akan tetapi utilisasi yang besar mencapai hampir seratus persen menandakan bahwa sebenarnya kecepatan proses dapat bertambah jika menggunakan lebih banyak prosesor karena utilisasi mendekati seratus persen dapat juga dikatakan bahwa PC pada cluster mencapai batas kemampuan prosesnya.
5.3.3
Analisis Jumlah Prosesor Terhadap Waktu Iterasi
Percobaan ini mempelajari pengaruh penambahan jumlah PC yang diparalelkan terhadap efisiensi pengerjaan komputasi. Penjabarannya adalah untuk mengetahui seberapa besar penghematan waktu iterasi apabila PC nya ditambah dengan jumlah tertentu. Universitas Indonesia
48 Hasil percobaan pada tabel 5.2 menunjukkan bahwa untuk simulasi kasus sederhana seperti simulasi dua dimensi, penambahan jumlah prosesor jika dikerjakan dengan berbeda PC tetap tidak mempengaruhi efisiensi pengerjaan komputasi. Hal tersebut dikarenakan proses tersebut cukup dikerjakan oleh prosesor didalam satu PC saja sehingga ketika ditambahkan prosesor didalam PC yang berbeda maka pembagian proses tidak optimal sehingga terdapat jeda waktu didalam proses pengiriman data diantara prosesor yang mengakibatkan inefisiensi pengerjaan. Hal ini dikarenakan oleh waktu komunikasi antara prosesor satu dengan lainnya mempengaruhi kecepatan proses apalagi jika berbeda PC. Untuk perhitungan yang ukuran meshnya lebih besar, penambahan penggunaan prosesor akan mempercepat waktu iterasi. Pengurangan waktu iterasi tidak sebanding linier dengan jumlah penggunaan prosesor. Hal tersebut dikarenakan oleh dua hal, yaitu : • Adanya keterbatasan kecepatan maksimum oleh kemampuan hardware dan pembagian proses yang dapat dihitung dengan efisien. • Setiap prosesor memiliki keterkaitan proses dengan prosesor yang lainnya sehingga ada waktu jeda didalam proses jika ada prosesor yang belum menyelesaikan perhitungan yang dibutuhkan oleh prosesor lain yang membutuhkan. • Pada langkah-langkah tertentu yang telah ditentukan pada file system/controlDict maka akan ada penulisan data ke hardisk yang menyebabkan waktu tunggu karena kecepatan penulisan data ke hardisk relatif lama.
Universitas Indonesia
BAB 6 KESIMPULAN DAN SARAN Pada Bab 6 ini akan dibahas mengenai kesimpulan yang didapat dari hasil implementasi serta saran yang mungkin untuk pengembangan selanjutnya.
6.1
Kesimpulan
Setelah dilakukan implementasi dan pengujian cluster CFD berbasis web maka penulis berkesimpulan : • Cluster CFD OpenFOAM berbasis portal yang dibangun ini mampu menyelesaikan kasus yang mempunyai beban komputasi yang besar • Fitur antar muka pada OpenFOAM diperlukan agar pengguna dapat dipermudah didalam penggunaannya • Cluster CFD dengan antar muka web dapat memudahkan pengguna untuk menyelesaikan kasus CFD dimana saja • Pada cluster ini dilakukan pembagian diskritisasi secara otomatis sehingga pengguna hanya mengisi kolom prosesor yang ingin digunakan • Cluster CFD memfokuskan pada kemampuan prosesor, besarnya RAM dan kecepatan jaringan • Besaran data mesh yang optimum untuk utilisasi cluster PublicCFD@LAPAN adalah : – Untuk kasus dengan besar mesh ≤ 2.5 MB maka hasil optimum akan didapatkan dengan memakai 2 prosesor.
– Untuk kasus dengan besar mesh 2.5 MB - 44 MB maka hasil optimum akan didapatkan dengan memakai 4 prosesor.
– Untuk kasus dengan besar mesh > 44 MB maka hasil optimum akan didapatkan dengan memakai 6 prosesor.
49
50
6.2
Saran
• Pengembangan otomatisasi alokasi prosesor untuk optimasi penyelesaian kasus pada cluster.
Universitas Indonesia
DAFTAR REFERENSI
[1] Altair Engineering Inc., Open Portable Batch System (OpenPBS). URL http://www.pbsworks.com [2] CFD Online Team, CFD Online (2010). URL http://www.cfd-online.com [3] Cluster Resources Inc., Terascale Open-source Resource and QUEue manager (TORQUE) (2010). URL http://www.clusterresources.com [4] Cluster Resources Inc., Maui Cluster Scheduler (2010). URL http://www.clusterresources.com [5] E. Landrus, WebMPI - a Secure Cluster Web Interface using ShibbolethWebMPI, in: M.S. Thesis, University of Arkansas, 2005. [6] H. Suhartanto, K. Burrage, Parallel Iterated Methods based on Multistep Runge-Kutta of Radau type for Stiff problems, Journal of Advances in Computational Mathematics, 7 (1997) 59. [7] H. Jasak, Error analysis and estimation for the finite volume method with applications to fluid flows, in: Ph.D. Thesis, Imperial College, London, 1996. [8] H. Gibbins, R. Buyya, Gridscape: A tool for the creation of interactive and dynamic grid testbed web portals, in: Proceedings of the 5th International Workshop on Distributed Computing, 2003. [9] I. Foster, Globus toolkit version 4 : Software for service oriented systems, Journal of Computational Science and Technology 21 (2006) 513–520. [10] J. Ferziger, M. Peri´c, Computational Methods for Fluid Dynamics, 2nd Edition, Springer-Verlag, Berlin, 2001. [11] J. Mugler, Open Source Cluster Application Resources (OSCAR) (2010). URL http://oscar.openclustergroup.org [12] J. P. Giesing, A. M. O. Smith, Potential flow about two-dimensional hydrofoils, Journal of Fluid Mechanics 28 (1967) 113–129. doi:10.1017/ S0022112067001934. 51
52 [13] J. R. Grady Booch, I. Jacobson, The Unified Modeling Language User Guide, Second Edition, Addison-Wesley, 2005. [14] M. J. Flynn, Some computer organizations and their effectiveness, IEEE Transactions on Computers 21 (9) (1972) 948–960. [15] M. Thomas, S. Mock, M. Dahan, K. Mueller, D. Sutton, J. R. Boisseau, The GridPort toolkit: a system for building grid portals, in: Proceeding of the 10th International Symposium on High Performance Distributed Computing, 2001. [16] OpenCFD Ltd, OpenCFD Online (2010). URL http://www.opencfd.co.uk [17] Object Management Group (OMG), Common Object Request Broker Architecture (2010). URL http://www.corba.org [18] OpenCFD Ltd, OpenFOAM (Open Field Operation and Manipulation) (2010). URL http://www.openfoam.com [19] P. Uthayopas, S. Phatanapherom, T. Angskun, S. Sriprayoonsakul, SCE : A fully integrated software tool for beowulf cluster system, in: Proceedings of Linux Clusters: the HPC Revolution, 2001. [20] T. G. Lewis, H. El-Rewini, Introduction to parallel computing, Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1992. [21] UC Berkeley Clustered Computing, Millennium Project Collaboration (2010). URL http://www.ganglia.info [22] V. Kumar, A. Grama, A. Gupta, G. Karypis, Introduction to parallel computing: design and analysis of algorithms, Benjamin-Cummings Publishing Co., Inc., Redwood City, CA, USA, 1994. [23] Z. Akbar, L. T. Handoko, Multi and independent block approach in public cluster, in: Proceeding of the 3rd Information and Communication Technology Seminar, 2007, pp. 216–218. [24] Z. Akbar, L. Handoko, Web-based Interface in Public Cluster, in: Proceeding of the 9th International Conference on Information Integration and Web-based Applications and Services, 2007, pp. 427–435.
Universitas Indonesia
LAMPIRAN
APPENDIX A LAMPIRAN 1 A.1
Hasil Percobaan
Hasil perbandingan terhadap kasus-kasus yang digunakan adalah sebagai berikut :
53
54
A.1.1
Tabel Data Tabel A.1: Tabel Performansi Kecepatan
File
Jumlah Iterasi
Jumlah Core
Waktu Iterasi (detik)
rohr turbine 3-D 85 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
10967 9273 5953 4699 3496 3136
rohr turbine inviscid 3-D 85 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
13070 9738 6578 4837 3854 3163
nosel 3-D 59 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
4312 2987 2006 1550 1448 1278
pitzDaily 2-D 2.5 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
97 48 58 54 75 74
pitzDailyInlet 2.5 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
157 75 89 83 113 103
Universitas Indonesia
55 Tabel A.2: Tabel Performansi Percepatan
File
Jumlah Iterasi
Jumlah Core
Percepatan
rohr turbine 3-D 85 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
1 1.18 1.84 2.33 3.14 3.5
rohr turbine inviscid 3-D 85 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
1 1.34 1.99 2.7 3.39 4.13
nosel 3-D 59 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
1 1.44 2.15 2.78 2.98 3.37
pitzDaily 2-D 2.5 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
1 2.02 1.67 1.8 1.29 1.31
pitzDailyInlet 1.1 MB (mesh file)
1000 1000 1000 1000 1000 1000
1 2 3 4 5 6
1 2.09 1.76 1.89 1.39 1.52
Universitas Indonesia
56 Tabel A.3: Tabel Performansi Percepatan Kasus PitzDaily Dengan Besar Mesh Berbeda
File
A.1.2
Jumlah Iterasi
Jumlah Core
Percepatan
pitzDaily 2-D 2.5 MB (mesh file)
1000 1000 1000 1000
1 2 4 6
1 2.02 1.8 1.31
pitzDaily 2-D 11 MB (mesh file)
1000 1000 1000 1000
1 2 4 6
1 1.9 2.83 2.23
pitzDaily 2-D 25 MB (mesh file)
1000 1000 1000 1000
1 2 4 6
1 1.59 3.14 1.64
pitzDaily 2-D 44 MB (mesh file)
1000 1000 1000 1000
1 2 4 6
1 1.49 3.74 3.16
pitzDailyInlet 70 MB (mesh file)
1000 1000 1000 1000
1 2 4 6
1 1.37 2.9 3.81
Grafik Residual Proses
Grafik residual proses dilihat oleh peneliti sebagai indikator konvergensi dari kasus yang sedang diproses. Jika grafik berpotensi turun maka proses masih belum stabil dan error masih bisa turun, jika grafik mendatar maka proses tersebut tidak perlu dilanjutkan lagi dan jika grafik cenderung naik maka berpotensi untuk menjadi divergen
Universitas Indonesia
57
Gambar A.1: Residual Kasus PitzDaily
Gambar A.2: Residual Kasus PitzDailyExptInlet
Universitas Indonesia
58
Gambar A.3: Residual Kasus Nozzle
Gambar A.4: Residual Kasus Rohr Turbine Leit
Universitas Indonesia
59
Gambar A.5: Residual Kasus Rohr Turbine Leit inviscid
A.1.3
Gambar Hasil Post Processing
Pada gambar hasil post-processing dapat dilihat dengan jelas tekanan pada model yang disimulasikan. Terdapat juga skala yang mencantumkan angka tekanan maksimum yang didapatkan oleh model.
Gambar A.6: PitzDaily t=7
Universitas Indonesia
60
Gambar A.7: PitzDailyExptInlet t=7
Gambar A.8: Nozel 3D t=20
Gambar A.9: rohr turbine 3D t=6
Universitas Indonesia
61
Gambar A.10: rohr turbine inviscid 3D t=6
A.1.4
Spesifikasi Data Mesh
Berikut adalah data mesh yang dijadikan percobaan didalam tesis ini. Spesifikasi data mesh menerangkan besarnya mesh masing-masing kasus sebagai acuan terhadap kecepatan proses terhadap besarnya mesh kasus yang diproses. Data yang digunakan pada 1.4.2 dan 1.4.3 sama, lalu 1.4.4 dan 1.4.5 sama. Data ini digunakan sebagai acuan terhadap kecepatan proses terhadap perbedaan properti turbulensi yang digunakan. Mesh Nozzle Mesh stats points: 367741 faces: 1087600 internal faces: 1072400 cells: 360000 boundary patches: 3 point zones: 0 face zones: 0 cell zones: 0 Number of cells of each type: hexahedra: 360000 prisms: 0 wedges: 0 pyramids: 0 Universitas Indonesia
62 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces ... Patch Faces Points Surface topology dinding 8000 8080 ok (non-closed singly connected) keluar 3600 3641 ok (non-closed singly connected) masuk 3600 3641 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (0 -68 -68) (221.338 68 68) Mesh (non-empty) directions (1 1 1) Mesh (non-empty, non-wedge) dimensions 3 Boundary openness (-1.95262e-19 -5.54494e-19 6.6116e-19) OK. Max cell openness = 2.77916e-15 OK. Max aspect ratio = 203.414 OK. Minumum face area = 0.00214066. Maximum face area = 54.3857. Face area magnitudes OK. Min volume = 0.00392442. Max volume = 79.1678. Total volume = 1.3304e+06. Cell volumes OK. Mesh non-orthogonality Max: 75.1639 average: 16.7744 *Number of severely non-orthogonal faces: 800. Non-orthogonality check OK. ¡¡Writing 800 non-orthogonal faces to set nonOrthoFaces Face pyramids OK. Max skewness = 0.96044 OK.
Universitas Indonesia
63 A.1.4.1
rohr turbine leit
Mesh stats points: 528165 faces: 1509222 internal faces: 1434906 cells: 490688 boundary patches: 5 point zones: 0 face zones: 0 cell zones: 0 Number of cells of each type: hexahedra: 490688 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces ... Patch Faces Points Surface topology LEIT AUS 8096 8349 ok (non-closed singly connected) LEIT EIN 8096 8349 ok (non-closed singly connected) LEIT MANTEL 15334 16005 ok (non-closed singly connected) LEIT NABE 15334 16005 ok (non-closed singly connected) LEIT SCHAUF 27456 28314 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.4815 -1.38978 -1.38977) (0.425096 1.38956 1.38974) Universitas Indonesia
64 Mesh (non-empty) directions (1 1 1) Mesh (non-empty, non-wedge) dimensions 3 Boundary openness (4.40824e-19 -1.29486e-19 -4.44828e-20) OK. Max cell openness = 4.05022e-16 OK. Max aspect ratio = 10.6074 OK. Minumum face area = 1.53774e-06. Maximum face area = 0.00117264. Face area magnitudes OK. Min volume = 7.75456e-09. Max volume = 2.80934e-05. Total volume = 3.03651. Cell volumes OK. Mesh non-orthogonality Max: 52.9943 average: 15.3652 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1.16326 OK.
A.1.4.2
rohr turbine leit inviscid
Mesh stats points: 528165 faces: 1509222 internal faces: 1434906 cells: 490688 boundary patches: 5 point zones: 0 face zones: 0 cell zones: 0 Number of cells of each type: hexahedra: 490688 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Universitas Indonesia
65 Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces ... Patch Faces Points Surface topology LEIT AUS 8096 8349 ok (non-closed singly connected) LEIT EIN 8096 8349 ok (non-closed singly connected) LEIT MANTEL 15334 16005 ok (non-closed singly connected) LEIT NABE 15334 16005 ok (non-closed singly connected) LEIT SCHAUF 27456 28314 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.4815 -1.38978 -1.38977) (0.425096 1.38956 1.38974) Mesh (non-empty) directions (1 1 1) Mesh (non-empty, non-wedge) dimensions 3 Boundary openness (4.40824e-19 -1.29486e-19 -4.44828e-20) OK. Max cell openness = 4.05022e-16 OK. Max aspect ratio = 10.6074 OK. Minumum face area = 1.53774e-06. Maximum face area = 0.00117264. Face area magnitudes OK. Min volume = 7.75456e-09. Max volume = 2.80934e-05. Total volume = 3.03651. Cell volumes OK. Mesh non-orthogonality Max: 52.9943 average: 15.3652 Non-orthogonality check OK. Face pyramids OK. Max skewness = 1.16326 OK.
A.1.4.3
pitzDaily
Mesh stats points: 25012 internal points: 0 faces: 49180 internal faces: 24170 Universitas Indonesia
66 cells: 12225 boundary patches: 5 point zones: 0 face zones: 0 cell zones: 0 Number of cells of each type: hexahedra: 12225 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces ... Patch Faces Points Surface topology inlet 30 62 ok (non-closed singly connected) outlet 57 116 ok (non-closed singly connected) upperWall 223 448 ok (non-closed singly connected) lowerWall 250 502 ok (non-closed singly connected) frontAndBack 24450 25012 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005) Mesh (non-empty) directions (1 1 0) Mesh (non-empty, non-wedge) dimensions 2 All edges aligned with or perpendicular to non-empty directions. Boundary openness (-1.60217e-20 9.25697e-20 2.0579e-18) OK. Max cell openness = 2.20619e-16 OK.
Universitas Indonesia
67 Max aspect ratio = 7.74923 OK. Minumum face area = 1.65978e-07. Maximum face area = 5.14451e-06. Face area magnitudes OK. Min volume = 1.65978e-10. Max volume = 4.08301e-09. Total volume = 1.4516e05. Cell volumes OK. Mesh non-orthogonality Max: 5.94745 average: 1.41505 Non-orthogonality check OK. Face pyramids OK. Max skewness = 0.260443 OK.
A.1.4.4
pitzDailyExptInlet
Mesh stats points: 25012 internal points: 0 faces: 49180 internal faces: 24170 cells: 12225 boundary patches: 5 point zones: 0 face zones: 0 cell zones: 0 Number of cells of each type: hexahedra: 12225 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Universitas Indonesia
68 Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces ... Patch Faces Points Surface topology inlet 30 62 ok (non-closed singly connected) outlet 57 116 ok (non-closed singly connected) upperWall 223 448 ok (non-closed singly connected) lowerWall 250 502 ok (non-closed singly connected) frontAndBack 24450 25012 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005) Mesh (non-empty) directions (1 1 0) Mesh (non-empty, non-wedge) dimensions 2 All edges aligned with or perpendicular to non-empty directions. Boundary openness (-1.60217e-20 9.25697e-20 2.0579e-18) OK. Max cell openness = 2.20619e-16 OK. Max aspect ratio = 7.74923 OK. Minumum face area = 1.65978e-07. Maximum face area = 5.14451e-06. Face area magnitudes OK. Min volume = 1.65978e-10. Max volume = 4.08301e-09. Total volume = 1.4516e05. Cell volumes OK. Mesh non-orthogonality Max: 5.94745 average: 1.41505 Non-orthogonality check OK. Face pyramids OK. Max skewness = 0.260443 OK.
Universitas Indonesia
69
A.2 A.2.1
Antar Muka Web User
Gambar A.11: Halaman Muka
Gambar A.12: Halaman Registrasi
Universitas Indonesia
70
Gambar A.13: Halaman Awal
Gambar A.14: Halaman File
Universitas Indonesia
71
Gambar A.15: Upload File
Gambar A.16: Halaman Eksekusi
Universitas Indonesia
72
Gambar A.17: Halaman Hasil
Gambar A.18: Halaman Monitoring Proses
Universitas Indonesia
73
Gambar A.19: Halaman Log Hasil
Gambar A.20: Halaman Residual
Universitas Indonesia
74
A.2.2
Administrator
Gambar A.21: Halaman Aktifasi User
Gambar A.22: Halaman Manajemen User
Universitas Indonesia
75
Gambar A.23: Halaman Manajemen Memory
Gambar A.24: Halaman Manajemen Prosesor
Universitas Indonesia
76
Gambar A.25: Halaman Manajemen Solver
Universitas Indonesia
APPENDIX B LAMPIRAN 2 B.1
Installasi Operating System
Installasi cluster yang dilakukan menggunakan Fedora 12 x64. Hal ini dikarenakan oleh limitasi RAM yang dapat digunakan pada Sistem Operasi 32 bit terbatas pada 3.5 GB. Dengan menggunakan sistem operasi 64 bit maka penggunaan slot RAM pada motherboard dapat dioptimalkan.
Gambar B.1: Installasi Sistem Operasi
Installasi pada masing-masing komputer dibuat empat partisi : • Swap dengan dua kali besar RAM yang digunakan 4GB • /boot dengan besar 100 MB • / dengan besar 50 GB • /opt dengan besar sisa hardisk yang ada Paket installasi yang di install pada Head Node: • HTTP Server apache web server • Development Tools GCC, G++, Flex, Python • Development Library library pendukung Development Tools
77
78 Untuk installasi pada Client Node gunakan konfigurasi minimum agar didapatkan kemampuan maksimum didalam pengerjaan. Setelah installasi selesai maka installasi tambahan yang diperlukan oleh Head Node untuk mendukung cluster CFD berbasis web adalah : • Gnuplot dan Gnuplot-py yang dibutuhkan untuk grafis • Modpython dibutuhkan oleh apache web server untuk menterjemahkan kode psp (python server pages) • sqlite-py dibutuhkan oleh python untuk mengoperasikan sqlite database • downgrade qt, qt-devel dan qt-X11 ke versi 4.3.x untuk kompabilitas dengan OpenFOAM
B.2
Pengaturan Network File System
Persiapan penggunaan NFS untuk cluster 1. Persiapan pada master Periksa apakah didalam cluster telah terdapat paketpaket berikut : • Nfs • Portmap Periksa apakah selinux dalam keadaan hidup, jika ya maka matikan Ubah file /etc/hosts.allow dan masukkan ip dari client yang akan mengakses master Gunakan perintah #rpcinfo p localhost untuk melihat port yang tersedia. Setelah dperintah dijalankan, port nfs sudah dapat digunakan : program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 35861 status 100024 1 tcp 42835 status 100011 1 udp 875 rquotad Universitas Indonesia
79 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100021 1 udp 38451 nlockmgr 100021 3 udp 38451 nlockmgr 100021 4 udp 38451 nlockmgr 100021 1 tcp 39933 nlockmgr 100021 3 tcp 39933 nlockmgr 100021 4 tcp 39933 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100005 1 udp 50529 mountd 100005 1 tcp 38692 mountd 100005 2 udp 50529 mountd 100005 2 tcp 38692 mountd 100005 3 udp 50529 mountd 100005 3 tcp 38692 mountd Cek dengan menggunakan perintah #nfsstat Server rpc stats: calls badcalls badauth badclnt xdrcall 28 0 0 0 0 Server nfs v3: null getattr setattr lookup access readlink 2 8% 8 33% 0 0% 0 0% 0 0% 0 0% read write create mkdir symlink mknod 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% remove rmdir rename link readdir readdirplus 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% fsstat fsinfo pathconf commit 0 0% 10 41% 4 16% 0 0%
Universitas Indonesia
80
2. Persiapan pada Client Node Periksa apakah didalam cluster telah terdapat paket-paket berikut : • Nfs • Portmap Periksa apakah folder yang di share pada master dapat di mount pada folder yang telah disediakan dengan menggunakan perintah #mount 192.168.0.1:/opt /opt Periksa dengan perintah #mount : 192.168.0.1:/opt on /opt type nfs (rw,addr=192.168.0.1) 192.168.0.1:/home on /home type nfs (rw,addr=192.168.0.1) Jika pemeriksaan berhasil maka file /etc/fstab dapat diubah sesuai dengan yang diinginkan : 192.168.0.1:/opt /opt nfs defaults 0 0 192.168.0.1:/home /home nfs defaults 0 0
B.3
SSH tanpa password untuk slave node
1. Periksa apakah ssh server berada pada list servis yang berjalan pada saat master node dan compute node berjalan dengan menggunakan perintah chkconfig list NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. Dengan menggunakan perintah #ssh-keygen dengan teknik RSA, maka akan didapatkan dua buah file id rsa dan id rsa.pub: # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/unicluster01/.ssh/id rsa): passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/publicCFD/.ssh/id rsa. Your public key has been saved in /home/publicCFD/.ssh/id rsa.pub. The key fingerprint is: c5:37:45:27:fa:34:f1:3b:4d:d3:19:65:15:xx:xx:xx publicCFD@lapan Universitas Indonesia
81 The key’s randomart image is: +–[ RSA 2048]—- + | .= . .+B| | o E| | . = + ++o| | + o| |S.o.| |.| || || || +—————–+
3. Ubah file id rsa.pub menjadi authorized keys 4. Test ssh ke semua node apakah telah dapat digunakan tanpa password atau tidak, jika telah sesuai maka login dapat digunakan ke seluruh node.
B.4
Installasi Torque Cluster Resource Manager
Persiapan resource manager pada cluster
B.4.1
Persiapan pada master
Persiapkan komponen-komponen yang diperlukan, proses installasi: openmpi 1.3.3-6.fc12 torque 2.1.10-8.fc12 torque-mom 2.1.10-8.fc12 torque-scheduler 2.1.10-8.fc12 torque-server 2.1.10-8.fc12 Dependensi yang harus terinstall : environment-modules 3.2.7b-6.fc12 libgfortran 4.4.2-20.fc12 libibverbs 1.1.3-3.fc12 libmlx4 1.0.1-3.fc12 librdmacm 1.0.101.fc12 tcl 1:8.5.7-4.fc12 libtorque 2.1.10-8.fc12 Pada /var/torque/server priv/nodes, edit agar server dapat mengenali compute node : Unicluster01.detekgan.go.id np=2 Unicluster02.detekgan.go.id np=2 Universitas Indonesia
82 Unicluster03.detekgan.go.id np=2 Unicluster04.detekgan.go.id np=2 Periksa apakah pbs mom, pbs sched, pbs server pada list servis yang otomatis berjalan jika master dinyalakan dengan menggunakan #chkconfig list pbs mom 0:off 1:off 2:off 3:on 4:off 5:on 6:off pbs sched 0:off 1:off 2:off 3:on 4:off 5:on 6:off pbs server 0:off 1:off 2:off 3:on 4:off 5:on 6:off Pengaturan untuk resource manager : # create queue batch # set queue batch queue type = Execution # set queue batch resources min.nodes = 10 # set queue batch resources default.ncpus = 1 # set queue batch resources default.nodect = 30 # set queue batch resources default.nodes = 1 # set queue batch resources available.nodect = 30 # set queue batch resources available.nodes = 1 # set queue batch enabled = True # set queue batch started = True # set server scheduling = False # set server default queue = batch # set server log events = 511 # set server mail from = adm # set server scheduler iteration = 600 # set server node check rate = 150 # set server tcp timeout = 6 # set server pbs version = 2.1.10
B.4.2
Persiapan pada client
Persiapkan komponen-komponen yang diperlukan, proses installasinya : openmpi 1.3.3-6.fc12 torque 2.1.10-8.fc12 torque-mom 2.1.10-8.fc12 torque-scheduler 2.1.10-8.fc12 torque-client 2.1.10-8.fc12 Dependensi yang harus terinstall : environment-modules 3.2.7b-6.fc12 libgfortran 4.4.2-20.fc12 libibverbs 1.1.3-3.fc12 libmlx4 1.0.1-3.fc12 librdmacm 1.0.101.fc12 tcl 1:8.5.7-4.fc12 libtorque 2.1.10-8.fc12 tk 1:8.5.7-3.fc12 Universitas Indonesia
83 Pada /var/torque/server name, edit agar dapat mengenali master : Unicluster01
B.4.3
Pemeriksaan koneksi
Cek pada master node apakah compute node telah tersambung dengan resource manager di master node dengan menggunakan perintah pbsnode a $ pbsnodes -a unicluster01 state = free np = 2 ntype = cluster status = opsys=linux,uname=Linux unicluster01.detekgan.go.id 2.6.31.9174.fc12.x86 64 #1 SMP Mon Dec 21 05:33:33 UTC 2009 x86 64, sessions=1486 1516 1520 1521 1545 1568 1618, nsessions=7, nusers=3,idletime=0, totmem=8243952kb, availmem=8048756kb, physmem=3066616kb, ncpus=2, loadave=0.00, gres=unicluster01:headnode,netload=2734575, state=free, jobs=? 0, rectime=1263287254 unicluster02 state = free np = 2 ntype = cluster status = opsys=linux,uname=Linux unicluster02.detekgan.go.id 2.6.30.990.fc11.x86 64 #1 SMP Sat Oct 17 11:25:35 EDT 2009 x86 64,sessions=? 0,nsessions=? 0, nusers=0, idletime=2423, totmem=21573268kb, availmem=21469268kb, physmem=1995424kb, ncpus=2, loadave=0.00, netload=2214604, state=free, jobs=? 0, rectime=1263287258 unicluster03 state = free np = 2 ntype = cluster status = opsys=linux,uname=Linux unicluster03.detekgan.go.id 2.6.30.990.fc11.x86 64 #1 SMP Sat Oct 17 11:25:35 EDT 2009 x86 64,sessions=? 0,nsessions=? 0, nusers=0, idletime=2416, totmem=6189720kb, availmem=6079012kb, Universitas Indonesia
84 physmem=1995424kb, ncpus=2, loadave=0.00, netload=1790682, state=free, jobs=? 0, rectime=1263287258
B.5
Installasi MAUI Cluster Scheduller
1. Periksa apakah komponen-komponen yang dibutuhkan sudah tersedia dan terkonfigurasi dengan baik : • Torque • Maui 2. Installasi Maui Installer MAUI bisa didapatkan pada situs : http://www.clusterresources.com/products/maui-cluster-scheduler.php maka akan didapatkan file Maui3.2.6-Patch21.tar.gz lalu ekstrak ke folder yang diinginkan # tar -zxvf Maui3.2.6-Patch21.tar.gz -C /tmp install MAUI # ./configure # make # make install 3.Konfigurasi Maui file /usr/local/maui/maui.cfg
konfigurasi
MAUI
terdapat
pada
• hal-hal yang harus diperhatikan adalah pengubahan serverhost, admin, dan Resource Manager Definition • kebijakan didalam pengaturan cluster adalah FIRSTFIT # maui.cfg 3.2.6p21 SERVERHOST unicluster01.detekgan.go.id # primary admin must be first in list ADMIN1 root # Resource Manager Definition Universitas Indonesia
85
RMCFG[UNICLUSTER01.DETEKGAN.GO.ID] TYPE=PBS # Allocation Manager Definition AMCFG[bank] TYPE=NONE # full parameter docs at http://supercluster.org/mauidocs/a.fparameters.html # use the ’schedctl -l’ command to display current configuration RMPOLLINTERVAL 00:00:30 SERVERPORT 42559 SERVERMODE NORMAL # Admin: http://supercluster.org/mauidocs/a.esecurity.html LOGFILE maui.log LOGFILEMAXSIZE 10000000 LOGLEVEL 3 # Job Priority: http://supercluster.org/mauidocs/5.1jobprioritization.html QUEUETIMEWEIGHT 1 # FairShare: http://supercluster.org/mauidocs/6.3fairshare.html #FSPOLICY PSDEDICATED #FSDEPTH 7 #FSINTERVAL 86400 #FSDECAY 0.80 # Throttling Policies: http://supercluster.org/mauidocs/6.2throttlingpolicies.html # NONE SPECIFIED # Backfill: http://supercluster.org/mauidocs/8.2backfill.html
Universitas Indonesia
86
BACKFILLPOLICY FIRSTFIT RESERVATIONPOLICY CURRENTHIGHEST # Node Allocation: http://supercluster.org/mauidocs/5.2nodeallocation.html NODEALLOCATIONPOLICY MINRESOURCE # QOS: http://supercluster.org/mauidocs/7.3qos.html # QOSCFG[hi] PRIORITY=100 XFTARGET=100 FLAGS=PREEMPTOR:IGNMAXJOB # QOSCFG[low] PRIORITY=-1000 FLAGS=PREEMPTEE # Standing Reservations: http://supercluster.org/mauidocs/7.1.3standingreservations.html # SRSTARTTIME[test] 8:00:00 # SRENDTIME[test] 17:00:00 # SRDAYS[test] MON TUE WED THU FRI # SRTASKCOUNT[test] 20 # SRMAXTIME[test] 0:30:00 # Creds: http://supercluster.org/mauidocs/6.1fairnessoverview.html # USERCFG[DEFAULT] FSTARGET=25.0 # USERCFG[john] PRIORITY=100 FSTARGET=10.0# GROUPCFG[staff] PRIORITY=1000 QLIST=hi:low QDEF=hi # CLASSCFG[batch] FLAGS=PREEMPTEE # CLASSCFG[interactive] FLAGS=PREEMPTOR
B.6
Installasi OpenFOAM
Persiapan pustaka yang dibutuhkan oleh OpenFOAM : Untuk menginstall OpenFOAM dibutuhkan beberapa library yang dibutuhkan atau installasi akan gagal. qt-4.3.x tidak bisa menggunakan versi yang lebih tinggi
Universitas Indonesia
87 qt-devel-4.3.x sesuaikan dengan qt qt-x11 sesuaikan dengan qt openmotif File installasi OpenFOAM terdiri dari lima paket installasi yaitu : OpenFOAM-1.5.General.gtgz OpenFOAM-1.5.linux64GccDPOpt.gtgz OpenFOAM-1.5.linux64GccSPOpt.gtgz ThirdParty-1.5.General.gtgz ThirdParty-1.5.linux64Gcc.gtgz Langkah-langkah installasi : 1. Install pustaka yang dibutuhkan 2. Ekstraksi semua file installasi OpenFOAM ke folder yang diinginkan sebagai tempat installasi, utamakan berurutan agar tidak terjadi masalah tar -zxvf OpenFOAM-1.5.General.gtgz -C /opt tar -zxvf OpenFOAM-1.5.linux64GccDPOpt.gtgz -C /opt tar -zxvf OpenFOAM-1.5.linux64GccSPOpt.gtgz -C /opt tar -zxvf ThirdParty-1.5.General.gtgz -C /opt tar -zxvf ThirdParty-1.5.linux64Gcc.gtgz -C /opt
3. Ubah pada file /opt/OpenFOAM/OpenFOAM-1.5/etc/bashrc baris ke 47 foamInstall=$HOME/$WM PROJECT menjadi foamInstall=/opt/$WM PROJECT
4. Pada $HOME/.bash profile tambahkan : source /opt/OpenFOAM/OpenFOAM-1.5/etc/bashrc Tambahan aplikasi pihak ketiga yang terdapat pada OpenFOAM 1.5 adalah : cmake-2.4.6 gcc-4.3.1 malloc metis-5.0pre2 openmpi-1.2.6 ParaView3.3-cvs Universitas Indonesia
88 ParMetis-3.1 ParMGridGen-1.0 zlib-1.2.3 Aplikasi ini tidak diinstall pada setiap node, tetapi dilakukan teknik sharing dengan menggunakan NFS. Hal ini dapat memudahkan administrator didalam mengelola cluster.
Universitas Indonesia