Dyalog - PowerPoint PPT Presentation

About This Presentation
Title:

Dyalog

Description:

... The Version 12.1 IDE 16:15 Richard Smith: XML, Journaled Files Phase II 16:15 Roger Hui: ... Princeton * APL # We have started a research project, ... – PowerPoint PPT presentation

Number of Views:152
Avg rating:3.0/5.0
Slides: 43
Provided by: Gitte3
Category:
Tags: dyalog | phase | project

less

Transcript and Presenter's Notes

Title: Dyalog


1
Dyalog09
2
Technical Road Map 09
  • Morten Kromberg
  • Dyalog09 Princeton, NJ

3
Agenda
  • Introducing Version 12.1
  • Demonstration of some Key Features
  • The Next Release Cycle
  • Version 13.0
  • Conga 2.1, Encryption Encoding Library
  • APL - A new APL interpreter to complement
    Dyalog APL
  • Cirrus or Cumulo-Nimbus?
  • Eagles Eye View of Curves in the Road
  • Recommendations on preparing for the future

4
Version 12.1 Overview
  • It was supposed to be a Year of Consolidation
  • Let the new QA manager take charge
  • Build, Install QA on every platform, every
    night
  • Find and Kill more bugs, Speed things up a bit
  • ... But we managed to sneak a few new things into
    v12.1 ?

5
Version 12.1 Overview
  • Faster on Single Core, Some Multi-Core Features
  • Editor Enhancements
  • Fast XML-to-Array Conversion Tool (?XML)
  • Microsoft.Net components embeddable in Dyalog GUI
  • User Command Processor for Tool Delivery
  • IPv6 Support with Conga v2.0
  • Journaling Component Files Protection against
    O/S Crashes
  • New Developer Tools SAWS, MildServer, LoadData,
    GRAPL
  • Applications deployable as single .exe file
    (interpreterws)
  • Improved Keyboard and Terminal Support
  • I-Beam (?) allows experimental undocumented
    features

6
V12.1 Core Performance
v10.1 ms v10.1 ms v12.1 ms Factor
Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized Boolean Scans and Reductions Highly Optimized
mat?1000 1000 rand 2 mat?1000 1000 rand 2 mat?1000 1000 rand 2 ?mat 5200 5200 680 7,6
vec?1000000 rand 2 vec?1000000 rand 2 vec?1000000 rand 2 ?\vec 51000 51000 830 61,4
Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument Set Functions (? ? ? n ) Optimized for One Small Argument
vec?1000000 rand 100 vec?1000000 rand 100 vec?1000000 rand 100 vec5 vec5 33000 6500 5,1
(vec?5)/vec (vec?5)/vec 11000 7200 1,5

Transpose Rewritten Transpose Rewritten Transpose Rewritten Transpose Rewritten ?mat ?mat 32000 23000 1,4
?vec ?vec 3 0 11,3
Indexing Uses Less Memory Indexing Uses Less Memory Indexing Uses Less Memory Indexing Uses Less Memory Indexing Uses Less Memory Indexing Uses Less Memory
i j?1000?1000 1000 i j?1000?1000 1000 i j?1000?1000 1000 mati ? (kb used) mati ? (kb used) 4125 129 31,9
Indexing is also (often) Faster Indexing is also (often) Faster Indexing is also (often) Faster Indexing is also (often) Faster Indexing is also (often) Faster Indexing is also (often) Faster
data?mati data?mati 23000 240 95,8
matj?data matj?data 59000 230 256,5
7
V12.1 Core Performance
v10.1 ms v10.1 ms v12.1 ms Factor
Grade Uses New (lexicographic) Algorithm Grade Uses New (lexicographic) Algorithm Grade Uses New (lexicographic) Algorithm
vec?1e6 rand 1e9 ?vec 500000 500000 180000 2,8
For Small Range Data, Even Faster For Small Range Data, Even Faster For Small Range Data, Even Faster
vec?1e6 rand 10000 ?vec 460000 460000 34000 13,5
Sort is now an idiom Sort is now an idiom ???vec 480000 480000 6300 76,2
mat?100000 4 rand 10000 mat?100000 4 rand 10000 ???mat 85000 85000 16000 5,3
Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly Basic arithmetic ( - ) has been fully rewritten in assembly

