120 likes | 205 Views
OTP Development update. Highlights during 2005. Released R10B-2 .. R10B-8, will be a R10B-9 before end of year. News in R10B-8. Improvements of global new application SSH (both server and client) beta status, nice way to implement CLI for an application.
E N D
Highlights during 2005 • Released R10B-2 .. R10B-8, will be a R10B-9 before end of year.
News in R10B-8 • Improvements of global • new application SSH (both server and client) beta status, nice way to implement CLI for an application. • Debugger now with support for try catch • New version of Edoc (thanks to Richard Carlsson)
Multiprocessor support The Erlang runtime system of today (R10B) • 1 OS process, 1 thread runs all Erlang processes. • Can not make use of more than 1 processor for the execution of Erlang processes.
Multiprocessor support Erlang runtime system R10B (1 scheduler) runqueue Pick next runnable Scheduler select/poll File io threads
Multiprocessor support The Erlang runtime system of tomorrow: • 1 OS process, configurable 1..n schedulers in separate threads runs all Erlang processes. • Can make use of multiple processors for the execution of Erlang processes. • Transparent for the Erlang programs. I.e. benefit from multi cpu system without need to change your Erlang code.
Multiprocessor support Erlang runtime system R11B (n schedulers) runqueue Pick next runnable 1..nSchedulers Io thread Timerthread select/poll File io threads
Multiprocessor supportsome additional characteristics • Linux, Solaris (MacOS x) first, (posix threads) • No changes in compiler • Support “traditional” separate heap per E-process first • Hybrid heap later.
Multiprocessor support Current status and benchmarks • Can run quite a lot of the regular test suites • A small benchmark ran:dom([1500,15000]) (2 processes sorting lists) on a 2-cpu machine • maskin) give the following result:
Multiprocessor supportway forward First step (ongoing) • Add locking wherever needed • Make system stable (Linux, Solaris, MacOSx) with multiple schedulers on multiple and single cpu systems. • Include in R11B (as beta status) Next step • Benchmarking, profiling and optimizations • Other platforms (Windows) • Include in update release for R11B (end of 2006)
Multiprocessor supportjoint development The SMP support for Erlang is a joint development effort between the Ericsson OTP team, Uppsala University and Synapse Many thanks to • Mikael Pettersson, Uppsala University • Tony Rogvall, Synapse