Official Site of I MADE WIRYANA, SSi,SKom,MSc - Gunadarma University Rekayasa Komputasi

Computational Science
Computational
Engineering
Dr. rer. nat. I Made Wiryana, SSi, SKom Msc
International Relation Office
Gunadarma University
http://www.gunadarma.ac.id

Siapakah saya


Dosen Universitas Gunadarma and peneliti RVS
Arbeitsgruppe – Bielefeld University)



Konsultan teknis situs PresidenSBY, Wapres dan
Kemenpora serta NusantaraOnline




Penulis : buku dan artikel majalah



Pengembang :





WinBI distro Indonesia pertama



Migrasi Open Source di 2 propinsi (bersama Air Putih)

Wakil Indonesia untuk standardisasi profesi bidang TI
untuk Asia Pacific (SEARCC)

Apa perlunya komputasi?


Perlukah teori ?????




Mahasiswa ingin jadi programmer saja,
perlukah ?


Aljabar diskrit ?



Sistem operasi ?

Kenyataan pekerjaan tingkat
programming yang dilakukan



Level perangkat lunak aplikasi saja



Tak membutuhkan pengetahuan ditail



Mau tetap seperti ini atau berubah ?

Tingkat kompleksitas dan
teori
kompleksitas
Pindah produk
teknologi baru

“Dummy”
books

Buku

Manual

Teori
dibutuhkan

waktu

Mengapa perlu komputasi


Game



Pengolahan suara (musik digital)



Database dan datamining




Perhitungan jadwal

Computer graphics


Representasi obyek 3D
(struktur data, tree, dsb)



Transformasi (matrix, aljabar
linear, calculus, geometri)
A= T*B



Shading atau windowing



Radiosity prinsip “heat transfer”
(fisika)



Menggunakan penyelesaian
persamaan differential

Rendering