Simple Arith uses SSE instructions where possible Simple Arith uses SSE instructions where possible Simple Arith uses SSE instructions where possible Simple Arith uses SSE instructions where possible
a b?1000rand50 ? 1-byte ints ab ab 8 2 3,7
More Optimized Cross-Type Operations More Optimized Cross-Type Operations More Optimized Cross-Type Operations More Optimized Cross-Type Operations More Optimized Cross-Type Operations More Optimized Cross-Type Operations More Optimized Cross-Type Operations
a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats a b?1 0.001(1000 1000)rand50 1000000 ? a 1-byte ints, bfloats
ab ab 16000 9000 1,8
Matrix iota idiom extended to numeric arrays Matrix iota idiom extended to numeric arrays Matrix iota idiom extended to numeric arrays Matrix iota idiom extended to numeric arrays
data?10000 10 rand 1E6 data(??)???data data(??)???data 16000 7300 2,2
8
Multi-Core Support
  • Most Scalar Dyadic Functions on Floating-Point
    arguments will use multiple cores (configurable)
  • But not and -

Function 2 cores 4 cores
12 12
- 12 12
12 12
45-50 70-75
GCD/LCM 45-50 70-75
9
Parallel Each Operator
  • A user-defined operator called PEACH is included
    with v12.1. It uses Conga to orchestrate multiple
    cores.
  • Demo
  • Parallel Each on a single machine works well with
    algorithms that have a good CPUMemory ratio
  • Distributed Each works for any kind of
    calculation if transfer or arguments and results
    not too expensive

10
Performance Case Study
  • Visited company in Bruxelles doing actuarial
    calculations
  • V12.1 gave a 20 speedup out of the box
  • We found 20 more by doing hot spot analysis
    for a couple of hours
  • An 8 core machine (2xQuad) gave a 5x speedup
    using PEACH on the inner loop of the
    application
  • Summary 7-8x faster. 1 Hour calculation takes
    lt10 minutes. Customer is pleased ?.

11
User Command Processor
  • Same idea as in APLPLUS, but based on Unicode
    text files as source for user commands
  • A User command consists of a single Unicode
    Text file, all you need to do is drop it in a
    particular folder (no need to restart APL)
  • Makes it VERY easy to share development tools
  • display 2 2?3 3?'UCMDS' 'Rock!'
  • ?----------------
  • ? ?---- ?----
  • UCMDS Rock!
  • ----- -----
  • ?---- ?----
  • Rock! UCMDS
  • ----- -----
  • ?----------------

12
IDE Enhancements
  • The Editor has been completely rewritten to
    better support editing large classes and
    functions
  • Outlining, Collapsible Regions, Refactoring
  • John Daintree will show you all the new features
    after lunch!

13
Fast XML Transformations
  • Converts XML text to (from) an array1
    Level of nesting2 Element Name3 Element
    Data4 Attributes5 Node type (0Empty Tag,
    1Text only, 3Has Children, etc)
  • 4 not required when generating XML, 5
    ignored

14
Integrated MS.Net GUI
15
Version 12.1 Overview
  • Faster on Single Core, Some Multi-Core Features
  • Editor Enhancements
  • Fast XML-to-Array Conversion Tool (?XML)
  • Microsoft.Net components embeddable in Dyalog GUI
  • User Command Processor for Tool Delivery
  • IPv6 Support with Conga v2.0
  • Journaling Component Files Protection against
    O/S Crashes
  • New Developer Tools SAWS, MildServer, LoadData,
    GRAPL
  • Applications deployable as single .exe file
    (interpreterws)
  • Improved Keyboard and Terminal Support
  • I-Beam (?) allows experimental undocumented
    features

16
v12.1 Timeframe
  • Complete except for packaging and a rapidly
    diminishing number of bugs in the new editor
  • Target for General Availability on WindowsAIX is
    August/September 2009 (was before Dyalog09)
  • Linux and PDA before year end
  • It isnt too late to join the Beta-Test
    programme Write to mkrom_at_dyalog.com and explain
    what you would like to test
  • Monitor http//www.dyalog.com or
    twitter.com/dyalogapl for notifications

17
(No Transcript)
18
The Next Release Cycle
  • Conga 2.1
  • Version 13.0

19
Conga 2.1
  • Support for More Certificate Types
  • Weve had help from Peter-Michael Hager
  • Encrypted Certificates
  • The Windows Certificate Store (allows use of
    SmartCards and other Tokens that interface with
    this)
  • General available early in 2010

