Matlab on AWS doesn't seem to recognize (@)Class-folders

2 Ansichten (letzte 30 Tage)
Sander Groeneweg
Sander Groeneweg am 17 Okt. 2018
Beantwortet: Oli_ee am 18 Dez. 2022
Hi,
I recently started working with the Parallel Computing Toolbox and now I want to extend the performance by using the AmazonWebServices. For simple scripts this works fine already.
Now I want to segment some neuroimaging data using the SPM12-toolbox. Parallel-Computing on my local computer doesn't cause any problems, but when use AWS, I get the following Error:
"An UndefinedFunction error was thrown on the workers for 'list'. This might be because the file containing 'list' is not accessible on the workers. Use addAttachedFiles(pool, files) to specify the required files to be attached. For more information see the documentation for 'parallel.Pool/addAttachedFiles'.
... Caused by: Undefined function 'list' for input arguments of type 'cell'."
The function "list" is located in a class folder "@foldername". When I copy "list" into a path folder, "list" is recognized and I get an error for the function "match", which is located in another class folder. However, when I put every function into a single path folder SPM12 crashes (they must have had a reason to do this). So that doesn't seem to be a solution.
addAttachedFiles(gcp,{'C:\...\@foldername\list.m'}) doesn't add "list" to AWS either.
Does anybody know a workaround for this problem?
Best regards, Sander

Antworten (2)

Philip Borghesani
Philip Borghesani am 17 Okt. 2018
You must add the complete @foldername folder. The clue here is Caused by: Undefined function 'list' for input arguments of type 'cell'." Your class was not correctly copied to the worker machines (most likely because the constructor was not found) and was converted to a structure.
  2 Kommentare
Sander Groeneweg
Sander Groeneweg am 18 Okt. 2018
Bearbeitet: Sander Groeneweg am 18 Okt. 2018
Unfortunately I still get the same error message:
"Error using cfg_repeat/list (line 112) An UndefinedFunction error was thrown on the workers for 'list'. This might be because the file containing 'list' is not accessible on the workers. Use addAttachedFiles(pool, files) to specify the required files to be attached. For more information see the documentation for 'parallel.Pool/addAttachedFiles'.
Caused by: Undefined function 'list' for input arguments of type 'cell'."
As you recommended I added the @foldernames via
addAttachedFiles(gcp,{'C:\...\@foldername'})
resulting in gcp:
Attached files for parallel pool:
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_branch
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_choice
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_const
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_dep
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_entry
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_exbranch
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_files
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_intree
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_inv_out
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_item
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_leaf
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_mchoice
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_menu
C:\Program Files\MATLAB\spm12\spm12\matlabbatch\@cfg_repeat
Oli_ee
Oli_ee am 18 Dez. 2022
Hi, Philip, have you got any solution for this problem. I got the same error message today, and if you have solved the problem, it will be greatly apprecitated that you may share your solution. Thankyou.

Melden Sie sich an, um zu kommentieren.


Oli_ee
Oli_ee am 18 Dez. 2022
I occurently found that if I shut downd the parralle pool first, and then run the draft, it was ok.

Kategorien

Mehr zu Parallel Computing Fundamentals finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by