New Language Features for Parallel and Asynchronous Execution

slide1 n.w
1 / 14
Embed
Share

"Explore the new language features in Dyalog 13 for parallel and asynchronous execution, including futures and isolates. Learn how isolates enable task parallelism and fine-grained data parallelism, and see examples of isolates in action. Discover the power of futures in expressing parallelism and passing arguments to functions without blocking. Dive into the Parallel Operator for creating isolates on the fly and executing operations inside them. Also, delve into isolate design issues such as code and data sharing methods."

  • Dyalog
  • Parallel Execution
  • Asynchronous
  • Futures
  • Isolates

Uploaded on | 1 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. New Language Features For Parallel and Asynchronous Execution Morten Kromberg Dyalog LTD Dyalog 13

  2. Futures and Isolates Features which allow the user to explicitly express parallelism in a natural way In the interpreter, futures and isolates enable coarse-grained task parallelism coarse = units of ~100ms or more In a compiler, futures can be used to express fine-grained, or data parallelism Futures & Isolates 3

  3. Isolates An Isolate tastes, smells, looks like a Dyalog namespace, except that... Expressions executed in the isolate run in a separate process from the main interpreter thread ( in parallel ) Futures & Isolates 4

  4. Isolates in Action I3 3 I3.X (1 2 3)(4 5)(6 7) '' I3.({+/ 2 4.5 6.5 }X) X 6 7 X 1 2 3 X 4 5 Futures & Isolates 5

  5. Futures The result of an expression executed in an Isolate is a Future Futures can be passed as arguments to functions without blocking Structural functions can work on arrays containing futures without blocking Primitives which need to reference the value will block Futures & Isolates 6

  6. The Parallel Operator Monadic operator parallel ( ) derives a function which creates an empty isolate on the fly and executes the operand inside it (thus returning a future): sums {+/ } 100 returns 100 futures - IMMEDIATELY sums structural functions do not realize futures 100 partitions (25/ 4) sums Also returns immediately partitions 4 partitions 4 partitions Each containing 25 futures 25 25 25 25 +/+/ partitions 4 threads to do sums (blocks) 171700 (We used 100+4+1 parallel threads to compute the end result) Futures & Isolates 7

  7. Demo Version 14.0 Implementation of and are APL models Primitive Model isolate.New isolate.llEach Futures & Isolates 8

  8. Isolate Design Issues How to share code between isolate(s) & parent? Memory-mapped shared code file? How to share data? Enhance memory-mapped files? Memcached or other tools? How to call back to parent or to other isolates Synchronization / threading / serialization Futures & Isolates 9

  9. Design Issues ... Performance: Thread pooling / scheduling, interaction between futures & isolates Left argument to to specify WHERE to launch process? On the cloud, in a cluster, etc Error handling / debugging RIDE process manager project ... Futures & Isolates 10

  10. Goal Provide deterministic parallelism in a form which integrates well with APL thinking Bang for the buck, here and now, for coarse grained (~100ms or more) parallelism Notation has potential to extend to compiled APL for fine-grained data parallel applications Futures & Isolates 11

  11. Credits Magic Namespaces: J Daintree & J Scholes Futures: J Foad APL Model: Phil Last Futures & Isolates 12

  12. In Dyalog v14.0 Partly Implemented in APL and labelled as experimental Somde details might change Included in mainstream 14.0 to encourage customers to experiment with real applications It is a model, but please try it and give us feedback on features Futures & Isolates 13

More Related Content