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