Upload
ugur-tilikoglu
View
135
Download
3
Embed Size (px)
Citation preview
Bilgisayar Mühendisliği Bölümü
GYTE - Bilgisayar Mühendisliği Bölümü
CSE 625Parallel Computing
Uğur Tılıkoğlu
131041018
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang2
• Erlang– Problem– İhtiyaç– Özellikleri
• Giriş– Shell– Syntax
• Demo
İçerik
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Erlang• Problem
– Ericsson AXE santralleri– Harika ürün– Kötü maintainance
3
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Erlang• İhtiyaç
– İşlemler makul sürelerde tamamlanmalı– İşlemler birden fazla sistem üzerine dağıtılabilmeli– Sistem sürekliliği yıllarca devam etmeli– Sistem durdurulmadan yazılım bakımı
yapılabilmeli– Fault tolerant olmalı– Çok sayıda concurrent işlemi handle edebilmeli
4
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Erlang• Özellikler
– Lightweight concurrency– Async communication– Scalable– No shared data– Immutability– Fault isolation and self healing– Continuos evolution of the system / dynamic code
updating
5
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Giriş• Shell
6
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Giriş• Shell
– Her komut . (dot) ile sonlanır– Komutu sonlandırmak için CTRL + G– Çıkış q().– Her açılan shell bir node’dur. Node başlarken
konfigüre etmek için erl executeable’ına ilgili parametreler verilir.
7
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Giriş• Syntax
– Integers: 12 = 10#12 = 2#1100– Arithmetic: Floating point division: 10 / 3
3.33333~, Integer division: 10 div 3 3– Variable: büyük harfle başlar– Atoms: küçük harfle başlar– Strings: ‘foo bar’– Boolean: andalso, orelse– Equality: == (equal) , /= (not equal), =:= (exactly
equal) , =/= (exactly not equal) 1==1.0 true , 1=:=1.0 false
8
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Giriş• Syntax
– Tuples: {a, b, c}– Lists: [a, b, c]– Recursion: List = [Element|List] or []. – Function:
• area({square, Side}) ->
Side * Side;
area({circle, Radius}) ->
math:pi() * Radius * Radius;
area(Other) ->
{error, unknown_object}.
9
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Giriş• Syntax
– Module:• .erl extension
• -module(modulename).
• -export([methodname/argcount]). -export([area/1]).• Function list:• area({square, Side}) ->
Side * Side;
area({circle, Radius}) ->
math:pi() * Radius * Radius;
area(Other) ->
{error, unknown_object}
10
GYTE - Bilgisayar Mühendisliği Bölümü CSE625 Parallel Computing - Erlang
Demo• Distributed Environment
– erl -sname mynode1 -setcookie mynode1cookie– cd("C:/moduledirectory").– compile:file(modulename).– net_kernel:connect('node@othernode').– P=module:method('node@othernode').– P ! message
11