20
Likely Features for v13
  • More Performance and QA work
  • Continued focus on multi-core, cache optimization
    and other aspects of modern chip architectures
  • Industrial Strength local and distributed PEACH
  • Remove 2 billion element limit from 64-bit
    version
  • New Data Types
  • 128-bit Decimal Floating Point (IEEE-754-2008)
    for banking applications
  • Complex Numbers to attract educational users
  • Rational Numbers / Unlimited Precision Integers
    can wait
  • We have decided we do NOT NEED 64-bit Integers

21
Likely Features for v13
  • Improve and rationalise internal developer tools
  • ?DMX Diagnostic Message eXtended
  • Provide more detailed information about errors
  • ?MONITOR Measure CPU and Elapsed Time with
    higher precision, easier to use, handle recursion
  • ?STACK, ?NSI to return refs
  • ?NC, ?NL Rationalise Metadata or Reflection
    tools

22
More Likely v13 Features
  • Support for Unicode source files built-in to
    interpreter
  • Load, Save and direct Edit of Unicode Text files
  • General-purpose Encryption Library (Hashing,
    Symmetrical and Asymmetrical encryption)
  • Target availability for v13 in roughly 12 months

23
Other Potential Projects
  • SQAPL Server Allow an APL application to appear
    to be a Relational Database Engine (with ODBC,
    ADO, ADO.NET and JDBC drivers)
  • (This will not be a free product due to 3rd party
    licensing)
  • Remote IDE for DyalogAPL on all platforms
  • Mono Bridge use .Net Framework under Linux
  • Provide More Developer Tools as part of the APL
    Library. Cultivate an Open Source code
    repository,

24
APL
  • We have started a research project, to produce a
    completely new, Fully Managed APL Interpreter
  • We will publish a specification and discuss it,
    first with major customers and then in public
  • Will be fully integrated with Microsoft.Net but
    the core language syntax will be independent of
    .Net

25
APL - Benefits
  • Applications written in APL will be deployable
    in a secure fashion over the internet, and in
    other scenarios where managed code is a
    requirement or provides a significant advantage
  • For example, you will be able to write web
    applications with APL code executing in the
    browser to provide a rich client experience

26
APL - Likely Characteristics
  • Full set of APL primitives, operators and other
    core language features
  • Designed as a tool for APL thinkers but
    comfortable for software engineers
  • ONE BIG difference No semiglobals (a function
    cannot see the locals of its calling environment)
  • There WILL be true globals
  • And the equivalent of namespaces will provide a
    reasonable migration path

27
APL - Likely Characteristics
  • WILL PROBABLY NOT HAVE
  • Auxiliary Processors, ?ML, ?OR, ?SM, ?RTL, ?SD,
    ?SR, ?NTIE, ?ARBIN, ?W, ?AI, ?SVO, ?DQ, ?D..
  • (Library functions for which a perfectly good
    equivalent exists in the .Net framework)
  • Saved workspaces will not be able to have an )SI
    stack
  • First versions may not be able )SAVE workspaces
    at all
  • WILL PROBABLY HAVE
  • ?CT, ?IO (jury is still out), and a small set of
    carefully selected library functions, Component
    Files, ?XML (etc) which provide unique value to
    APL programmers

28
Dyalog vs APL
  • APL is a complimentary product which allows the
    use of APL in places where it can not be deployed
    today
  • It is useful to organizations who need managed
    code, or use Visual Studio / C or are otherwise
    heavily invested in Microsoft.Net
  • The rate of development of the core product will
    continue to accelerate
  • The two products will inter-operate seamlessly

29
Dyalog ? APL Interop
  • APL assemblies can be called by Dyalog APL (as
    any other .NET assembly)
  • Dyalog and APL will (eventually) be able to
    share Component Files and communicate (many) APL
    arrays via TCP/IP
  • But not saved workspaces
  • Selected New Language Features in APL will be
    ported to Dyalog APL
  • Will allow the writing of code which can be used
    in both environments

30
Timelines
  • APL is still being designed, but see
    C\aplsharp\silverlight\aplsharp.html
  • We will start reviewing the design externally
    this winter (come to APL2010 to heckle)
  • A prototype may be available at APL2010
    earliest General Availability in 2011.
  • Pressure (and funding ?) from customers could
    make us more ambitious about the features, but
    probably not the timing, of the first release

