libprima / prima

PRIMA is a package for solving general nonlinear optimization problems without using derivatives. It provides the reference implementation for Powell's derivative-free optimization methods, i.e., COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA. PRIMA means Reference Implementation for Powell's methods with Modernization and Amelioration, P for Powell.
http://libprima.net
BSD 3-Clause "New" or "Revised" License
304 stars 40 forks source link

MATLAB parallel test fails from time to time on macOS-12 with R2023a #96

Open zaikunzhang opened 1 year ago

zaikunzhang commented 1 year ago

MATLAB parallel test fails from time to time with the following message. Example: https://github.com/zequipe/prima/actions/runs/6588753377/job/17901744851

  [Warning: A worker aborted during execution of the parfor loop. The parfor loop
  will now run again on the remaining workers.]
  [> In parallel.internal.parfor/ParforEngine/handleIntervalErrorResult (line 297)
  In parallel.internal.parfor/ParforEngine/getCompleteIntervals (line 240)
  In parallel_function>distributed_execution (line 746)
  In parallel_function (line 578)
  In parallel (line 77)
  In command_39b82181_5879_4ca7_9e81_bc8161597223 (line 30)]
  Starting parallel pool (parpool) using the 'Processes' profile ...
  Connected to parallel pool with 3 workers.
  Parallel pool using the 'Processes' profile is shutting down.

Up to 20231008, this seems to happen only on macOS-12 with MATLAB R2023a. It has not been observed on macOS-13.

To be tested on MATLAB R2023b, which is not available yet.

zaikunzhang commented 12 months ago

Sometimes the following message is printed. Example: https://github.com/zequipe/prima/actions/runs/6588753377/job/17901744579

  {Error using parallel.internal.parfor.ParforEngine/rebuildParforController
  The parallel pool that parfor was using has shut down. To start a new parallel
  pool, run your parfor code again or use parpool.

  Error in parallel.internal.parfor.ParforEngine/handleIntervalErrorResult (line 310)
                  obj.rebuildParforController();

  Error in parallel.internal.parfor.ParforEngine/getCompleteIntervals (line 240)
                              [r, err] = obj.handleIntervalErrorResult(r);

  Error in parallel (line 74)
      parfor i = 1:np

  Error in command_f49cc08c_f12a_42ee_b703_42e4a35c544c (line 19)
    parallel('bobyqa', options);
  } 
  Parallel pool using the 'Processes' profile is shutting down.
  {This parallel pool has been shut down.

  Caused by:
      The parallel pool shut down because the client lost connection to worker 3.
      Check the network connection or restart the parallel pool with 'parpool'.
  } 
  exit status 1
Error: Error: The process '/Users/runner/work/_actions/matlab-actions/run-command/v1.2.1/dist/bin/maci64/run-matlab-command' failed with exit code 1
zaikunzhang commented 11 months ago

A similar failure happened to the MATLAB parallel test: https://github.com/zequipe/prima/actions/runs/6548360464/job/17782903552#step:9:1336