Rekayasa-Komputasi - I Made Wiryana

advertisement
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
1
5
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
Download