Erlang: What, Why and How

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Multiple Processor Systems
Hardware & the Machine room Week 5 – Lecture 1. What is behind the wall plug for your workstation? Today we will look at the platform on which our Information.
Ravi Sankar Technology Evangelist | Microsoft
Higher Computing Computer Systems S. McCrossan Higher Grade Computing Studies 7. Systems Software 1 System Software This software is used to provide the.
Concurrency The need for speed. Why concurrency? Moore’s law: 1. The number of components on a chip doubles about every 18 months 2. The speed of computation.
Beowulf Supercomputer System Lee, Jung won CS843.
OPNET. Starting OPNET Open a console To set up OPNET type: “source /import/app1/cshrc/opnet” at the command prompt This should create op_admin/ and op_models/
RPC Project Using either sockets or TLI, implement Remote Procedure Calls between two distinct machines that are communicating over an Ethernet network.
MULTICOMPUTER 1. MULTICOMPUTER, YANG DIPELAJARI Multiprocessors vs multicomputers Interconnection topologies Switching schemes Communication with messages.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Reference: / Parallel Programming Paradigm Yeni Herdiyeni Dept of Computer Science, IPB.
Lecture 6: Introduction to Distributed Computing.
 What is an operating system? What is an operating system?  Where does the OS fit in? Where does the OS fit in?  Services provided by an OS Services.
 What is OS? What is OS?  What OS does? What OS does?  Structure of Operating System: Structure of Operating System:  Evolution of OS Evolution of.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
ICOM Noack Operating Systems - Administrivia Prontuario - Please time-share and ask questions Info is in my homepage amadeus/~noack/ Make bookmark.
Multicore Computing Using Erlang Art Gittleman California State University Long Beach
ECE200 – Computer Organization Chapter 9 – Multiprocessors.
Remote Objects. The Situation Is there a better (in terms of programmer time) way to do network communications? What is it we’re trying to accomplish?
CS 326: Functional Programming 1. 2 Erlang – A survey of the language & applications Paper by: Joe Armstrong, Computer Science Laboratory, Ericsson Telecom.
Static Detection of Race Conditions in Erlang Maria Christakis National Technical University of Athens, Greece Joint work with Kostis Sagonas.
Data Management for Decision Support Session-4 Prof. Bharat Bhasker.
The Structure of the “THE”- Multiprogramming System Edsger W. Dijkstra Presented by: Jin Li.
6.894: Distributed Operating System Engineering Lecturers: Frans Kaashoek Robert Morris
3/12/2013Computer Engg, IIT(BHU)1 PARALLEL COMPUTERS- 1.
Operating Systems.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Brian Lauge Pedersen Senior DataCenter Technology Specialist Microsoft Danmark.
Multi-Core CPUs Matt Kuehn. Roadmap ► Intel vs AMD ► Early multi-core processors ► Threads vs Physical Cores ► Multithreading and Multi-core processing.
The vMatrix: Teleporting Servers via Virtual Machine Monitors (work in progress – LISA’02) Amr A. Awadallah Mendel Rosenblum
Building Fault tolerant and distributed VoIP applications using FreeSWITCH and Erlang Andrew Thompson & Micah Warren Fused Solutions, LLC Cluecon, Chicago.
Distributed and Parallel Processing George Wells.
Threads Some of these slides were originally made by Dr. Roger deBry. They include text, figures, and information from this class’s textbook, Operating.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Introduction Super-computing Tuesday
Lesson Objectives Aims You should be able to:
Chapter 1: A Tour of Computer Systems
Chapter 2 Processes and Threads Today 2.1 Processes 2.2 Threads
Computer Organization & Assembly Language Chapter 3
Multi-Processing in High Performance Computer Architecture:
Overview Parallel Processing Pipelining
Micro-programmed Control Unit
Distributed System Structures 16: Distributed Structures
Lecture 7: Introduction to Distributed Computing.
Central Processing Unit
Chapter 4: Threads.
More examples How many processes does this piece of code create?
Chapter 2: System Structures
Processor Organization and Architecture
CSE 451: Operating Systems Winter 2009 Module 13 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
Shared Memory Programming
Erlang Multicore support
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
CSCE 313 – Introduction to UNIx process
Hosted VoIP Services using Erlang/OTP
CSE 451: Operating Systems Winter 2012 Redundant Arrays of Inexpensive Disks (RAID) and OS structure Mark Zbikowski Gary Kimura 1.
Multithreaded Programming
Concurrency, Processes and Threads
A Short Intro to Go CS 240 – Fall 2018 Rec. 1.
Lecture 6: Multiprogramming and Context Switching
Virtualization and Persistence
Lecture 09 & 10 Operating Systems Network, Communication, OSI.
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Concurrency Conclusion
Operating System Overview
Software Engineering and Architecture
Programming Paradigms and Languages
Presentation transcript:

Erlang: What, Why and How COSI Lightning talk by: Jacob Torrey

What is Erlang? A programming language created by Ericsson for telephony switches. Many concurrent processes Must have high uptime It's been around for quite a while, but is just now getting popular Buzzwords: Functional, Distributed, Highly- concurrent Used by: Facebook, CouchDB, ejabberd... Similar to: Prolog, Haskell...

Why Erlang? It has a VERY lightweight process system (think 2 million per CPU) with: No locking or shared memory – No nightmares Pure message passing – Can pass any data in messages Processes can be on remote machines Erlang VM can take advantage of new hardware without program changes Multi-core and multi-processor Near linear speed up with less than 16 cores!

Ok, so How? Erlang requires a VM (http://www.erlang.org) Windows, OSX, *NIX Run erl in the command prompt 1> 1. 1 2> A = 1. B = A + 1. 2

Show me the money!... or code double(Num) → Num * 2. doubleList(ListNum) → F = fun(F) → double(A) end, lists:map(F, ListNum). OR rpc:pmap({?MODULE, double}, [], ListNum).

What is the advantage Since you can fork and forget about processes, you can conceptualize problems like in the real world. No race conditions or other nasties Erlang will take advantage of multi-cores without your help Distributed for hardware failover Functional paradigm, so it rocks! ;)

Erlang + COSI = <3 OSP – My project to abstract away server boilerplate code to allow for the simple development of server daemons requiring just the server logic. Distributed data store for redundance and load balancing Simple management console Standard XML servlet format

Fin Ideas taken from: Devon Smith's Code4Lib Erlang talk http://www.code4lib.org http://www.archive.org/details/code4lib.conf.2 008.lightningtalk.Erlang