Rekayasa-Komputasi.pdf

13 downloads 14 Views 5MB Size Report
Ketika benda bergerak. (misal peluru ditembak) maka harus mengikuti kaidah fisika, kecepatan, percepatan, momentum dsb. ○ Memprediksi posisi berikut --->  ...

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