Coder Social home page Coder Social logo

dyalog / isolate Goto Github PK

View Code? Open in Web Editor NEW
1.0 10.0 1.0 2.56 MB

Source to build isolate.dws, the futures and isolates workspace deliviered with Dyalog APL

Home Page: http://docs.dyalog.com/latest/Parallel%20Language%20Features.pdf

License: MIT License

APL 100.00%
dyalog dyalog-apl workspace isolates isolate futures build parallel-computing parallelization

isolate's Introduction

isolate.dws and samples for Dyalog v17.0

Since version 14.0, Dyalog APL has included the workspace isolate.dws, which enables simple asynchronous and parallel programming in Dyalog APL. From version 17.0, the source for the isolate workspace and associated samples have been moved to GitHub.

Documentation

Documentation for the futures and isolates can be found in the Dyalog Documentation Centre.

Version 17.0 Enhancements

A project was started at Dyalog with the goal of enhancing the isolate workspace so that it would be possible to run isolate servers in the cloud. In the end, it turned out that a couple of bugfixes in the code which validated peer IP addresses to deal with IPv6 addresses was all that was really required.

We also added a "sample" called AWS, which provides an interface to the Amazon Webservices Command Line Interface. This can be used to launch and manage AWS instances. Dyalog Webinar 10 demonstrates how to use this to run a large number of parallel isolates on the cloud.

Samples

In addition to the workspace which can be found in the ws folder along with most other distributed workspaces, a new folder of isolate-related samples are now installed in the folder Samples/isolate below the main Dyalog folder.

It contains the AWS class and an example of how to use it, and also includes the IIPageStats sample, which computes letter frequencies used on all major newspaper sites in a given state in the USA, as an example of how to use the ll.EachX (extended parallel each) tool:

Contents of the Samples folder

File Type Description
AWS.dyalog Class Interface to the Amazon Webservices Command Line Interface
AWSIsolates.dyalog Function Shows how to use the AWS class to start a set of virtual machines and use them to run Isolates
IIPageStats.dyalog Namespace Demonstrates the use of ll.EachX tool

isolate's People

Contributors

abrudz avatar bpbecker avatar jayfoad avatar mbaas2 avatar mkromberg avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mkromberg

isolate's Issues

homeport set incorrectly

ynys.Init should not set homeport to 7051, it should set it to op.homeport (which defaults to 7051, but can be configured by the user)

You cannot )COPY isolate into a namespace

If you )COPY the isolate workspace into any other location than the root, "nothing works":

  'ns' ⎕ns ''
  )cs ns

#.ns
)copy isolate
... saved ...
iso←isolate.New ''
iso.⎕dl 3
FUTURE ERROR: 86: COMMUNICATIONS FAILURE 1119 ERR_CLOSED ... etc ...

getDRC should use the Conga namespace rather than DRC

isolates should use the "new" namespace and a separate root by default

It is almost possible to use a separate root for isolates by

isodrc←Conga.New 'isolates'
isolate.Config 'drc' isodrc

... unfortunately you also need to modify isolate.ynys.Init to read as follo

[14] :If 9.2≠⎕NC⊂'here.DRC'
[15] :AndIf ~(⊃z←DRC.Init ⍬)∊0
[16] ('CONGA INIT FAILED: ',,⍕z)⎕SIGNAL 11
[17]           :EndIf

By version 19.0, we should change the getDRC function to use a separate root by default, and be able to use one if configured as above.

[MacOS] Parallel each: Unable to initialise isolate processes

This fails on both 18.2 and 19.0:

      ⎕cy'isolate'
      
      T⎕AI  ⎕DL  83  ⎕AI-T
ISOLATE: Unable to connect to started processes (attempt 1 of 3)
ISOLATE: Unable to connect to started processes (attempt 2 of 3)
ISOLATE: Unable to connect to started processes (attempt 3 of 3)
ISOLATE: Unable to initialise isolate processes
      T⎕AI  ⎕DL  83  ⎕AI-T
              
 Dyalog  18.2.47086 64-bit Unicode, BuildID 5e2cc913                           
 OS      Darwin 22.4.0 Darwin Kernel Version 22.4.0: Mon Mar  6 20:59:58 PST 20
 Link    3.0.19                                                                
 SALT    2.9                                                                   
 UCMD    2.51                                                                  
 .NET    .NET 6.0.16                                                           
 WS      18.2 

myIsolates .(2 ) FUTURE ERROR: 86: COMMUNICATIONS FAILURE 1119 ERR_CLOSED : Socket Closed while receiving

Any idea what might be causing this?

FUTURE ERROR: 86: COMMUNICATIONS FAILURE 1119 ERR_CLOSED : Socket Closed while receiving: iEvaluate[13] (,⍕(⍕rc),': ',(0⊃res),{(⍵∨.≠' ')/': ',⍵}1⊃res,'' '')iSpace.qsignal rc

runTests←{
⍺←0
⎕THIS.myIsolates←⍺{
~⍺:0
ok←⎕CY'isolate'
{isolate.New''}¨⍳4
}''

}

 myIsolates .(2 )

FUTURE ERROR: 86: COMMUNICATIONS FAILURE 1119 ERR_CLOSED : Socket Closed while receiving: iEvaluate[13] (,⍕(⍕rc),': ',(0⊃res),{(⍵∨.≠' ')/': ',⍵}1⊃res,'' '')iSpace.qsignal rc
myIsolates.(2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.