31
Cirrus or Cumulo-Nimbus?
  • A good home for Vapourware?
  • Dave Thomas is about to teach us how to recognize
    and use different forms of clouds

32
Amazon Web Services (AWS)
  • A mature provider of web and computing
    infrastructure (since 2006)
  • You provide a virtual machine image and Amazon
    scales it infinitely at reasonable cost
  • We are investigating providing tools to support
    EC2 (Elastic Compute Cloud), S3 (Simple Storage
    Service)
  • Goal is to provide recipes, or pre-configured
    Amazon Machine Images to build upon
  • We have a lot to learn, but hope to wrap our new
    knowledge up nicely for Dyalog users
  • No timeline... Talk to us if you have a potential
    app.

33
Thoughts aboutthe Road Ahead
34
Looking Back Very Briefly
  • Version 11.0 (Autumn 2006)
  • Object Orientation Classes
  • New Tool of Thought
  • Significantly Improved Integration with .Net
  • Source code management using standard tools
  • 64-bit Version - LARGE Workspaces
  • Core Language Extensions
  • A number of new primitives ? ? ? ?

35
Looking Back v12.0
  • First Release (Win32) in February 2008
  • Main Features
  • Unicode Support
  • Journaling Component Files
  • Simplified, Secure Communications Toolkit
    (Conga)
  • Built-In Charting and Document Creation
  • Language Bar and On-Screen Keyboard

36
Looking Back v12.1
  • October 2009, Key Features
  • Faster, more Robust
  • Multi-Core Support
  • Enhanced Editor
  • XML, Web Services
  • Tutorials and Tools and more to come

37
To Come ...
  • New Commercial and Technical Data Types
  • More Speed Especially On Multiple Cores
  • Encryption and Other Web Enabling Tools
  • Managed Code Interpreter
  • More Ways to Run APL as a Service across Multiple
    Platforms (ODBC Data Source etc)

38
Recommendations
  • 64-bit is Becoming Common, even on Windows
  • Good news Porting to 64-bit requires few code
    changes (once all the other components you need
    are available in 64-bit)
  • Unicode
  • Please investigate what it will take to migrate
  • No hurry but eventually, we will start adding
    new features in Unicode only (well need more
    symbols ?)
  • Multi (at least 2)-core machines are everywhere
  • Look at PEACH and other forms of multicore
    splits

39
Recommendations
  • To prepare for the Web or Cloud - think about
    addding
  • Web Front Ends using ASP.NET, MildServer etc
  • Web Services using ASP.NET or SAWS
  • An ODBC or ADO frontend using the SQAPL Server?
  • Take a look at Source Code in Unicode Text Files
  • Easier sharing and management
  • Access to many excellent (often free) tools!

40
Other Talks by Devt. Team...
Today (Monday) Today (Monday)
1415 John Daintree The Version 12.1 IDE
1615 Richard Smith ?XML, Journaled Files Phase II
1615 Roger Hui Complex Numbers Implementation Stories
1930 John Scholes Complex Numbers
Tomorrow (Tuesday) Tomorrow (Tuesday)
0900 Morten Kromberg An ODBC Driver for APL
0900 John Scholes Session Whizbangs
Wednesday (Courses) Wednesday (Courses)
1400 Dan Baronet Source Code Mgt using SALT and SubVersion
1400 John Daintree Using the Microsoft.Net framework
1400 Morten Kromberg Multicore / Application Tuning Workshop
41
Conclusion
  • Weve been keeping busy!
  • Were starting to enjoy the benefits of being a
    significantly larger team.
  • We hope that you will enjoy some of the new
    Features - and Products - that are heading your
    way!
  • Thank You For Listening!

42
Other Talks by Devt. Team...
Today (Monday) Today (Monday)
1415 John Daintree The Version 12.1 IDE
1615 Richard Smith ?XML, Journaled Files Phase II
1615 Roger Hui Complex Numbers Implementation Stories
1930 John Scholes Complex Numbers
Tomorrow (Tuesday) Tomorrow (Tuesday)
0900 Morten Kromberg An ODBC Driver for APL
0900 John Scholes Session Whizbangs
Wednesday (Courses) Wednesday (Courses)
1400 Dan Baronet Source Code Mgt using SALT and SubVersion
1400 John Daintree Using the Microsoft.Net framework
1400 Morten Kromberg Multicore / Application Tuning Workshop
Write a Comment
User Comments (0)
About PowerShow.com