/
New Language Features For Parallel and Asynchronous New Language Features For Parallel and Asynchronous

New Language Features For Parallel and Asynchronous - PowerPoint Presentation

roxanne
roxanne . @roxanne
Follow
342 views
Uploaded On 2022-07-26

New Language Features For Parallel and Asynchronous - PPT Presentation

Execution Morten Kromberg Dyalog LTD Dyalog13 Futures and Isolates Features which allow the user to explicitly express parallelism in a natural way In the interpreter f utures and isolates enable coarsegrained task parallelism ID: 929272

isolates futures isolate amp futures isolates amp isolate parallel 100 grained parallelism partitions apl sums model functions dyalog process

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "New Language Features For Parallel and A..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Slide2

New Language Features

For Parallel and Asynchronous

Execution

Morten Kromberg

Dyalog LTD

Dyalog’13

Slide3

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 moreIn a compiler, futures can be used to express fine-grained, or ”data” parallelism

Futures & Isolates

3

Slide4

Isolates

An

I

solate 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

Slide5

Isolates in Action

Futures & Isolates

X←1 2 3

X←4 5

X←6 7

I3←

¤¨3⍴⊂''

I3.({+/⍵÷⍴⍵}

X)

I3.X←(1 2 3)(4 5)(6 7)

2 4.5 6.5

5

Slide6

Futures

The result of an expression executed in an Isolate is a

Future

Futures can be passed as arguments to functions without blockingStructural functions can work on arrays containing futures without blockingPrimitives which need to reference the value will block

Futures & Isolates

6

Slide7

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 partitions4 ⍴¨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

Slide8

Demo

Version 14.0 Implementation of

¤

and ∥ are APL models

Futures & Isolates

8

Primitive

Model

¤

isolate.New

isolate.llEach

Slide9

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

Slide10

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 / debuggingRIDE ”process manager”

project ...

Futures & Isolates

10

Slide11

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

Slide12

Credits

Magic Namespaces:

J Daintree & J Scholes

Futures: J FoadAPL Model: Phil Last

Futures & Isolates

12

Slide13

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 applicationsIt is a model, but please try

it and give us feedback on

features

Futures & Isolates

13

Slide14