Empty matrix being returned from server cluster in the event of an error in code. Is there a way to pass error information to client cluster

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Empty matrix being returned from server cluster in the event of an error in code. Is there a way to pass error information to client cluster

Prasad K
Hi all,

If a program running on server cluster has an error, an empty matrix is
being returned by Octave without any clue to the type of error or the
details of error location.

FYI, we are providing a test code (attached archive error_example.zip
containing files main.m and adder.m function) to replicate the issue for
your reference. The main.m file calls an adder function in 3 different ways
(i.e. Normal function call, Parallel over local machine and Parallel over
server cluster machine)

When the main program is run it executes without triggering any error and
results in same output in all 3 cases. However, if the initialization "err =
0;" in adder function is commented, then
 1) normal function call shows the exact error that /err /is undefined and
its location in code
 2) parallel over local machine shows warning message that an error exists,
but does not clarify the type of error or error location (to see this error
message, please also comment normal function call that generates output1)
 3) parallel over server cluster returns an empty matrix without any error
indication (to see this error message, please also comment normal function
and parcellfun calls that generate output1 and output2)

Could you please suggest if there is a way to find the location of error in
the last case and report it to client cluster? When such a case occurs in
large program, it may be difficult to identify the error that caused the
return of empty matrix. Hence, we are seeking your inputs.

Error logs:

1) Normal function call; Error log with the initialization "err = 0;"
commented in adder function:
"error: 'err' undefined near line 4 column 10
 error: called from
    adder at line 4 column 4
    main at line 11 column 15"

2) Parallel over local machine with parcellfun; Error log with the
initialization "err = 0;" commented in adder function and normal function
call also commented:
"parcellfun: 0/10 jobs done
 warning: parcellfun: unhandled error in subprocess 1
 warning: called from
    parcellfun at line 294 column 9
    main at line 19 column 9
 parcellfun:1/10 jobs donewarning: parcellfun: unhandled error in subprocess
3
 warning: called from
    parcellfun at line 294 column 9
    main at line 19 column 9

 warning: parcellfun: unhandled error in subprocess 2
 warning: called from
    parcellfun at line 294 column 9
    main at line 19 column 9"

3) Parallel over server cluster with netcellfun; Error log with the
initialization "err = 0;" commented in adder function. normal and parcellfun
function calls also commented:
" output3 =
{
  [1,1] = [](0x0)
  [2,1] = [](0x0)
  [3,1] = [](0x0)
  [4,1] = [](0x0)
  [5,1] = [](0x0)
  [6,1] = [](0x0)
  [7,1] = [](0x0)
  [8,1] = [](0x0)
  [9,1] = [](0x0)
  [10,1] = [](0x0)
} "

Best regards,
Prasad

error_example.zip
<http://octave.1599824.n4.nabble.com/file/t372789/error_example.zip>  




--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html