SlideShare a Scribd company logo
Phil Trinder &  Computer Science Department Heriot-Watt University, UK David King Software & Systems Engineering Research Motorola Labs, UK Comparing C++ and Erlang for Motorola Telecoms Software Henry Nyström Erlang Training & Consulting
High-Level Techniques for Distributed Telecoms Software EPSRC (UK Govt) Project, Dec 2002 – Feb 2006 Collaboration between  Motorola UK Labs Heriot-Watt University
High-Level Techniques for Distributed Telecoms Software EPSRC (UK Govt) Project, Dec 2002 – Feb 2006 Collaboration between  Motorola UK Labs Heriot-Watt University Aim:  produce scientific evidence that high-level distributed languages like Erlang or Glasgow distributed Haskell (GdH) can improve distributed software robustness and productivity Publication:  High-Level Distribution for the Rapid Production of Robust Telecoms Software: comparing C++ and Erlang, Concurrency and Computations: Practice & Experience (forthcoming).
Erlang Comparisons A number of sequential comparisons, e.g. Computer Language Shootout Very few distributed system comparisons published! Ulf Wiger [Wiger01] reports  Erlang systems have between 4 and 10 times less code than C/C++/Java/PLEX systems Similar error rates/line of code Similar productivity rates No direct comparative measurements Jantsch  et al  compare 6 languages for hardware description [JKS+01]
Research Questions: Potential Benefits RQ1: Can robust, configurable systems be readily developed? Resilience  to extreme loads Availability  in the face of hardware & software failures Dynamic reconfigurability  on available hardware RQ2: Can productivity and maintainability be improved? How do the sizes of the C++ and Erlang components compare & what language features contribute to size differential?
Research Questions: Feasibility High-level distributed languages: abrogate control of low-level coordination aspects, so RQ3 can the required functionality be specified? typically pay space and time penalties for their automatic coordination management. RQ4 can acceptable performance be achieved? RQ5 What are the costs of interoperating with conventional technology? RQ6 Is the technology practical?
Research Strategy Reengineer some telecoms application components in GdH and Erlang Dispatch Call Controller [NTK04,NTK05] Data Mobility component  Compare high-level and Java/C++ implementations for Performance Robustness Productivity Impact of programming language constructs
1 st  Component Engineered:  Data Mobility Component (DM) Product Component Communicates with Motorola mobile devices 3000 lines of C++  Uses 18,000 lines of Motorola C library functions  Has a transmitter and a receiver, and 2 message types Interacts with 5 other components of the system
2 nd  Component Engineered:  Despatch Call Controller (DCC) Handles mobile phone calls A process manages each call Scalable with multiple servers
Two Erlang DM Implementations 1. Pure Erlang DM 2. Erlang/C DM reuses some C DM libraries & drivers Both interoperate with a C test harness Combine Unix Processes Erlang processes C Threads (Erlang/C DM)
RQ3 Performance 1: Throughput Maximum DM Throughput at 100% QoS Platform: 167MHz, 128Mb Sun Ultra 1, SunOS 5.8 940 230 480 Pure Erlang DM Erlang/C DM C++ DM
RQ3 Performance 1: Throughput Maximum DM Throughput at 100% QoS Pure Erlang DM is  twice as fast  as C++ DM (better process management and marshalling) Erlang/C DM is  ½ speed  of C++ DM, but still meets nominal throughput Platform: 167MHz, 128Mb Sun Ultra 1, SunOS 5.8 940 230 480 Pure Erlang DM Erlang/C DM C++ DM
Performance 2: Round Trip Times Pure Erlang is approximately  3 times faster Erlang/C is  26% - 50% slower ms
Performance Analysis Pure Erlang DM is faster due to fast lightweight process management Erlang/C is slower due to additional communication to C components
Performance 3: Memory Residence Erlang DMs use 170% more memory Erlang runtime sys (ERTS) has a fixed size => would be a smaller % of a larger app.
RQ1 Robustness 1: Resilience Load (queries/s) Throughput (queries/s)
RQ1 Robustness 1: Resilience When overloaded:  C++ DM fails catastrophically  Pure Erlang & Erlang/C DMs: Throughput degrades  Never completely fails, handling 48 q/s at peak load (25000q/s) Recovers automatically after load drops Load (queries/s) Throughput (queries/s)
DCC Resilience
Robustness 2: Availability Erlang systems  remain available despite repeated hardware & software failures performance doesn’t  degrade with repeated failures DCC Throughput with Repeated Failures
Robustness 2: Availability Erlang Systems resists the simultaneous failure of multiple components When more components fail throughput drops lower & recovery takes longer 5-processor DCC with Multiple Failures
Robustness 3: Dynamic Configurability Erlang Systems dynamically adapt to the available hardware resources. 5 processor system: remove a processor 4 times add a processor 4 times DCC Throughput with Varying Numbers of Processors
RQ2: Productivity & Maintainability Shorter programs are Faster to develop Contain fewer errors [Wiger01] Easier to maintain The metric we use is Source Lines Of Code (SLOC)
Productivity: Source Code Sizes DM Implementations DCC Implementations Erlang DCC and DM are less than 1/3 rd  of size of C++ impl. Consistent with Wiger & folklore 398 398 Erlang 863 616 247 Erl./C 3101 3101 C++ Total Erlang C/C++ Lang. 4882 4882 Erl. 14.9K 83 14.8K C++ Total Erl. IDL C++ Lang.
Erlang/C DM is 1/3rd of the size of the C++ DM Pure Erlang DM is 1/7th of the size of the C++ DM Erlang/C DM is 1/18th of the size of the C++ DM + libraries Productivity: DM Source Code Sizes
Reasons for difference in Code Size Erlang programmers can rely on fault tolerance and code for the successful case  (27% of C++ DM code is defensive) and have automatic memory management  (11% of C++ DM code) high-level communication  (23% of C++ DM code) Telecom design pattern libraries
DM Code Breakdown
Code Difference Example void DataMobilityRxProcessor::processUnsupVer(void) { MSG_PTR  msg_buf_ptr;  MM_DEVICE_INFO_MSG  *msg_ptr; RETURN_STATUS  ret_status; UINT16  msg_size; // Determine size of ici message msg_size = sizeof( MM_DEVICE_INFO_MSG); // Create ICI message object to send to DMTX so it sends a Device Info  //  message to VLR and HLR clients IciMsg ici_msg_object( MM_DEVICE_INFO_OPC, ICI_DMTX_TASK_ID, msg_size); // Retrieve ICI message buffer pointer msg_buf_ptr = ici_msg_object.getIciMsgBufPtr(); // Typecast pointer from (void *) to (MM_DEVICE_INFO_MSG *) msg_ptr = (MM_DEVICE_INFO_MSG *)msg_buf_ptr;  // Populate message buffer SET_MM_DEVICE_INFO_DEVICE_TYPE( msg_ptr, SERVER); SET_MM_DEVICE_INFO_NUM_VER_SUPPORTED( msg_ptr, NUM_VER_SUPPORTED); SET_MM_DEVICE_INFO_FIRST_SUP_PROTO_VERS( msg_ptr, PROTO_VERSION_ONE); // Send message to the DMTX task ret_status = m_ici_io_ptr->send(&ici_msg_object); // Check that message was sent successfully if (ret_status != SUCCESS) { // Report problem when sending ICI message sz_err_msg( MAJOR, SZ_ERR_MSG_ERR_OPCODE, __FILE__, __LINE__,  "DataMobilityRxProcessor processUnsupVer: failure sending " " device info message to DMTX"); }  } Erlang sz_dme_dmtx:cast(device_info) C++
Erlang DCC Reusability Considerable potential for reuse 36% 11 1741 Testing/Stat.s 3% 1 147 Specific Services 61% 26 2994 Reusable Platform Percentage No. Modules SLOC Part
Summary Investigated high-level distributed language technology for telecoms software Reengineered two telecoms components in Erlang  Measured & compared the Erlang & C++ components
RQ1: Robust & Configurable Systems Improved resilience:  Erlang DM and DCC sustain throughput at extreme loads Automatically recover when load drops C++ DM fails catastrophically (predict C++/CORBA DCC would) Improved availability:  Erlang DCC recovers from repeated & multiple failures Predict C++/CORBA DCC would fail catastrophically Dynamic Reconfiguration Erlang DCC can be dynamically reconfigured to available hardware C++/CORBA DCC can also be dynamically reconfigured using CORBA Potential for hot-code loading (not demonstrated)
RQ2: Productivity & Maintainability Erlang DM and DCC: Less than 1/3 rd  size of C++  implementation Erlang DM 1/18 th  size of C++ DM with libraries Good reusability Reasons: Code for successful case – saves 27% Automatic memory management – saves 11% High-level communications – saves 23% Telecom design pattern libraries
RQ3: Distributed Functionality Even though Erlang abstracts over low-level coordination, the required DM and DCC functionality is readily specified.
RQ4: Performance Time: Max. throughput at 100% QoS: Pure Erlang DM is  twice as fast  as C++ DM Erlang/C is  ½ as fast  as C++ DM , but still exceeds throughput requirements Roundtrip times Pure Erlang DM is  three times as fast  as C++ DM Erlang/C is between  26% and 50% slower  as C++ DM Space: Pure Erlang and Erlang/C both have  170% greater memory residency  due to (fixed size) 5Mb runtime system
RQ5: Interoperation Costs Erlang DMs interoperate with a C test harness, and Erlang/C DM incorporates C drivers & library functions. Costs Low space cost: an additional 15% residency High time cost:  Erlang/C roundtrip times up to 6 times pure Erlang Erlang/C max. throughput ¼ of pure Erlang Potential for incremental re-engineering of large systems
RQ6: Pragmatics Erlang is available on several HW/OS platforms, including the Sun/Solaris DM product platform Well supported with training, consultancy, libraries etc.
Conclusions Erlang offers robustness & productivity benefits for distributed telecoms software (RQs 1 & 2) High-level distributed languages like Erlang can deliver the required telecoms functionality and performance (RQs 3 & 4) Erlang can interoperate with existing technologies and meets pragmatic requirements (RQs 5 and 6)
Further Information Web sites/Seminars Erlang Site:  www.erlang.org/ Project Site:  www.macs.hw.ac.uk/~dsg/telecoms/ References [JKS+01] Jantsch A. Kumar S. Sander I. Svantesson B. Oberg J. Hemanic A. Ellervee P. O’Nils M. Comparison of Six Languages for System Level Descriptions of Telecoms Systems, Electronic Chips and System Design, pp 181-192, Kluwer, 2001.  [NTK04] Nystrom J.H. Trinder P.W. King D.J. Evaluating Erlang for Robust Telecoms Software S3S’04, Chicago, July 2004. [NTK05] Nystrom J.H. Trinder P.W. King D.J. Are High-Level languages suitable for Robust Telecoms Software? SafeComp’05, Fredrikstad, Norway, Sept. 2005. [Wiger01]  Ulf Wiger,  Workshop on Formal Design of Safety Critical Embedded Systems, Munich, March 2001  http:// www.erlang.se/publications/Ulf_Wiger.pdf
Ad

More Related Content

What's hot (20)

Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 ActsUnlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
HostedbyConfluent
 
20221105_GCPUG 女子会 Kubernets 編.pdf
20221105_GCPUG 女子会 Kubernets 編.pdf20221105_GCPUG 女子会 Kubernets 編.pdf
20221105_GCPUG 女子会 Kubernets 編.pdf
Google Cloud Platform - Japan
 
Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®
confluent
 
モダナイゼーションがもたらす未来
モダナイゼーションがもたらす未来モダナイゼーションがもたらす未来
モダナイゼーションがもたらす未来
Hiromasa Oka
 
Mule Runtime のアーキテクチャコンセプト紹介
Mule Runtime のアーキテクチャコンセプト紹介Mule Runtime のアーキテクチャコンセプト紹介
Mule Runtime のアーキテクチャコンセプト紹介
MuleSoft Meetup Tokyo
 
JSforceではじめるSalesforce APIの世界
JSforceではじめるSalesforce APIの世界JSforceではじめるSalesforce APIの世界
JSforceではじめるSalesforce APIの世界
Taiki Yoshikawa
 
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
Junichi Kodama
 
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
ssuser2f1c3f
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X Way
Stephan Borosh
 
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
崇介 藤井
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
Claus Ibsen
 
全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み
株式会社MonotaRO Tech Team
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
Yoshimasa Katakura
 
LMAX Disruptor - High Performance Inter-Thread Messaging Library
LMAX Disruptor - High Performance Inter-Thread Messaging LibraryLMAX Disruptor - High Performance Inter-Thread Messaging Library
LMAX Disruptor - High Performance Inter-Thread Messaging Library
Sebastian Andrasoni
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
 
Time intelligence - その概念と機能について
Time intelligence - その概念と機能についてTime intelligence - その概念と機能について
Time intelligence - その概念と機能について
Yugo Shimizu
 
Apache Flink Adoption @ Shopify
Apache Flink Adoption @ ShopifyApache Flink Adoption @ Shopify
Apache Flink Adoption @ Shopify
KevinLam737856
 
Rd gatewayによるwindowsインスタンスへの接続
Rd gatewayによるwindowsインスタンスへの接続Rd gatewayによるwindowsインスタンスへの接続
Rd gatewayによるwindowsインスタンスへの接続
Amazon Web Services Japan
 
PlayFab multiplayer_party
PlayFab multiplayer_partyPlayFab multiplayer_party
PlayFab multiplayer_party
Crystin Cox
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
DevTakas
 
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 ActsUnlocking the Power of Apache Flink: An Introduction in 4 Acts
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
HostedbyConfluent
 
Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®Introduction to KSQL: Streaming SQL for Apache Kafka®
Introduction to KSQL: Streaming SQL for Apache Kafka®
confluent
 
モダナイゼーションがもたらす未来
モダナイゼーションがもたらす未来モダナイゼーションがもたらす未来
モダナイゼーションがもたらす未来
Hiromasa Oka
 
Mule Runtime のアーキテクチャコンセプト紹介
Mule Runtime のアーキテクチャコンセプト紹介Mule Runtime のアーキテクチャコンセプト紹介
Mule Runtime のアーキテクチャコンセプト紹介
MuleSoft Meetup Tokyo
 
JSforceではじめるSalesforce APIの世界
JSforceではじめるSalesforce APIの世界JSforceではじめるSalesforce APIの世界
JSforceではじめるSalesforce APIの世界
Taiki Yoshikawa
 
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
誰もがアプリ開発に携われる時代へ ビジネスを加速させるローコードプラットフォーム Power Platform のご紹介
Junichi Kodama
 
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
株式会社メディカルフォース 求職者むけ会社説明資料 What's medicalforce
ssuser2f1c3f
 
External to DA, the OS X Way
External to DA, the OS X WayExternal to DA, the OS X Way
External to DA, the OS X Way
Stephan Borosh
 
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
旅館運営企業で実現した現場出身者の力を活かしたアジャイル開発
崇介 藤井
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
Claus Ibsen
 
全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み
株式会社MonotaRO Tech Team
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
Yoshimasa Katakura
 
LMAX Disruptor - High Performance Inter-Thread Messaging Library
LMAX Disruptor - High Performance Inter-Thread Messaging LibraryLMAX Disruptor - High Performance Inter-Thread Messaging Library
LMAX Disruptor - High Performance Inter-Thread Messaging Library
Sebastian Andrasoni
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
 
Time intelligence - その概念と機能について
Time intelligence - その概念と機能についてTime intelligence - その概念と機能について
Time intelligence - その概念と機能について
Yugo Shimizu
 
Apache Flink Adoption @ Shopify
Apache Flink Adoption @ ShopifyApache Flink Adoption @ Shopify
Apache Flink Adoption @ Shopify
KevinLam737856
 
Rd gatewayによるwindowsインスタンスへの接続
Rd gatewayによるwindowsインスタンスへの接続Rd gatewayによるwindowsインスタンスへの接続
Rd gatewayによるwindowsインスタンスへの接続
Amazon Web Services Japan
 
PlayFab multiplayer_party
PlayFab multiplayer_partyPlayFab multiplayer_party
PlayFab multiplayer_party
Crystin Cox
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
DevTakas
 

Viewers also liked (19)

Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
l xf
 
High Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and SolutionsHigh Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and Solutions
Yinghai Lu
 
erlang 101
erlang 101erlang 101
erlang 101
Gokhan Boranalp
 
Optimizing Erlang Code for Speed
Optimizing Erlang Code for SpeedOptimizing Erlang Code for Speed
Optimizing Erlang Code for Speed
Viktor Sovietov
 
1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais
PMP
 
Erlang vs. Java
Erlang vs. JavaErlang vs. Java
Erlang vs. Java
Artan Cami
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Leinylson Fontinele
 
Apostila de sistemas operacionais
Apostila de sistemas operacionaisApostila de sistemas operacionais
Apostila de sistemas operacionais
Cleiton Pereira De Souza
 
GSM
GSMGSM
GSM
JAI MCA-STUDENT
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
l xf
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Sehrish Asif
 
Lecture 6
Lecture  6Lecture  6
Lecture 6
Mr SMAK
 
message passing vs shared memory
message passing vs shared memorymessage passing vs shared memory
message passing vs shared memory
Hamza Zahid
 
Erlang containers
Erlang containersErlang containers
Erlang containers
Sargun Dhillon
 
PPT on BRAIN TUMOR detection in MRI images based on IMAGE SEGMENTATION
PPT on BRAIN TUMOR detection in MRI images based on  IMAGE SEGMENTATION PPT on BRAIN TUMOR detection in MRI images based on  IMAGE SEGMENTATION
PPT on BRAIN TUMOR detection in MRI images based on IMAGE SEGMENTATION
khanam22
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
Messias Batista
 
Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014
lpgauth
 
Scalable Networking
Scalable NetworkingScalable Networking
Scalable Networking
l xf
 
High Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and SolutionsHigh Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and Solutions
Yinghai Lu
 
Optimizing Erlang Code for Speed
Optimizing Erlang Code for SpeedOptimizing Erlang Code for Speed
Optimizing Erlang Code for Speed
Viktor Sovietov
 
1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais1300579454645 livro adm proc operacionais
1300579454645 livro adm proc operacionais
PMP
 
Erlang vs. Java
Erlang vs. JavaErlang vs. Java
Erlang vs. Java
Artan Cami
 
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Introdução à Computação Aula 05 - Sistemas Operacionais (arquitetura do SO, p...
Leinylson Fontinele
 
Erlang Message Passing Concurrency, For The Win
Erlang  Message  Passing  Concurrency,  For  The  WinErlang  Message  Passing  Concurrency,  For  The  Win
Erlang Message Passing Concurrency, For The Win
l xf
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Sehrish Asif
 
Lecture 6
Lecture  6Lecture  6
Lecture 6
Mr SMAK
 
message passing vs shared memory
message passing vs shared memorymessage passing vs shared memory
message passing vs shared memory
Hamza Zahid
 
PPT on BRAIN TUMOR detection in MRI images based on IMAGE SEGMENTATION
PPT on BRAIN TUMOR detection in MRI images based on  IMAGE SEGMENTATION PPT on BRAIN TUMOR detection in MRI images based on  IMAGE SEGMENTATION
PPT on BRAIN TUMOR detection in MRI images based on IMAGE SEGMENTATION
khanam22
 
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
Sioux Hot-or-Not: Functional programming: unlocking the real power of multi-c...
siouxhotornot
 
An Erlang Game Stack
An Erlang Game StackAn Erlang Game Stack
An Erlang Game Stack
Eonblast
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
Messias Batista
 
Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014
lpgauth
 
Ad

Similar to Comparing Cpp And Erlang For Motorola Telecoms Software (20)

Automotive Controller Area network (CAN)
Automotive Controller Area network (CAN)Automotive Controller Area network (CAN)
Automotive Controller Area network (CAN)
SaravanaKumarMariapp3
 
13 tm adv
13 tm adv13 tm adv
13 tm adv
ashish61_scs
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File Multicast
Yoss Cohen
 
Implementing Remote Procedure Calls
Implementing Remote Procedure CallsImplementing Remote Procedure Calls
Implementing Remote Procedure Calls
Thanh Nguyen
 
nikhil_muraleedharan
nikhil_muraleedharannikhil_muraleedharan
nikhil_muraleedharan
Nikhil Menon
 
TCP/IP-Protocol Suite-Simple Explanation
TCP/IP-Protocol Suite-Simple ExplanationTCP/IP-Protocol Suite-Simple Explanation
TCP/IP-Protocol Suite-Simple Explanation
KANNANKR12
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
Mullaiselvan Mohan
 
Design & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDLDesign & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDL
ijsrd.com
 
Directive-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous ComputingDirective-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous Computing
Ruymán Reyes
 
Communication Performance Over A Gigabit Ethernet Network
Communication Performance Over A Gigabit Ethernet NetworkCommunication Performance Over A Gigabit Ethernet Network
Communication Performance Over A Gigabit Ethernet Network
IJERA Editor
 
AjeetGupta
AjeetGuptaAjeetGupta
AjeetGupta
Ajeet Gupta
 
Erlang OTP
Erlang OTPErlang OTP
Erlang OTP
Zvi Avraham
 
4g lte matlab
4g lte matlab4g lte matlab
4g lte matlab
Hakim Zentani
 
Tcp ip-ppt
Tcp ip-pptTcp ip-ppt
Tcp ip-ppt
suganyababu14
 
Abhilash resume
Abhilash resumeAbhilash resume
Abhilash resume
Abhilash Ramadugu
 
UDT
UDTUDT
UDT
xlight
 
tcp-ip-ppt-140212011249-pptpresentaion02.pdf
tcp-ip-ppt-140212011249-pptpresentaion02.pdftcp-ip-ppt-140212011249-pptpresentaion02.pdf
tcp-ip-ppt-140212011249-pptpresentaion02.pdf
RiturajSingh130410
 
TCP/IP Network ppt
TCP/IP Network pptTCP/IP Network ppt
TCP/IP Network ppt
extraganesh
 
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETsVEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
CSCJournals
 
TCP&IP Model.pptx
TCP&IP Model.pptxTCP&IP Model.pptx
TCP&IP Model.pptx
karmaYonten5
 
Automotive Controller Area network (CAN)
Automotive Controller Area network (CAN)Automotive Controller Area network (CAN)
Automotive Controller Area network (CAN)
SaravanaKumarMariapp3
 
FEC & File Multicast
FEC & File MulticastFEC & File Multicast
FEC & File Multicast
Yoss Cohen
 
Implementing Remote Procedure Calls
Implementing Remote Procedure CallsImplementing Remote Procedure Calls
Implementing Remote Procedure Calls
Thanh Nguyen
 
nikhil_muraleedharan
nikhil_muraleedharannikhil_muraleedharan
nikhil_muraleedharan
Nikhil Menon
 
TCP/IP-Protocol Suite-Simple Explanation
TCP/IP-Protocol Suite-Simple ExplanationTCP/IP-Protocol Suite-Simple Explanation
TCP/IP-Protocol Suite-Simple Explanation
KANNANKR12
 
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
10 years in Network Protocol testing L2 L3 L4-L7 Tcl Python Manual and Automa...
Mullaiselvan Mohan
 
Design & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDLDesign & Check Cyclic Redundancy Code using VERILOG HDL
Design & Check Cyclic Redundancy Code using VERILOG HDL
ijsrd.com
 
Directive-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous ComputingDirective-based approach to Heterogeneous Computing
Directive-based approach to Heterogeneous Computing
Ruymán Reyes
 
Communication Performance Over A Gigabit Ethernet Network
Communication Performance Over A Gigabit Ethernet NetworkCommunication Performance Over A Gigabit Ethernet Network
Communication Performance Over A Gigabit Ethernet Network
IJERA Editor
 
tcp-ip-ppt-140212011249-pptpresentaion02.pdf
tcp-ip-ppt-140212011249-pptpresentaion02.pdftcp-ip-ppt-140212011249-pptpresentaion02.pdf
tcp-ip-ppt-140212011249-pptpresentaion02.pdf
RiturajSingh130410
 
TCP/IP Network ppt
TCP/IP Network pptTCP/IP Network ppt
TCP/IP Network ppt
extraganesh
 
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETsVEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
VEGAS: Better Performance than other TCP Congestion Control Algorithms on MANETs
CSCJournals
 
Ad

More from l xf (9)

Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programming
l xf
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Pattern
l xf
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
l xf
 
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
l xf
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
l xf
 
Improving Robustness In Distributed Systems
Improving Robustness In Distributed SystemsImproving Robustness In Distributed Systems
Improving Robustness In Distributed Systems
l xf
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlang
l xf
 
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential UsersLearning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
l xf
 
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
l xf
 
Asynchronous Io Programming
Asynchronous Io ProgrammingAsynchronous Io Programming
Asynchronous Io Programming
l xf
 
The Proactor Pattern
The Proactor PatternThe Proactor Pattern
The Proactor Pattern
l xf
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
l xf
 
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...The Migration From Erlang To Otp   A Case Study Of A Heavy Duty Tcpip Clients...
The Migration From Erlang To Otp A Case Study Of A Heavy Duty Tcpip Clients...
l xf
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
l xf
 
Improving Robustness In Distributed Systems
Improving Robustness In Distributed SystemsImproving Robustness In Distributed Systems
Improving Robustness In Distributed Systems
l xf
 
Concurrency And Erlang
Concurrency And ErlangConcurrency And Erlang
Concurrency And Erlang
l xf
 
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential UsersLearning Erlang And Developing A Sip Server Stack With 30k Potential Users
Learning Erlang And Developing A Sip Server Stack With 30k Potential Users
l xf
 
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
l xf
 

Recently uploaded (20)

AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Gary Arora
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
How Top Companies Benefit from Outsourcing
How Top Companies Benefit from OutsourcingHow Top Companies Benefit from Outsourcing
How Top Companies Benefit from Outsourcing
Nascenture
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Sustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraaSustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraa
03ANMOLCHAURASIYA
 
Master Data Management - Enterprise Application Integration
Master Data Management - Enterprise Application IntegrationMaster Data Management - Enterprise Application Integration
Master Data Management - Enterprise Application Integration
Sherif Rasmy
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Harmonizing Multi-Agent Intelligence | Open Data Science Conference | Gary Ar...
Gary Arora
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
How Top Companies Benefit from Outsourcing
How Top Companies Benefit from OutsourcingHow Top Companies Benefit from Outsourcing
How Top Companies Benefit from Outsourcing
Nascenture
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
Cybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft CertificateCybersecurity Tools and Technologies - Microsoft Certificate
Cybersecurity Tools and Technologies - Microsoft Certificate
VICTOR MAESTRE RAMIREZ
 
Sustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraaSustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraa
03ANMOLCHAURASIYA
 
Master Data Management - Enterprise Application Integration
Master Data Management - Enterprise Application IntegrationMaster Data Management - Enterprise Application Integration
Master Data Management - Enterprise Application Integration
Sherif Rasmy
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 

Comparing Cpp And Erlang For Motorola Telecoms Software

  • 1. Phil Trinder & Computer Science Department Heriot-Watt University, UK David King Software & Systems Engineering Research Motorola Labs, UK Comparing C++ and Erlang for Motorola Telecoms Software Henry Nyström Erlang Training & Consulting
  • 2. High-Level Techniques for Distributed Telecoms Software EPSRC (UK Govt) Project, Dec 2002 – Feb 2006 Collaboration between Motorola UK Labs Heriot-Watt University
  • 3. High-Level Techniques for Distributed Telecoms Software EPSRC (UK Govt) Project, Dec 2002 – Feb 2006 Collaboration between Motorola UK Labs Heriot-Watt University Aim: produce scientific evidence that high-level distributed languages like Erlang or Glasgow distributed Haskell (GdH) can improve distributed software robustness and productivity Publication: High-Level Distribution for the Rapid Production of Robust Telecoms Software: comparing C++ and Erlang, Concurrency and Computations: Practice & Experience (forthcoming).
  • 4. Erlang Comparisons A number of sequential comparisons, e.g. Computer Language Shootout Very few distributed system comparisons published! Ulf Wiger [Wiger01] reports Erlang systems have between 4 and 10 times less code than C/C++/Java/PLEX systems Similar error rates/line of code Similar productivity rates No direct comparative measurements Jantsch et al compare 6 languages for hardware description [JKS+01]
  • 5. Research Questions: Potential Benefits RQ1: Can robust, configurable systems be readily developed? Resilience to extreme loads Availability in the face of hardware & software failures Dynamic reconfigurability on available hardware RQ2: Can productivity and maintainability be improved? How do the sizes of the C++ and Erlang components compare & what language features contribute to size differential?
  • 6. Research Questions: Feasibility High-level distributed languages: abrogate control of low-level coordination aspects, so RQ3 can the required functionality be specified? typically pay space and time penalties for their automatic coordination management. RQ4 can acceptable performance be achieved? RQ5 What are the costs of interoperating with conventional technology? RQ6 Is the technology practical?
  • 7. Research Strategy Reengineer some telecoms application components in GdH and Erlang Dispatch Call Controller [NTK04,NTK05] Data Mobility component Compare high-level and Java/C++ implementations for Performance Robustness Productivity Impact of programming language constructs
  • 8. 1 st Component Engineered: Data Mobility Component (DM) Product Component Communicates with Motorola mobile devices 3000 lines of C++ Uses 18,000 lines of Motorola C library functions Has a transmitter and a receiver, and 2 message types Interacts with 5 other components of the system
  • 9. 2 nd Component Engineered: Despatch Call Controller (DCC) Handles mobile phone calls A process manages each call Scalable with multiple servers
  • 10. Two Erlang DM Implementations 1. Pure Erlang DM 2. Erlang/C DM reuses some C DM libraries & drivers Both interoperate with a C test harness Combine Unix Processes Erlang processes C Threads (Erlang/C DM)
  • 11. RQ3 Performance 1: Throughput Maximum DM Throughput at 100% QoS Platform: 167MHz, 128Mb Sun Ultra 1, SunOS 5.8 940 230 480 Pure Erlang DM Erlang/C DM C++ DM
  • 12. RQ3 Performance 1: Throughput Maximum DM Throughput at 100% QoS Pure Erlang DM is twice as fast as C++ DM (better process management and marshalling) Erlang/C DM is ½ speed of C++ DM, but still meets nominal throughput Platform: 167MHz, 128Mb Sun Ultra 1, SunOS 5.8 940 230 480 Pure Erlang DM Erlang/C DM C++ DM
  • 13. Performance 2: Round Trip Times Pure Erlang is approximately 3 times faster Erlang/C is 26% - 50% slower ms
  • 14. Performance Analysis Pure Erlang DM is faster due to fast lightweight process management Erlang/C is slower due to additional communication to C components
  • 15. Performance 3: Memory Residence Erlang DMs use 170% more memory Erlang runtime sys (ERTS) has a fixed size => would be a smaller % of a larger app.
  • 16. RQ1 Robustness 1: Resilience Load (queries/s) Throughput (queries/s)
  • 17. RQ1 Robustness 1: Resilience When overloaded: C++ DM fails catastrophically Pure Erlang & Erlang/C DMs: Throughput degrades Never completely fails, handling 48 q/s at peak load (25000q/s) Recovers automatically after load drops Load (queries/s) Throughput (queries/s)
  • 19. Robustness 2: Availability Erlang systems remain available despite repeated hardware & software failures performance doesn’t degrade with repeated failures DCC Throughput with Repeated Failures
  • 20. Robustness 2: Availability Erlang Systems resists the simultaneous failure of multiple components When more components fail throughput drops lower & recovery takes longer 5-processor DCC with Multiple Failures
  • 21. Robustness 3: Dynamic Configurability Erlang Systems dynamically adapt to the available hardware resources. 5 processor system: remove a processor 4 times add a processor 4 times DCC Throughput with Varying Numbers of Processors
  • 22. RQ2: Productivity & Maintainability Shorter programs are Faster to develop Contain fewer errors [Wiger01] Easier to maintain The metric we use is Source Lines Of Code (SLOC)
  • 23. Productivity: Source Code Sizes DM Implementations DCC Implementations Erlang DCC and DM are less than 1/3 rd of size of C++ impl. Consistent with Wiger & folklore 398 398 Erlang 863 616 247 Erl./C 3101 3101 C++ Total Erlang C/C++ Lang. 4882 4882 Erl. 14.9K 83 14.8K C++ Total Erl. IDL C++ Lang.
  • 24. Erlang/C DM is 1/3rd of the size of the C++ DM Pure Erlang DM is 1/7th of the size of the C++ DM Erlang/C DM is 1/18th of the size of the C++ DM + libraries Productivity: DM Source Code Sizes
  • 25. Reasons for difference in Code Size Erlang programmers can rely on fault tolerance and code for the successful case (27% of C++ DM code is defensive) and have automatic memory management (11% of C++ DM code) high-level communication (23% of C++ DM code) Telecom design pattern libraries
  • 27. Code Difference Example void DataMobilityRxProcessor::processUnsupVer(void) { MSG_PTR msg_buf_ptr; MM_DEVICE_INFO_MSG *msg_ptr; RETURN_STATUS ret_status; UINT16 msg_size; // Determine size of ici message msg_size = sizeof( MM_DEVICE_INFO_MSG); // Create ICI message object to send to DMTX so it sends a Device Info // message to VLR and HLR clients IciMsg ici_msg_object( MM_DEVICE_INFO_OPC, ICI_DMTX_TASK_ID, msg_size); // Retrieve ICI message buffer pointer msg_buf_ptr = ici_msg_object.getIciMsgBufPtr(); // Typecast pointer from (void *) to (MM_DEVICE_INFO_MSG *) msg_ptr = (MM_DEVICE_INFO_MSG *)msg_buf_ptr; // Populate message buffer SET_MM_DEVICE_INFO_DEVICE_TYPE( msg_ptr, SERVER); SET_MM_DEVICE_INFO_NUM_VER_SUPPORTED( msg_ptr, NUM_VER_SUPPORTED); SET_MM_DEVICE_INFO_FIRST_SUP_PROTO_VERS( msg_ptr, PROTO_VERSION_ONE); // Send message to the DMTX task ret_status = m_ici_io_ptr->send(&ici_msg_object); // Check that message was sent successfully if (ret_status != SUCCESS) { // Report problem when sending ICI message sz_err_msg( MAJOR, SZ_ERR_MSG_ERR_OPCODE, __FILE__, __LINE__, "DataMobilityRxProcessor processUnsupVer: failure sending " " device info message to DMTX"); } } Erlang sz_dme_dmtx:cast(device_info) C++
  • 28. Erlang DCC Reusability Considerable potential for reuse 36% 11 1741 Testing/Stat.s 3% 1 147 Specific Services 61% 26 2994 Reusable Platform Percentage No. Modules SLOC Part
  • 29. Summary Investigated high-level distributed language technology for telecoms software Reengineered two telecoms components in Erlang Measured & compared the Erlang & C++ components
  • 30. RQ1: Robust & Configurable Systems Improved resilience: Erlang DM and DCC sustain throughput at extreme loads Automatically recover when load drops C++ DM fails catastrophically (predict C++/CORBA DCC would) Improved availability: Erlang DCC recovers from repeated & multiple failures Predict C++/CORBA DCC would fail catastrophically Dynamic Reconfiguration Erlang DCC can be dynamically reconfigured to available hardware C++/CORBA DCC can also be dynamically reconfigured using CORBA Potential for hot-code loading (not demonstrated)
  • 31. RQ2: Productivity & Maintainability Erlang DM and DCC: Less than 1/3 rd size of C++ implementation Erlang DM 1/18 th size of C++ DM with libraries Good reusability Reasons: Code for successful case – saves 27% Automatic memory management – saves 11% High-level communications – saves 23% Telecom design pattern libraries
  • 32. RQ3: Distributed Functionality Even though Erlang abstracts over low-level coordination, the required DM and DCC functionality is readily specified.
  • 33. RQ4: Performance Time: Max. throughput at 100% QoS: Pure Erlang DM is twice as fast as C++ DM Erlang/C is ½ as fast as C++ DM , but still exceeds throughput requirements Roundtrip times Pure Erlang DM is three times as fast as C++ DM Erlang/C is between 26% and 50% slower as C++ DM Space: Pure Erlang and Erlang/C both have 170% greater memory residency due to (fixed size) 5Mb runtime system
  • 34. RQ5: Interoperation Costs Erlang DMs interoperate with a C test harness, and Erlang/C DM incorporates C drivers & library functions. Costs Low space cost: an additional 15% residency High time cost: Erlang/C roundtrip times up to 6 times pure Erlang Erlang/C max. throughput ¼ of pure Erlang Potential for incremental re-engineering of large systems
  • 35. RQ6: Pragmatics Erlang is available on several HW/OS platforms, including the Sun/Solaris DM product platform Well supported with training, consultancy, libraries etc.
  • 36. Conclusions Erlang offers robustness & productivity benefits for distributed telecoms software (RQs 1 & 2) High-level distributed languages like Erlang can deliver the required telecoms functionality and performance (RQs 3 & 4) Erlang can interoperate with existing technologies and meets pragmatic requirements (RQs 5 and 6)
  • 37. Further Information Web sites/Seminars Erlang Site: www.erlang.org/ Project Site: www.macs.hw.ac.uk/~dsg/telecoms/ References [JKS+01] Jantsch A. Kumar S. Sander I. Svantesson B. Oberg J. Hemanic A. Ellervee P. O’Nils M. Comparison of Six Languages for System Level Descriptions of Telecoms Systems, Electronic Chips and System Design, pp 181-192, Kluwer, 2001. [NTK04] Nystrom J.H. Trinder P.W. King D.J. Evaluating Erlang for Robust Telecoms Software S3S’04, Chicago, July 2004. [NTK05] Nystrom J.H. Trinder P.W. King D.J. Are High-Level languages suitable for Robust Telecoms Software? SafeComp’05, Fredrikstad, Norway, Sept. 2005. [Wiger01] Ulf Wiger, Workshop on Formal Design of Safety Critical Embedded Systems, Munich, March 2001 http:// www.erlang.se/publications/Ulf_Wiger.pdf
  翻译: