This form executes correctly once.
On the second run the whole session crashes.

JVERSION
Engine: j904/j64/windows
Beta-i: commercial/2022-12-13T15:22:35
Library: 9.04.07
Qt IDE: 2.0.3/6.2.4(6.2.4)
Platform:  Win 64
Installer: J904 install
InstallPath: c:/j904
Contact: www.jsoftware.com


Ak

On Thu., Jan. 5, 2023, 20:41 Henry Rich, <henryhr...@gmail.com> wrote:

> Each execution of (u t. '') creates a task. The task is added to a list
> of tasks for its threadpool.  When a thread in the threadpool becomes
> available, it executes the task. That's all there is to it.
>
> Execution starts immediately.  When you create a task, all the waiting
> tasks in the threadpool are awakened, and one takes the task.  (yes,
> maybe we should awaken fewer threads).  When a task completes, its
> thread grabs another task if there is one.
>
> You just create the tasks; we will execute them.  :)
>
> Henry Rich
>
> On 1/5/2023 9:41 PM, Ak O wrote:
> >       On Tue Dec 20 17:52:26 UTC 2022
> >
> > You suggested,
> >       ... or, if the blockverbs are the same, you could use
> >
> >       pyx012 =. blockverb t. ''"0 block0args;block1args;block2args...
> >
> > I think is similar to what you suggest here.
> >
> > Can explain how the execution is distributed?
> >
> > When is the execution started?
> >
> >
> > Ak
> >
> >
> > On Thu., Jan. 5, 2023, 16:51 Henry Rich, <henryhr...@gmail.com> wrote:
> >
> >> You don't need multiple threadpools, or a work_list.  Just have
> >> something like
> >>
> >> tabulation_task@>/ x (?@[ A. i.@]) t. ''"0 y
> >>
> >> Henry Rich
> >>
> >> On 1/5/2023 6:38 PM, Ak O wrote:
> >>> Is this the correct way to consider scheduling? Is there a better way
> to
> >>> structure the distribution of this execution?
> >>>
> >>>
> >>> Ak
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> NB. Simulated long running tasks, of variable execution length.
> >>>
> >>> ]     wrk_prcs =: ([: < (1 ? [) A. ([: i. ]))"0 0
> >>> ]     x=. 90 31 235 77 83 99 17 62 122 23
> >>> ]     y=. 12 4 _17 8 5 _8 9 6 15 _4
> >>>
> >>> NB. The solution pyx look like this:
> >>>
> >>>         (x wrk_prcs y)
> >>>
> >>> ]     notional_work_list =: ,.<;._1
> >>>
> >>
> ',(<(1?90)A.(i.12)),(<(1?31)A.(i.4)),(<(1?235)A.(i._17)),(<(1?77)A.(i.8)),(<(1?83)A.(i.5)),(<(1?99)A.(i._8)),(<(1?17)A.(i.9)),(<(1?62)A.(i.6)),(<(1?122)A.(i.15)),(<(1?23)A.(i._4))
> >>> '
> >>>
> >>> ]     Exec_sched_form1 =. 2 1": ((<'Tasks'),(<'Executing Threadpool'
> >>> )),(notional_work_list) ,."2 (,.10 $ <"_1 ( 1 +i.4))
> >>>
> >>> NB. Execution is pre-assigned to threadpools. Intermediate results are
> >>> locked from a calling tabulation task.
> >>> NB. The Final tabulation task executes when each pool has signaled that
> >> all
> >>> of its assigned tasks are complete.
> >>>
> >>> ]     Exec_sched_form2 =. 2 1": ((<'Tasks'),(<'Executing Threadpool'
> >>> )),(notional_work_list) ,."2
> >> (,.<"_1(1),(2),(3),(4),(_),(_),(_),(_),(_),(_))
> >>> NB. Threadpools are initialized with an execution task (passed a task).
> >> By
> >>> Thread configuration, on completion of
> >>> NB. an execution, the worker checks for remaining tasks (from the
> >>> Work_List). If there are no remaining tasks, the pool destroyed.
> >>> NB. If there are remaining tasks, the task is locked and executed by
> the
> >>> worker. This series repeats to completion.
> >>> NB. When signaled the final tablution task is executed.
> >>>
> >>>
> >>> On Thu., Jan. 5, 2023, 03:40 Ak O, <akin...@gmail.com> wrote:
> >>>
> >>>> NB. Simulated long running tasks, of variable execution length.
> >>>>
> >>>> ]     wrk_prcs =: ([: < (1 ? [) A. ([: i. ]))"0 0
> >>>>
> >>>> ]     x=. 90 31 235 77 83 99 17 62 122 23
> >>>> ]     y=. 12 4 _17 8 5 _8 9 6 15 _4
> >>>>
> >>>> NB. The solution pyx look like this:
> >>>>
> >>>>         (x wrk_prcs y)
> >>>>
> >>>> ]     notional_work_list =: ,.<;._1
> >>>>
> >>
> ',(<(1?90)A.(i.12)),(<(1?31)A.(i.4)),(<(1?235)A.(i._17)),(<(1?77)A.(i.8)),(<(1?83)A.(i.5)),(<(1?99)A.(i._8)),(<(1?17)A.(i.9)),(<(1?62)A.(i.6)),(<(1?122)A.(i.15)),(<(1?23)A.(i._4))
> >>>> '
> >>>>
> >>>>
> >>>> ]     Exec_sched_form1 =. 2 1": ((<'Tasks'),(<'Executing Threadpool'
> >>>> )),(notional_work_list) ,."2 (,.10 $ <"_1 ( 1 +i.4))
> >>>>
> >>>> NB. Execution is pre-assigned to threadpools. Intermediate results are
> >>>> locked from a calling tabulation task.
> >>>> NB. The Final tabulation task executes when each pool has signaled
> that
> >>>> all of its assigned tasks are complete.
> >>>>
> >>>>
> >>>> ]     Exec_sched_form2 =. 2 1": ((<'Tasks'),(<'Executing Threadpool'
> >>>> )),(notional_work_list) ,."2
> >>>> (,.<"_1(1),(2),(3),(4),(_),(_),(_),(_),(_),(_))
> >>>>
> >>>> NB. Threadpools are initialized with an execution task (passed a
> task).
> >> By
> >>>> Thread configuration, on completion of
> >>>> NB. an execution, the worker checks for remaining tasks (from the
> >>>> Work_List). If there are no remaining tasks, the pool destroyed.
> >>>> NB. If there are remaining tasks, the task is locked and executed by
> the
> >>>> worker. This series repeats to completion.
> >>>> NB. When signaled the final tablution task is executed.
> >>>>
> >>>>
> >>>>
> >>>> Ak
> >>>>
> >>>>
> >>>> On Wed., Jan. 4, 2023, 22:14 Raul Miller, <rauldmil...@gmail.com>
> >> wrote:
> >>>>> It's also worth noting that threads do not spin down immediately --
> >>>>> they only spin down when they're idle.
> >>>>>
> >>>>> And, as you have noted it's basically a stack of threads.
> >>>>>
> >>>>> So what you'd have to do is spin down as many threads as necessary to
> >>>>> eliminate the thread you wish to eliminate and then spin back up the
> >>>>> threads which you wish to remain.
> >>>>>
> >>>>> Or, shut down J completely and initialize a new instance of J with
> >>>>> your desired thread pool structure.
> >>>>>
> >>>>> (That said... why would you want to restructure your thread pools
> like
> >>>>> this?)
> >>>>>
> >>>>> --
> >>>>> Raul
> >>>>>
> >>>>> On Wed, Jan 4, 2023 at 8:33 PM Ak O <akin...@gmail.com> wrote:
> >>>>>> In a case where,
> >>>>>>        {{0 T. 2}}''
> >>>>>>        {{0 T. 4}}''
> >>>>>>        {{0 T. 7}}''
> >>>>>>
> >>>>>> How do I spin down the thread in pool number 4?
> >>>>>>
> >>>>>> I think operation,
> >>>>>>        {{55 T. ''}}
> >>>>>> spins down only the most recently created thread.
> >>>>>>
> >>>>>>
> >>>>>> Thank you Henry.
> >>>>>>
> >>>>>> Ak
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Wed., Jan. 4, 2023, 16:29 Henry Rich, <henryhr...@gmail.com>
> >> wrote:
> >>>>>>> Yes, that's right.
> >>>>>>>
> >>>>>>> Henry
> >>>>>>> On 1/4/
> >>>>>> Rich
> >>>>>>
> >>>>>> 2023 6:11 PM, Ak O wrote:
> >>>>>>>> Happy New Year,
> >>>>>>>>
> >>>>>>>> I hope you are all well.
> >>>>>>>>
> >>>>>>>> I am still struggling, please continue to have patience with me.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Where,
> >>>>>>>>         {{0 T. ''}}''
> >>>>>>>> creates a new thread.
> >>>>>>>>
> >>>>>>>> Does this,
> >>>>>>>>         {{0 T. 7}}''
> >>>>>>>> create a new thread in pool number 7? Or how is this function
> >>>>> treated?
> >>>>>>>> Thank you,
> >>>>>>>>
> >>>>>>>> Ak
> >>>>>>>>
> >>>>>
> ----------------------------------------------------------------------
> >>>>>>>> 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
> >>>>>
> >>> ----------------------------------------------------------------------
> >>> 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
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to