Hi Jüergen. Yes, those issues with parrallel are fixed.
Now we have this: ⊃/(1 2 3 4)(9 8 7 6) throwing RANK ERROR at Bif_F12_PARTITION_PICK.cc:646 total_lines in apl.lines: 838342 assembler lines in apl.lines: 509803 source line numbers found: 504988 ---------------------------------------- -- Stack trace at Error.cc:198 ---------------------------------------- 0x28D5DAAA47FD __libc_start_main 0xBD585 main at main.cc:635 0x29DDE5 Workspace::immediate_execution(bool) at Workspace.cc:236 0x13FF51 Command::process_line() at Command.cc:103 0x140013 Command::finish_context() at Command.cc:347 0x14FB08 Executable::execute_body() const at Executable.cc:268 0x22FF6C StateIndicator::run() at StateIndicator.cc:359 0x197536 Prefix::reduce_statements() at Prefix.cc:723 (discriminator 4) 0x194F6D Prefix::reduce_MISC_F_B_() at Value_P.icc:78 0x148CEA DerivedFunction::eval_B(Value_P) const at Value_P.icc:78 0x11B375 Bif_OPER1_REDUCE::eval_LB(Token&, Value_P) const at Value_P.icc:78 0x117269 Bif_REDUCE::reduce(Token&, Value_P, unsigned int) at Value_P.icc:78 0x11686D Bif_REDUCE::do_reduce(Shape const&, Shape3 const&, long, Function const*, Value_P, long) at Value_P.icc:78 0xFC972 Bif_F12_PICK::eval_AB(Value_P, Value_P) const at Value_P.icc:78 0xFC628 Bif_F12_PICK::pick(Cell const*, long, long, Value_P, long) at Bif_F12_PARTITION_PICK.cc:633 (discriminator 2) 0x14F881 throw_apl_error(ErrorCode, char const*) at Error.cc:203 ======================================== RANK ERROR ⊃/(1 2 3 4) (9 8 7 6) ^^ ============================================================================== Assertion failed: get_pointer_cell_count() == 0 in Function: ~Value in file: Value.cc:454 C/C++ call stack: ---------------------------------------- -- Stack trace at Assert.cc:72 ---------------------------------------- 0x28D5DAAA47FD __libc_start_main 0xBD585 main at main.cc:635 0x29DDE5 Workspace::immediate_execution(bool) at Workspace.cc:236 0x13FF51 Command::process_line() at Command.cc:103 0x140013 Command::finish_context() at Command.cc:347 0x14FB08 Executable::execute_body() const at Executable.cc:268 0x22FF6C StateIndicator::run() at StateIndicator.cc:359 0x197536 Prefix::reduce_statements() at Prefix.cc:723 (discriminator 4) 0x194F6D Prefix::reduce_MISC_F_B_() at Value_P.icc:78 0x148CEA DerivedFunction::eval_B(Value_P) const at Value_P.icc:78 0x11B375 Bif_OPER1_REDUCE::eval_LB(Token&, Value_P) const at Value_P.icc:78 0x117269 Bif_REDUCE::reduce(Token&, Value_P, unsigned int) at Value_P.icc:78 0xAD7F5 at Bif_OPER1_REDUCE.cc:380 0xC6451 Value_P::~Value_P() at Value_P.icc:81 0x28ED59 Value::~Value() at Value.hh:973 0x28ECB7 Value::~Value() at Value.cc:454 0xDC821 do_Assert(char const*, char const*, char const*, int) at Assert.cc:74 ======================================== SI stack: Depth: 0 Exec: 0x563a45575c60 Safe exec: 0 Pmode: ◊ ⊃/(1 2 3 4)(9 8 7 6) PC: 4 (5) RETURN_STATS Stat: ⊃/(1 2 3 4)(9 8 7 6) err_code: 0x50002 thrown at: Bif_F12_PARTITION_PICK.cc:646 e_msg_1: 'RANK ERROR' e_msg_2: ' ⊃/(1 2 3 4) (9 8 7 6)' e_msg_3: ' ^^' ============================================================================== terminate called after throwing an instance of 'ErrorCode' Abortado (imagem do núcleo gravada) (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 #1 0x00007f6322441546 in __GI_abort () at abort.c:79 #2 0x00007f63227db909 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007f63227e6f2a in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007f63227e5f99 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007f63227e66b6 in __gxx_personality_v0 () at /lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007f6322415934 in () at /lib/x86_64-linux-gnu/libgcc_s.so.1 #7 0x00007f6322415ff1 in _Unwind_RaiseException () at /lib/x86_64-linux-gnu/libgcc_s.so.1 #8 0x00007f63227e71db in __cxa_throw () at /lib/x86_64-linux-gnu/libstdc++.so.6 #9 0x0000557629796809 in do_Assert(char const*, char const*, char const*, int) (cond=cond@entry=0x5576299a36ab "get_pointer_cell_count() == 0", fun=fun@entry=0x5576299a366d "~Value", file=file@entry=0x5576299a3664 "Value.cc", line=line@entry=454) at Assert.cc:88 #10 0x0000557629948cb7 in Value::~Value() (this=0x55762bc82d00, __in_chrg=<optimized out>) at Value.cc:454 #11 0x0000557629948d59 in Value::~Value() (this=0x55762bc82d00, __in_chrg=<optimized out>) at Value.cc:468 #12 0x0000557629780451 in Value::decrement_owner_count(char const*) (loc=<synthetic pointer>, this=<optimized out>) at /home/hudson/Programas/gnu-apl/trunk/src/Value.hh:866 #13 Value_P::~Value_P() (this=0x7ffed4c0ab78, __in_chrg=<optimized out>) at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.icc:80 #14 0x00005576297677f5 in Bif_REDUCE::do_reduce(Shape const&, Shape3 const&, long, Function const*, Value_P, long) (shape_Z=<optimized out>, Z3=<optimized out>, nwise=<optimized out>, LO=<optimized out>, B=..., bm=<optimized out>) at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.icc:219 #15 0x00005576297d1269 in Bif_REDUCE::reduce(Token&, Value_P, unsigned int) (tok_LO=..., B=..., axis=<optimized out>) at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.icc:219 #16 0x00005576297d5375 in Bif_OPER1_REDUCE::eval_LB(Token&, Value_P) const (this=<optimized out>, LO=..., B=...) at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.icc:219 #17 0x0000557629802cea in DerivedFunction::eval_B(Value_P) const (this=0x55762bc83a10, B=...) at DerivedFunction.cc:153 #18 0x000055762984ef6d in Prefix::reduce_MISC_F_B_() (this=0x55762bc84210) at /home/hudson/Programas/gnu-apl/trunk/src/Value_P.icc:219 #19 0x0000557629851536 in Prefix::reduce_statements() (this=this@entry=0x55762bc84210) at Prefix.cc:721 #20 0x00005576298e9f6c in StateIndicator::run() (this=0x55762bc83a10) at StateIndicator.cc:357 #21 0x0000557629809b08 in Executable::execute_body() const (this=<optimized out>) at Executable.cc:261 #22 0x00005576297fa013 in Command::finish_context() () at Command.cc:341 #23 0x00005576297f9f51 in Command::process_line() () at Command.cc:103 #24 0x0000557629957de5 in Workspace::immediate_execution(bool) (exit_on_error=false) at Workspace.cc:236 --Type <RET> for more, q to quit, c to continue without paging-- #25 0x0000557629777585 in main(int, char const**) (argc=<optimized out>, argv=<optimized out>) at main.cc:633 (gdb) ----- Em 13 de Jun de 2022, em 10:53, Dr. Jürgen Sauermann mail@jürgen-sauermann.de escreveu: > Hi Hudson, > > thanks, fixed in SVN 1564 . > > Looks like the parallel locks were just too fine-grained. > > Best Regards, > Jürgen > > On 6/12/22 3:07 PM, [ mailto:hud...@hudsonlacerda.com | > hud...@hudsonlacerda.com > ] wrote: > >> Hi Jürgen, > >> Yes, that case is fixed now. > >> I have found another issue, that only happens if the number of cores is >1. > >> Best, >> Hudson > >> ----- Em 11 de Jun de 2022, em 13:43, Dr. Jürgen Sauermann >> mail@jürgen-sauermann.de escreveu: > >>> Hi Hudson, > >>> I believe I fixed 120× (?⍨120),¨⍳120. SVN 1562 . > >>> Best Regards, > >>> Jürgen > >>> On 6/9/22 5:17 PM, [ [ mailto:hud...@hudsonlacerda.com | >>> mailto:hud...@hudsonlacerda.com ] | [ mailto:hud...@hudsonlacerda.com | >>> hud...@hudsonlacerda.com ] ] wrote: > >>>> Hi Jürgen, > >>>> Many thanks. > >>>> Building GNU APL with default ./configure options work fine overall. >>>> I noticed that my config options (compiler version, core count, develop >>>> wanted, >>>> assert, etc.) >>>> are overriden by "make develop" or "make parallel[1]". > >>>> However, any attempt to use more than one core causes errors (like below). > >>>> I am not sure whether I should continue to try parallel processing and >>>> report >>>> such exceptions, >>>> since it is experimental in GNU APL, and I do not have expertise >>>> to significantly help you debugging the program in a different plataform. > >>>> Cheers, >>>> Hudson > >>>> PS. Executable scripts are working fine now. > >>>> ]log 26 >>>> Log facility 'details of error throwing ' is now ON >>>> ]log 25 >>>> Log facility 'more verbose errors ' is now ON >>>> ⎕syl[26;2]←2 >>>> 120× (?⍨120),¨⍳120 > >>>> throwing DOMAIN ERROR >>>> throwing DOMAIN ERROR at Cell.cc:156 >>>> at Cell.cc:156 > >>>> ---------------------------------------- >>>> -- Stack trace at Error.cc:198 >>>> ---------------------------------------- >>>> 0x7FFFF6A6F7FD __libc_start_main >>>> 0x555555618205 main >>>> 0x5555557A91F5 Workspace::immediate_execution(bool) >>>> 0x55555567F5DB Command::process_line() >>>> 0x55555567F678 Command::finish_context() >>>> 0x55555568C8D8 Executable::execute_body() const >>>> 0x5555557457CC StateIndicator::run() >>>> 0x5555556C8CC0 Prefix::reduce_statements() >>>> 0x5555556C27FC Prefix::reduce_A_F_B_() >>>> 0x555555744975 Bif_F12_TIMES::eval_AB(Value_P, Value_P) const >>>> 0x555555741730 ScalarFunction::eval_scalar_AB(Value const&, Value >>>> const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const >>>> 0x5555557406F1 ScalarFunction::do_scalar_AB(ErrorCode&, Value >>>> const&, >>>> Value const&, ErrorCode (Cell::*)(Cell*, Cell const*) const) const >>>> 0x55555573FDB2 ScalarFunction::PF_scalar_AB(Thread_context&) >>>> 0x555555662C47 >>>> 0x55555568C6B1 throw_apl_error(ErrorCode, char const*) >>>> ======================================== >>>> DOMAIN ERROR+ >>>> 120×(?⍨120),¨⍳120 >>>> ^ ^ >>>> total_lines in apl.lines: 752472 >>>> assembler lines in apl.lines: 169513 >>>> source line numbers found: 169513 > >>>> ---------------------------------------- >>>> -- Stack trace at Error.cc:198 >>>> ---------------------------------------- >>>> 0x2AAAA1B7DD80 >>>> 0x163799 Parallel::worker_main(void*) at Parallel.cc:381 >>>> 0x1EBDB2 ScalarFunction::PF_scalar_AB(Thread_context&) at Shape.hh:211 >>>> 0x10EC47 >>>> 0x1386B1 throw_apl_error(ErrorCode, char const*) at Error.cc:203 >>>> ======================================== >>>> DOMAIN ERROR+ >>>> 120×(?⍨120),¨⍳120 >>>> ^ ^ >>>> terminate called after throwing an instance of 'Error' > >>>> Thread 2 "apl" received signal SIGABRT, Aborted. >>>> [Switching to Thread 0x7ffff54f2640 (LWP 69811)] >>>> __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 >>>> 49 ../sysdeps/unix/sysv/linux/raise.c: Arquivo ou diretório inexistente. >>>> (gdb) >>>> (gdb) bt >>>> #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49 >>>> #1 0x00007ffff6a6e546 in __GI_abort () at abort.c:79 >>>> #2 0x00007ffff6e08909 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 >>>> #3 0x00007ffff6e13f2a in () at /lib/x86_64-linux-gnu/libstdc++.so.6 >>>> #4 0x00007ffff6e13f95 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 >>>> #5 0x00007ffff6e141e8 in () at /lib/x86_64-linux-gnu/libstdc++.so.6 >>>> #6 0x000055555568c724 in throw_apl_error(ErrorCode, char const*) >>>> (code=code@entry=E_DOMAIN_ERROR, loc=loc@entry=0x5555557c10b6 >>>> "Cell.cc:156") at >>>> Error.cc:213 >>>> #7 0x0000555555662c47 in Cell::get_pointer_value() const >>>> (this=0x555555950460) >>>> at Cell.cc:156 >>>> #8 0x000055555573fdb2 in ScalarFunction::PF_scalar_AB(Thread_context&) >>>> (tctx=...) at ScalarFunction.cc:655 >>>> #9 0x00005555556b7799 in Parallel::worker_main(void*) >>>> (arg=0x5555559582e0) at >>>> Parallel.cc:380 >>>> #10 0x00007ffff70d1d80 in start_thread (arg=0x7ffff54f2640) at >>>> pthread_create.c:481 >>>> #11 0x00007ffff6b4676f in clone () at > >>> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95