Boost Performance with APL Workshop Insights

performance workshop dyalog 22 n.w
1 / 51
Embed
Share

Explore key insights from the Performance Workshop Dyalog 22 by Aaron Hsu, covering topics on theory, factors affecting performance, implementation strategies, and more. Understand concepts like Big-O families, run-time memory usage, and data structures for enhancing computational efficiency.

  • Performance Workshop
  • APL
  • Optimization
  • Data Structures
  • Theory

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Performance Workshop Dyalog 22 Aaron Hsu - aaron@dyalog.com

  2. Syllabus

  3. Theory Physical Implementation

  4. The Comp. Sci. of APL Performance

  5. Simplified Reasoning

  6. Big-O Families

  7. Constant: Log-Linear: Linear: Polynomial: O(n*k) Exponential: O(k*n) O(k) O(n n) O(n)

  8. Theoretical Factors of Performance

  9. Run time Memory Usage Memory Access Locality/Caching Parallelism/Critical Path Throughput/Bandwidth Overheads

  10. Physical Factors of Performance

  11. How many elements? How many bits? How many times? How many?

  12. How much data do you have?

  13. Implementation Factors for Performance

  14. Platform Runtime Execution Model

  15. Data First!

  16. The Array Data Structure

  17. <Array Structure Diagram>

  18. Code Data Structure

  19. Token Stream

  20. Variable Lookup

  21. Auxiliary Structures

  22. Caching/ Hashtables

  23. Primitives

  24. Functions

  25. Operators

  26. Idiomatic APL and Automatic Performance Analysis

  27. ]RunTime ]SpaceNeeded

  28. Subtleties

  29. f0 {+} f1 {(1 ) 2- 0,(1 ,1) + } f2 {(1 ) (+ ){+ } } f3 {1 x x[+ ]+ x 0 1++ }

  30. Memory Management

  31. Lets look at some tricks

  32. Symbols

  33. Vs. Hashed Primitives

  34. Inverted Tables

  35. When not to use inverted tables?

  36. Flat/Nested Recursive ADTs

  37. PEG vs. LDF

  38. Calculate space of a tree

  39. More Code to Play with

  40. Free Vars

  41. Brians Code

  42. Basic Rules of Thumb

  43. Flat Small Primitive Parallel

  44. Where can APL outperform traditional languages? How?

More Related Content