Interesting. Your parallel jconsole ideas address a case I hadn't considered
yet---outputting the answers to many expensive computations.

Thank you for the zeromq pointer!

bill lam <[email protected]> wrote:
> This is a good suggestion. The zeromq addon can run multiple jconsole
> instances in parallel.
> 
> On Fri, Jul 3, 2020, 9:52 AM Raul Miller <[email protected]> wrote:
> 
> > Hmm... some other possibilities include running this under jconsole
> > and spinning up an instance of J for each 'p', or some other trick to
> > show results incrementally (details depend on what you are after).
> >
> > Like, you could do (untested):
> >    wd@'msgs' ::]@echo@(0!:111)@".
> > instead of
> >    0!:111 ".
> >
> > This would not make anything faster, but would not make you wait so
> > long for the first result to appear on screen.
> >
> > Anyways... I'm probably way off base from where you wanted to go, but
> > these are possibilities that might at some point be useful to you.
> >
> > --
> > Raul
> >
> > On Thu, Jul 2, 2020 at 9:40 PM Raul Miller <[email protected]> wrote:
> > >
> > > One approach would be that you saved the result of each 'p' file in a
> > > corresponding 'o' file.  If you want to get fancy you could even make
> > > it so that if the 'p' were newer the 'o' would be ignored. But
> > > manually deleting the 'o' would make that unnecessary.
> > >
> > > This leaves some details unspecified -- like should you use ". or 5!:5
> > > or 3!:1 or map_jmf_ in the process of generating the 'o' files?
> > >
> > > But, anyways, if you defined the interface you could use it.
> > >
> > > Thanks,
> > >
> > > --
> > > Raul
> > >
> > >
> > > On Thu, Jul 2, 2020 at 4:48 AM ethiejiesa via Programming
> > > <[email protected]> wrote:
> > > >
> > > > Hey J,
> > > >
> > > > Wanted to share this and see what you think.
> > > >
> > > > For Project Euler solutions in J, I have a single file and run it like
> > this:
> > > >
> > > >     $ ./project-euler.ijs <1> [<m> ..]   # output answers to problem
> > n, m, ...
> > > >
> > > > Initially, I had a scheme where all solutions are named like p1, p2,
> > etc. with
> > > > the following at the bottom of the script:
> > > >
> > > >     echo ".&> (#~ 0 = 4!:0) 'p'&,&.> ARGV
> > > >     exit@0:^:(e.~ <@'./project-euler.ijs') ARGV
> > > >
> > > > It just straightforwardly tacks 'p' to the beginning of all arguments,
> > filters
> > > > out the missing/nonsense stuff, and executes the result. The second
> > line
> > > > ensures the script exits when called directly but not when 'load'ed in
> > the
> > > > jconsole.
> > > >
> > > > Anyway, the above scheme works but execution starts to get slow as more
> > > > solutions accumulate since it ends up computing *all* p1, p2, etc.
> > before
> > > > output. So I wanted to "lazily" evaluate only those solutions
> > requested on the
> > > > command line.
> > > >
> > > > My first approach was to "lazy load" by making all p1, p2, etc.
> > strings and
> > > > evaluating with
> > > >
> > > >     0!:111 ".&> (#~ 0 = 4!:0) 'p'&,&.> ARGV
> > > >
> > > > However, this strikes me as a bit ugly. It also makes it a bit awkward
> > to
> > > > investigate and iterate on solutions when loading into jconsole.
> > > >
> > > > So the scheme I came up with is a simple modification of the initial
> > approach.
> > > > Instead of p1, p2, etc. we now have [x1], v1, y1, [x2], v2, y2, etc.
> > (where
> > > > [x1] means that x1 is optional). Effectively we want to expand the
> > argument '1'
> > > > into 'x1 v1 y1' or 'v1 y1' as appropriate and then execute. This is
> > how I am
> > > > achieving that:
> > > >
> > > >     echo ". ,"_1 ,&' '&> |: (#~"1 (0 3 0) = 4!:0) 'xvy' ,&.>/ ARGV
> > > >
> > > > It's quite nice how closely this mirrors the original approach. After
> > the hook,
> > > > we have a table whose columns encode the executions we want. Finally,
> > a bit of
> > > > munging gives the desired result.
> > > >
> > > > Thoughts? Is this Good J TM?
> > > > ----------------------------------------------------------------------
> > > > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to