![Page 1: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/1.jpg)
ERLANG EVOLVES FOR MULTI-CORE AND CLOUD
ENVIRONMENTS
Torben HoffmannErlang Solutions Ltd.
@LeHoffhttp://musings-of-an-erlang-priest.blogspot.dk/
1Wednesday, 3 October 2012 W
![Page 2: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/2.jpg)
© 1999-2012 Erlang Solutions Ltd.
Agenda
•Erlang fundamentals
•Challenges
2
2Wednesday, 3 October 2012 W
![Page 3: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/3.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 4: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/4.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 5: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/5.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth?
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 6: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/6.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth? Yes
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 7: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/7.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth? Yes
The whole truth?
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 8: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/8.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth? Yes
The whole truth? No
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 9: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/9.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth? Yes
The whole truth? No
So help you OTP?
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 10: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/10.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 1: The Truth
3
Will you tell the truth? Yes
The whole truth? No
So help you OTP? Yes
3Wednesday, 3 October 2012 W
I will do a few simplifications in order to get the main points across.
![Page 11: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/11.jpg)
© 1999-2012 Erlang Solutions Ltd.
Warning 2: Serious Love Ahead
4
I love Erlang!
4Wednesday, 3 October 2012 W
It was part of a major career shift and I have never looked back.Apologies if I get too intense.
![Page 12: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/12.jpg)
© 1999-2012 Erlang Solutions Ltd.
Realities Of Software Development
•Time-to-market pressure
•Utilisation of computing resources
•Scaling successes
•Maintenance burden
5
5Wednesday, 3 October 2012 W
![Page 13: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/13.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 14: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/14.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 15: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/15.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 16: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/16.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 17: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/17.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 18: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/18.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
The future is here...
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 19: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/19.jpg)
© 1999-2012 Erlang Solutions Ltd.
What Could Be...
6
The future is Erlang!The future is here...
6Wednesday, 3 October 2012 W
3x productivity over C++/JavaSeamless scaling on multicoreScaling nicely over machinesLess code per featureThe future is here today - it’s called Erlang!
![Page 20: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/20.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
7
7Wednesday, 3 October 2012 W
![Page 21: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/21.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
7
7Wednesday, 3 October 2012 W
![Page 22: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/22.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
7
7Wednesday, 3 October 2012 W
![Page 23: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/23.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
7
7Wednesday, 3 October 2012 W
![Page 24: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/24.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
7
7Wednesday, 3 October 2012 W
![Page 25: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/25.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
7
7Wednesday, 3 October 2012 W
![Page 26: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/26.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
7
7Wednesday, 3 October 2012 W
![Page 27: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/27.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
7
7Wednesday, 3 October 2012 W
![Page 28: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/28.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
• Software maintenance on-the-fly
7
7Wednesday, 3 October 2012 W
![Page 29: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/29.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
• Software maintenance on-the-fly
• High quality and reliability
7
7Wednesday, 3 October 2012 W
![Page 30: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/30.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
• Software maintenance on-the-fly
• High quality and reliability
• Fault tolerance 7
7Wednesday, 3 October 2012 W
![Page 31: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/31.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
• Software maintenance on-the-fly
• High quality and reliability
• Fault tolerance 7
Soundsfamiliar?
7Wednesday, 3 October 2012 W
![Page 32: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/32.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Original Requirements
• Large scale concurrency
• Soft real-time
• Distributed systems
• Hardware interaction
• Very large software systems
• Complex functionality
• Continuous operation for many years
• Software maintenance on-the-fly
• High quality and reliability
• Fault tolerance 7
Soundsfamiliar?
Soundsgood,right?
7Wednesday, 3 October 2012 W
![Page 33: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/33.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
8Wednesday, 3 October 2012 W
![Page 34: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/34.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
C++/Java
8Wednesday, 3 October 2012 W
![Page 35: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/35.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
C++/Java
8Wednesday, 3 October 2012 W
![Page 36: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/36.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
Erlang
C++/Java
8Wednesday, 3 October 2012 W
![Page 37: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/37.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
Erlang
C++/Java
8Wednesday, 3 October 2012 W
![Page 38: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/38.jpg)
© 1999-2012 Erlang Solutions Ltd.
Small semantic gap
General vs Domain Specific
8
Telecom
Erlang
C++/Java
Smaller gap =
benefits!
8Wednesday, 3 October 2012 W
![Page 39: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/39.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang’s Sweet Spot
9
GUI
Drivers
MiddlewareCoordination
Control
Erlang
9Wednesday, 3 October 2012 W
Erlang was intended to deal with the control plane in telecom, which is all about orchestration of what goes on.GUI and low-level things are not what Erlang was created for - hence Erlang has good support for integration with other languages.Read the wonderful doctor thesis by Bjarne Däcker if you want to learn more: http://www.erlang.se/publications/bjarnelic.pdf
![Page 40: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/40.jpg)
© 1999-2012 Erlang Solutions Ltd.
Other Erlang Domains
10
•Messaging - XMPP et al
- ejabberd, MongooseIM
•Webservers
- Yaws, Chicago Boss
•Payment switches & soft switches
- Vocalink, OpenFlow/LINC
•Distributed Databases
- Riak, CouchDB, Scalaris
10Wednesday, 3 October 2012 W
![Page 41: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/41.jpg)
© 1999-2012 Erlang Solutions Ltd.
Other Erlang Domains
10
•Messaging - XMPP et al
- ejabberd, MongooseIM
•Webservers
- Yaws, Chicago Boss
•Payment switches & soft switches
- Vocalink, OpenFlow/LINC
•Distributed Databases
- Riak, CouchDB, Scalaris
If the tool fits,you must select!
Tech Mesh Conference4-5 December
London
10Wednesday, 3 October 2012 W
![Page 42: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/42.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 43: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/43.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 44: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/44.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory
P1
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 45: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/45.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory
P1 P2
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 46: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/46.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory
P2
Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 47: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/47.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
MemoryCorrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 48: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/48.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory MemoryCorrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 49: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/49.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory Memory
P1
Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 50: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/50.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory Memory Memory
P1
Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 51: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/51.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory Memory Memory
P1 P2
Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 52: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/52.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory Memory
P2
Corrupt Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 53: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/53.jpg)
© 1999-2012 Erlang Solutions Ltd.
To Share Or Not To Share
11
Memory Memory
P2
Corrupt
11Wednesday, 3 October 2012 W
Death propagates in shared memory unless you do a ton of defensive programming.Due to the actor model with no shared memory it is custom in Erlang to do fail-fast programming.No shared memory allows you to fail fast when suitable.Erlang uses message passing between processes to exchange information.
![Page 54: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/54.jpg)
© 1999-2012 Erlang Solutions Ltd.
Dealing With Failures
12
P1 P2
P1 P2
link =die together
monitor =notification
of death
12Wednesday, 3 October 2012 W
The ability to link processes and monitor them is the key to adopting fail-fast fully.Link & monitor works across machines!
![Page 55: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/55.jpg)
© 1999-2012 Erlang Solutions Ltd.
Supervision Trees
13
worker
supervisor
workersupervisor
worker workerworkerThe OTP library is
built on this principle
13Wednesday, 3 October 2012 W
Robust systems does not happen by accident - even in Erlang!You have to think about the consequences of a worker process that fails and let the supervisor take appropriate actions.Using the OTP library’s components makes it straightforward to implement the supervision tree, which has the added benefit that all things are started in the right order.OTP is lightweight enough to allow fast prototyping and the prototype can evolve into a high quality solution in a gradual way.
![Page 56: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/56.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Cores
14
Core
Scheduler
Processes
Core
Scheduler
Processes
14Wednesday, 3 October 2012 W
There is 1 scheduler per core.The VM tries to load balance across the available cores.Scales extremely well with the addition of extra cores - WITHOUT changing the programs!
![Page 57: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/57.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Machines
15
15Wednesday, 3 October 2012 W
Each instance of the Erlang runtime is called a node.There can be several nodes on one machine if you fancy that.Nodes detect when other nodes are not around any more - the programmer can then decide what to do.If you have the PID (Process Identifier) of a process you do not care which node it is on. You can decompose the PID to figure out if it is a local process, but you do not need to do so - locality is transparent.
![Page 58: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/58.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Machines
15
Node
15Wednesday, 3 October 2012 W
Each instance of the Erlang runtime is called a node.There can be several nodes on one machine if you fancy that.Nodes detect when other nodes are not around any more - the programmer can then decide what to do.If you have the PID (Process Identifier) of a process you do not care which node it is on. You can decompose the PID to figure out if it is a local process, but you do not need to do so - locality is transparent.
![Page 59: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/59.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Machines
15
Node Node
15Wednesday, 3 October 2012 W
Each instance of the Erlang runtime is called a node.There can be several nodes on one machine if you fancy that.Nodes detect when other nodes are not around any more - the programmer can then decide what to do.If you have the PID (Process Identifier) of a process you do not care which node it is on. You can decompose the PID to figure out if it is a local process, but you do not need to do so - locality is transparent.
![Page 60: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/60.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Machines
15
Node
Node
Node
15Wednesday, 3 October 2012 W
Each instance of the Erlang runtime is called a node.There can be several nodes on one machine if you fancy that.Nodes detect when other nodes are not around any more - the programmer can then decide what to do.If you have the PID (Process Identifier) of a process you do not care which node it is on. You can decompose the PID to figure out if it is a local process, but you do not need to do so - locality is transparent.
![Page 61: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/61.jpg)
© 1999-2012 Erlang Solutions Ltd.
Distribution Over Machines
15
Node
NodeNode
Node
15Wednesday, 3 October 2012 W
Each instance of the Erlang runtime is called a node.There can be several nodes on one machine if you fancy that.Nodes detect when other nodes are not around any more - the programmer can then decide what to do.If you have the PID (Process Identifier) of a process you do not care which node it is on. You can decompose the PID to figure out if it is a local process, but you do not need to do so - locality is transparent.
![Page 62: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/62.jpg)
© 1999-2012 Erlang Solutions Ltd.
Learn New Moves!
Staying Alive...
16
16Wednesday, 3 October 2012 W
As style changed a new group entered the top of the hip scale.For most it meant a serious restart or a stop altogether.
![Page 63: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/63.jpg)
© 1999-2012 Erlang Solutions Ltd.
Learn New Moves!
Staying Alive...
16
16Wednesday, 3 October 2012 W
As style changed a new group entered the top of the hip scale.For most it meant a serious restart or a stop altogether.
![Page 64: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/64.jpg)
© 1999-2012 Erlang Solutions Ltd.
Learn New Moves!
Staying Alive...
16
16Wednesday, 3 October 2012 W
As style changed a new group entered the top of the hip scale.For most it meant a serious restart or a stop altogether.
![Page 65: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/65.jpg)
© 1999-2012 Erlang Solutions Ltd.
Learn New Moves!
Staying Alive...
16
16Wednesday, 3 October 2012 W
As style changed a new group entered the top of the hip scale.For most it meant a serious restart or a stop altogether.
![Page 66: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/66.jpg)
© 1999-2012 Erlang Solutions Ltd.
Staying Alive Erlang Style
17
17Wednesday, 3 October 2012 W
With Erlang you can survive upgrades without loosing service.Along with the code change signal you specify how the internal state of the process should be updated before continuing.
![Page 67: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/67.jpg)
© 1999-2012 Erlang Solutions Ltd.
Staying Alive Erlang Style
17
v1
Process running
17Wednesday, 3 October 2012 W
With Erlang you can survive upgrades without loosing service.Along with the code change signal you specify how the internal state of the process should be updated before continuing.
![Page 68: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/68.jpg)
© 1999-2012 Erlang Solutions Ltd.
Staying Alive Erlang Style
17
Code loaded: v2
v1
Process running
17Wednesday, 3 October 2012 W
With Erlang you can survive upgrades without loosing service.Along with the code change signal you specify how the internal state of the process should be updated before continuing.
![Page 69: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/69.jpg)
© 1999-2012 Erlang Solutions Ltd.
Staying Alive Erlang Style
17
Code loaded: v2
v1
Process running
Code change signal
17Wednesday, 3 October 2012 W
With Erlang you can survive upgrades without loosing service.Along with the code change signal you specify how the internal state of the process should be updated before continuing.
![Page 70: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/70.jpg)
© 1999-2012 Erlang Solutions Ltd.
Staying Alive Erlang Style
17
Code loaded: v2
v1
Process running
Code change signal v2
17Wednesday, 3 October 2012 W
With Erlang you can survive upgrades without loosing service.Along with the code change signal you specify how the internal state of the process should be updated before continuing.
![Page 71: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/71.jpg)
© 1999-2012 Erlang Solutions Ltd.
Challenges
18
18Wednesday, 3 October 2012 W
![Page 72: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/72.jpg)
© 1999-2012 Erlang Solutions Ltd.
How Will I Know If It Really Scales?
19
???
Cores/Machines
Performance
19Wednesday, 3 October 2012 W
A Scalability Benchmark Suite for Erlang/OTP.http://www.softlab.ntua.gr/release/bencherl/index.htmlA number of synthetic benchmarks plus real-world (dialyzer and scalaris).Extendable to test your own application.
![Page 73: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/73.jpg)
© 1999-2012 Erlang Solutions Ltd.
How Will I Know If It Really Scales?
19
Cores/Machines
Performance
Bencherl
19Wednesday, 3 October 2012 W
A Scalability Benchmark Suite for Erlang/OTP.http://www.softlab.ntua.gr/release/bencherl/index.htmlA number of synthetic benchmarks plus real-world (dialyzer and scalaris).Extendable to test your own application.
![Page 74: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/74.jpg)
© 1999-2012 Erlang Solutions Ltd.
Who Is Doing What?
20
Core
Scheduler
Processes
Core
Scheduler
Processes
20Wednesday, 3 October 2012 W
![Page 75: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/75.jpg)
© 1999-2012 Erlang Solutions Ltd.
Who Is Doing What?
20
Core
Scheduler
Processes
Core
Scheduler
Processes
When is this process running?
20Wednesday, 3 October 2012 W
![Page 76: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/76.jpg)
© 1999-2012 Erlang Solutions Ltd.
Who Is Doing What?
20
Core
Scheduler
Processes
Core
Scheduler
Processes
When is this process running?
Who started this guy?
20Wednesday, 3 October 2012 W
![Page 77: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/77.jpg)
© 1999-2012 Erlang Solutions Ltd.
Percept2 To The Rescue
21
Active functions
21Wednesday, 3 October 2012 W
Percept: Erlang Concurrency Profiling Tool, utilizes trace informations and profiler events to form a picture of the processes's and ports runnability.Percept2 is an extension of Percept (part of the OTP release).Extensions: # of schedulers active, active functions, process migration, message passing stats, inter-node communication
![Page 78: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/78.jpg)
© 1999-2012 Erlang Solutions Ltd.
R12B-1
Memory Alloc Previously
22
Slide title minimum 32 pt
(32 pt makes 2 rows
Text and bullet level 1 minimum 24 pt
Bullets level 2-5minimum 20 pt
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl
ĀĀĂĂĄĄĆĆĊĊČČĎĎĐĐĒĒĖĖĘĘĚĚĞĞĠĠĢĢĪĪĮĮİĶĶĹĹĻĻĽĽŃŃŅŅŇŇŌŌŐŐŔŔŖŖŘŘŚŚŞŞŢŢŤŤŪŪŮŮŰŰŲŲŴŴŶŶŹŹŻŻȘș
ΆΈΉΊΌΎΏΐΑΒΓΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΪΫΆΈΉΊΰαβγδεζηθικλνξορςΣΤΥΦΧΨ¬ΪΫΌΎΏ
ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁЂЃЄЅІЇЈЉЊЋЌЎЏѢѢѲѲѴѴҐҐәǽẀẁẂẃẄẅỲỳ№
Do not add objects or text in the footer area
Taking a Virtual Machine Towards Many-Core | Public | © Ericsson AB 2012 | Rickard Green & Patrik Nyblom | 2012-05-29
Memory Allocators R12B-1
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
mseg_allocS
cheduler 1
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
Scheduler 2
Scheduler N
Thread 1
Thread N
Tuesday, May 29, 2012
22Wednesday, 3 October 2012 W
One central memory allocator for all schedulers on the same machine
![Page 79: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/79.jpg)
© 1999-2012 Erlang Solutions Ltd.
R15B
Memory Alloc Now
23
Slide title minimum 32 pt
(32 pt makes 2 rows
Text and bullet level 1 minimum 24 pt
Bullets level 2-5minimum 20 pt
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´¶·¸¹º»¼½ÀÁÂÃÄÅÆÇÈËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂăąĆćĊċČĎďĐđĒĖėĘęĚěĞğĠġĢģĪīĮįİıĶķĹĺĻļĽľŁłŃńŅņŇňŌŐőŒœŔŕŖŗŘřŚśŞşŠšŢţŤťŪūŮůŰűŲųŴŵŶŷŸŹźŻżŽžƒȘșˆˇ˘˙˚˛˜˝ẀẁẃẄẅỲỳ–—‘’‚“”„†‡•…‰‹›⁄€™−≤≥fifl
ĀĀĂĂĄĄĆĆĊĊČČĎĎĐĐĒĒĖĖĘĘĚĚĞĞĠĠĢĢĪĪĮĮİĶĶĹĹĻĻĽĽŃŃŅŅŇŇŌŌŐŐŔŔŖŖŘŘŚŚŞŞŢŢŤŤŪŪŮŮŰŰŲŲŴŴŶŶŹŹŻŻȘș
ΆΈΉΊΌΎΏΐΑΒΓΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΪΫΆΈΉΊΰαβγδεζηθικλνξορςΣΤΥΦΧΨ¬ΪΫΌΎΏ
ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁЂЃЄЅІЇЈЉЊЋЌЎЏѢѢѲѲѴѴҐҐәǽẀẁẂẃẄẅỲỳ№
Do not add objects or text in the footer area
Taking a Virtual Machine Towards Many-Core | Public | © Ericsson AB 2012 | Rickard Green & Patrik Nyblom | 2012-05-29
Memory Allocators R15B
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
mseg_allocS
cheduler 1
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
Scheduler 2
Scheduler N
Thread 1
Thread N
mseg_alloc mseg_alloc
sl_alloc
eheap_alloc
binary_alloc
ets_alloc
mseg_alloc
Tuesday, May 29, 2012 23Wednesday, 3 October 2012 W
One central memory allocator for all schedulers on the same machien
![Page 80: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/80.jpg)
© 1999-2012 Erlang Solutions Ltd.
Upgrading Blocks
24
Current Code
Next Code
All schedulers blockedLoad code
24Wednesday, 3 October 2012 W
![Page 81: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/81.jpg)
© 1999-2012 Erlang Solutions Ltd.
Upgrade Without Blocking
25
Current Code
Next Code
Last Code
Each scheduler does it when needed
Load code
25Wednesday, 3 October 2012 W
Coming in R16!
![Page 82: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/82.jpg)
© 1999-2012 Erlang Solutions Ltd.
Fully Connected
26
26Wednesday, 3 October 2012 W
Erlang connects all nodes fully. So you get a lot of connections.
![Page 83: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/83.jpg)
© 1999-2012 Erlang Solutions Ltd.
Scaling Over Machines
27
Node Node
Node
Node
Node
27Wednesday, 3 October 2012 W
A fully connected system might not be right for every problem.s_groups allows you to create clusters of nodes.Nodes inside a cluster are fully connected. Connections between clusters can be arbitrary.
![Page 84: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/84.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
28
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 85: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/85.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
•Provision machines
28
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 86: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/86.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
•Provision machines
•Deploy Erlang application
28
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 87: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/87.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
•Provision machines
•Deploy Erlang application
•Attach to node
28
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 88: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/88.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
•Provision machines
•Deploy Erlang application
•Attach to node
•Dig out metrics
28
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 89: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/89.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Erlang Systems
•Provision machines
•Deploy Erlang application
•Attach to node
•Dig out metrics
28
Memory usageCPU loadProcess hierarchy
28Wednesday, 3 October 2012 W
Basic Erlang has the ability to go in and monitor what is going on in any node you can attach yourself to.But no tool exists to manage a big number of nodes in a coherent fashion.This is no different from any other language/technology!
![Page 90: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/90.jpg)
© 1999-2012 Erlang Solutions Ltd.
Managing Big Systems
29
CCL/sɪˈsɪlɪ/
29Wednesday, 3 October 2012 W
Erlang Solutions are building a tool as part of the RELEASE project to manage and operate big Erlang systems.CCL = Cloud Computing Lace or Cloud Cuckoo Land depending on your mood.
![Page 91: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/91.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
30
30Wednesday, 3 October 2012 W
![Page 92: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/92.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
30
30Wednesday, 3 October 2012 W
![Page 93: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/93.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
30
30Wednesday, 3 October 2012 W
![Page 94: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/94.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
30
30Wednesday, 3 October 2012 W
![Page 95: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/95.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
- highly concurrent systems
30
30Wednesday, 3 October 2012 W
![Page 96: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/96.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
- highly concurrent systems
•No direct support for
30
30Wednesday, 3 October 2012 W
![Page 97: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/97.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
- highly concurrent systems
•No direct support for
- matrix multiplication
30
30Wednesday, 3 October 2012 W
![Page 98: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/98.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
- highly concurrent systems
•No direct support for
- matrix multiplication
- ray tracing
30
30Wednesday, 3 October 2012 W
![Page 99: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/99.jpg)
© 1999-2012 Erlang Solutions Ltd.
Erlang And Parallelism
•Created for
- explicit concurrency
- fault tollerance
- highly concurrent systems
•No direct support for
- matrix multiplication
- ray tracing
- coarse grained parallel problems
30
30Wednesday, 3 October 2012 W
![Page 100: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/100.jpg)
© 1999-2012 Erlang Solutions Ltd.
Intensional Parallelism
31
31Wednesday, 3 October 2012 W
We are taking the good things from what has been learnt in the Haskell & Data-flow language communities and building a DSL which helps us leverage these types of parallel optimisations"
![Page 101: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/101.jpg)
© 1999-2012 Erlang Solutions Ltd.
Intensional Parallelism
•Lucid like: demand-driven data computation
•Find short comings in the Erlang VM
•Variables are infinite streams of values
31
31Wednesday, 3 October 2012 W
We are taking the good things from what has been learnt in the Haskell & Data-flow language communities and building a DSL which helps us leverage these types of parallel optimisations"
![Page 102: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/102.jpg)
© 1999-2012 Erlang Solutions Ltd.
Intensional Parallelism
•Lucid like: demand-driven data computation
•Find short comings in the Erlang VM
•Variables are infinite streams of values
31
running_avg where sum = first(input) fby sum + next(input); n = 1 fby n + 1; running_avg = sum / n; end;
31Wednesday, 3 October 2012 W
We are taking the good things from what has been learnt in the Haskell & Data-flow language communities and building a DSL which helps us leverage these types of parallel optimisations"
![Page 103: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/103.jpg)
© 1999-2012 Erlang Solutions Ltd.
Intensional Parallelism
•Lucid like: demand-driven data computation
•Find short comings in the Erlang VM
•Variables are infinite streams of values
31
running_avg where sum = first(input) fby sum + next(input); n = 1 fby n + 1; running_avg = sum / n; end;
Black magic
31Wednesday, 3 October 2012 W
We are taking the good things from what has been learnt in the Haskell & Data-flow language communities and building a DSL which helps us leverage these types of parallel optimisations"
![Page 104: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/104.jpg)
© 1999-2012 Erlang Solutions Ltd.
Going Forward
32
32Wednesday, 3 October 2012 W
![Page 105: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/105.jpg)
© 1999-2012 Erlang Solutions Ltd.
Going Forward
•Consider Erlang when the problem fits
32
32Wednesday, 3 October 2012 W
![Page 106: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/106.jpg)
© 1999-2012 Erlang Solutions Ltd.
Going Forward
•Consider Erlang when the problem fits
•More focus on right tool for the job
32
32Wednesday, 3 October 2012 W
![Page 107: ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ...gotocon.com/dl/goto-aar-2012/slides/TorbenHoffmann...Erlang Wednesday, 3 October 2012 W 9 Erlang was intended to deal with the control plane](https://reader033.vdocuments.net/reader033/viewer/2022051805/5ffa1dc74d6cab673b1510b5/html5/thumbnails/107.jpg)
© 1999-2012 Erlang Solutions Ltd.
Going Forward
•Consider Erlang when the problem fits
•More focus on right tool for the job
32
32Wednesday, 3 October 2012 W