POV Ray [http://www.povray.org,
radiosity, etc



Clustered

Mekanika



Ketika benda bergerak
(misal peluru ditembak)
maka harus mengikuti
kaidah fisika, kecepatan,
percepatan, momentum
dsb



Memprediksi posisi
berikut ---> VEKTOR

Pertemuan 2 obyek


Ketika 2 atau lebih
obyek bersentuhan
atau bertabrakan,

maka juga harus
mengikuti kaidah
fisika.



Di sini pentingnya
pengetahuan
ANALISIS NUMERIK

Kendala mengajarkan teori


Mahasiswa tak tertarik karena merasa tak ada
manfaatnya



Materi teori di kelas terlalu jauh dengan kondisi
praktis (tanpa contoh yang erat relasinya)




Kurikulum tanpa jalinan teori dan praktek



Pengajar kurang memahami keterkaitan teori
dan praktek



Perangkat bantu yang digunakan !!!! tak
memungkinkan mahasiswa menyadari
kebutuhan teori

Konsep → Operasi




Konsep dan teori hanya dihafalkan



Trampil mengoperasikan menu-menu



Kaitan apa yang terjadi di permukaan
tidak diketahui → PROBLEM !!!

Solusi Open Source

Penggunaan Open Source


Perangkat bantu Open Source sebagai
alat bantu pengajaran




Melihat source code untuk memahami
implementasi teori



Mengembangkan program open source
yang mendemonstrasikan suatu teori



Bergabung atau mengamati proyek
open source.

Virtualization & Simulation

Analisis numerik → Rekayasa
Komputasi

Analisis Numerik




Algoritma untuk memecahkan masalahmasalah numerik


Mencari nilai integral



Persamaan differential

Permasalahan utama dalam algoritma


Error pada tiap metoda



Jumlah iterasi pada tiap metoda



Implementasi tidak dipertimbangkan

Computational Science


Metoda komputasi untuk memecahkan
masalah science



Contoh :





Weather modelling



Genetic modelling



N-Body simulation

Pada pendekatan ini yang terpenting
adalah bagaimana model komputasi yang
tepat untuk memecahkan masalah sains

Domain permasalahan


Bioinformatics and life science



Computational Chemistry



Computational electrodymanics and electromagnetics



Finance



Fluid dynamics



Data mining, analytics and database



Imaging and computer vision



Medical imaging



Molecular imaging



Weather modeling

Masalah di comp. science

Computational Engineering


Beragam teknik komputasi digunakan
pada kehidupan sehari-hari dari problem
rumit hingga simple



Implementasi dari masalah itu beragam
dengan contraint terbatas



Permasalahan utama : algoritma apa yang
tepat untuk masalah tersebut dengan
constraint implementasi yang ada.

Masalah di Comp. Eng.
FPGA

Embedded

Algoritma dan
Implementasi
Yang tepat

Cluster

Permasalahan


Perubahan batasan dan model
implementasi sering membutuhkan
algoritma yang tepat



Pada Rekayasa Komputasi titik utama
adalah proses-proses rekayasa dalam
memecahkan masalah komputasi



Pengetahuan hardware, software dan
struktur sistem juga penting

Time ↔ Frequency


Fourier Tr.



DFT



FFT

Komputasi utk hiburan

Komputasi untuk robot

Perangkat pemrograman

Mengapa Python


Relatif mudah dipelajari



Memiliki banyak pustaka (library)


Numerik



Graphics



GUI dll



Kecepatan tinggi (interpreter tetapi memiliki
model kompilasi sementara)



Tersedia IDE

Pustaka untuk komputasi


NumPy [http://numpy.scipy.org]



SciPy [http://www.scipy.org]



PyCUDA []



PyOpenCL



PyACTS [http://www.pyacts.org]



ScientificPhython

LUA sebagai pilihan lain


Interpreter seperti Python



Berorientasi pada data dan tabel (cocok
untuk pengolahan numeris



Dikembangkan dari awal untuk mengolah
data



Banyak digunakan sebagai “embedded
language” di program lain

Scilab


Dikembangkan
lembaga riset
INRIA



Sudah cukup untuk
kebutuhan
mahasiswa



Tersedia source
code dan koneksi
ke Tcl/Tk, Java dsb



Code generator,
dan modelling

Bagian Scilab


Development Environment



Scilab Mathematical Function Library



Scilab language



Graphics tools



Scilab Application Programming Interface

R stat


Menggunakan
bahasa S



Bisa seperti
pemrograman
(baik untuk
belajar)



Tersedia GUI
dan tool
tambahan

SAGE


Perangkat lunak OSS untuk matematika



Mendukung penelitian dan pendidikan di
bidang aljabar, geometri, teori bilangan,
kriptografi, numerik



Menggunakan Python dan Cython
(compiler C, memudahkan memanggil
fungsi yang dibuat dari C)



http://www.sagemath.org

Kelebihan SAGE


Menggunakan bahasa pemrograman yang
umum (bandingkan dengan Maple,
Mathematica dll)



Lebih fungsional



Sering lebih cepat memecahkan masalah



Free !!!

Kemampuan grafis

Contoh operasi matriks

Processing


Open Source programming language
berbasiskan Java



Processing Development Environment (PDE),
untuk memproses image, animas dan interaksi
atau fungsi komputasi.



Dari MIT Media Lab tersedia di
http://www.processing.org



Bekerja dengan model sketchbook dengan
menggunakan fungsi dan tool yang tersedia

Contoh
Simulasi

OpenCL


Open Computing Language



Pustaka yang memungkinkan menulis
program untuk beragam device (CPU,
GPU, dan lainnya) mendukung CUDA.



Mendukung parallel dengan task based
dan databased



http://www.kronos.org/opencl

Perkembangan Hardware

GPU makin populer


Arsitektur GPU yang makin meningkat dan
terus berubah :


Jumlah core



Banyaknya thread



Shared memory



Pemrograman GPU sebelumnya tidak
diperuntukkan untuk komputasi umum



Bagi pembuat card graphic (Nvidia)
merupakan bisnis baru

Bukan hanya utk gamer


Graphical Processor Unit (GPU), misal
NVIDIA Card memiliki kecepatan tinggi

Cluster dari PS3

Latice-Boltzmann
Supercomputer
Vs
Mainan



1000 iterasi pada domain 256x128x128



Cluster with 8 GPUs: 7.5 sec



Blue Gene/L 256 Nodes (512 cores) : 21 sec

CUDA


Computer Unified Device
Architecture



Engine komputasi pada
GPU Nvidia



Sudah lama digunakan
pada game



Kini banyak digunakan
untuk masalah
komputasi lainnya

Mengapa CUDA


Device dengan banyak core-chip dan
menggunakan multithreading



Ratusan cores, ribuan concurrent threads



Development yang lebih ekonomis



Masih dalam perkembangan yang cepat

Komputer parallel

Komputasi paralel


Teknik melakukan komputasi secara
bersamaan dengan memanfaatkan
beberapa komputer independen secara
bersamaan



Diperlukan saat kapasitas yang diperlukan
sangat besar, baik karena harus mengolah
data dalam jumlah besar



Juga karena kebutuhan proses komputasi
yang besar

Model mesin sekuential
A central processing
unit (CPU) executes a
program that performs
a sequence of read
and write operations
on
an
attached
memory
The
von Neumann
computer
SISD – Single Instruction Stream – Single Data Stream

A Parallel Machine Model
Interconnect


The cluster
A node can communicate with
The
other nodes by sending and
receiving messages over an
von Neumann
interconnection network
computer
MIMD – Multiple Instruction Stream – Multiple Data Stream

A Parallel Programming
Model
input

output
Sequential (serial) algorithm

input

output
Parallel algorithm

Example: scalar product of
vectors  
 
a, b

a, b

input
input

do i=1,N
S=s+aibi
enddo

do i=1,N/2
s1=s1+aibi
enddo

output

print S

S=s1+s2
Sequential (serial)
algorithm

print S

do i=N/2+1,N
s2=s2+aibi
enddo

output

Parallel algorithm

A Parallel Programming
Model
• Message Passing
4
5

1

3
2

0

Many small tasks solve one large problem
Instantaneous state of computation

detailed picture of
a single task

Message Passing Paradigm


Each processor in a message passing
program runs a separate process (subprogram, task)
− written in a conventional sequential
language
− all variables are private
− communicate via special subroutine calls

Messages




Messages are packets of data moving
between processes
The message passing system has to be
told the following information:
 Sending process
 Source location
 Data type
 Data length
 Receiving process(es)
 Destination location
 Destination size

Message Passing
SPMD
Single Program Multiple
Data

Same program
runs everywhere
Each process only
knows and
operates on a
small part of data

MPMD
Multiple Program Multiple
Data

Each process
perform a
different function
(input, problem
setup, solution,
output, display)

PVM and MPI
Background
MPI

PVM
The development of PVM
started in summer 1989 at
Oak
Ridge
National
Laboratory (ORNL).
PVM was effort of a single
research group, allowing it
great flexibility in design of
this system
MPI-1

PVM-1
1989

90

PVM-2
94

The development of MPI
started in April 1992.
MPI was designed by the MPI
Forum (a diverse collection of
implementors, library writers,
and
end
users)
quite
independently of any specific
implementation
MPI-2

PVM-3
96

PVM-3.4
97

99

2000

PVM and MPI
PVM

Goals

MPI

 A library for writing
application program,
not
a
distributed
operating system
 portability
 High Performance
 Heterogeneity
 Well-defined behavior
Note: implementation ≠ specification!
MPI implementations: LAM, MPICH,…

 A distributed
operating system
 Portability
 Heterogeneity
 Handling
communication
failures

What is MPI ?
MPI - Message Passing Interface
 A fixed set of processes is created at program
initialization, one process is created per
processor
mpirun –np 5 program
 Each process knows its personal number (rank)
 Each process knows number of all processes
 Each process can communicate with other
processes
 Process can’t create new processes (in MPI-1)

What is PVM ?
PVM - Parallel Virtual Machine
 Is a software package that allows a
heterogeneous collection of workstations (host
pool) to function as a single high performance
parallel machine (virtual)
 PVM, through its virtual machine provides a
simple yet useful distributed operating system
 It has daemon running on all computers
making up the virtual machine

OpenMosix








Algoritma-algoritma penggunaan sumber daya bersama yang
adaptif.
Memperbolehkan multiple Uniprocessor (UP) dan Simetric
Multiprocessor (SMC) menjalankan kernel yang sama untuk
bekerja dalam pekerjaan yang mirip.
Dirancang untuk merespon langsung bermacam-macam
pemakaian sumber daya pada setiap node.
Dicapai dengan memindahkan proses dari satu node ke node
yang lain, secara preemsi dan transparan, untuk load-balancing
dan untuk mencegah terjadi tumbukan yang berhubungan
dengan pertukaran memori.

Tanpa kontrol pusat


OpenMosix tidak memiliki control pusat
atau hubungan master/slave diantara
node-node ; tiap node bisa berjalan
sebagai system yang berjalan secara
otomatis, dan membuat semua
keputusan control secara independen.



Konfigurasi dinamis dimana node-node
bisa bergabung atau meninggalkan
jaringan dengan gangguan yang rendah.

Bootable Cluster CD


MPICH, PVM, LAM, OpenMOSIX



http://bccd.net

Terima kasih