Parfor problem --- "Array construction from ByteBuffer Threw an exception"
    30 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Jiashun Wu
 el 20 de Jul. de 2021
  
Hi! I run my code using the 'parfor' function BUT receive an error message:
- Array construction from ByteBuffer Threw an exception.
I am wondering what does this message mean in simple language? Any simple example could be great!
Thanks for your help!
6 comentarios
  Walter Roberson
      
      
 el 21 de Jul. de 2021
				"I want to separate table records into different groups (in cells) based on the value of a variable (e.g., "varname_a"),"
G = findgroups(varname_a) ;
Tablename_cell = splitapply(@(x) {x}, Tablensme, G);
Respuesta aceptada
  Alvaro
    
 el 1 de Dic. de 2022
        
      Editada: Alvaro
    
 el 1 de Dic. de 2022
  
      The following code runs with no issues in my version of MATLAB R2022b.
load patients
% Create test table
Tablename = table(Gender(1:5), Height(1:5), 'VariableNames', {'Gender', 'Height'});
clearvars -except Tablename
Tablename_Cell = {};
K = table(unique(Tablename.Gender), ...
    'VariableNames', {'Gender'});
A_number = 2;
parfor i = 1:A_number
    Tablename_Cell{i} = Tablename(find(strcmp(Tablename.Gender, K.Gender(i))),:);
    % Some other codes afterwards --- But even just keep the code
    %   above would receive the error message "Array construction
    %   from ByteBuffer Threw an exception."
end
I did switch from using == to strcmp since I got the error 
Operator '==' is not supported for operands of type 'cell'.
but I believe everything else is the same. Consider trying Bowei's suggestion of using a for loop with a dummy table to determine whether parfor is the cause of the issue. 
I would also take another look at the documentation that you linked
Functions like splitapply already include parallelization as part of their extended capabilities.
https://www.mathworks.com/help/matlab/ref/splitapply.html#refsect-extended-capabilities
0 comentarios
Más respuestas (1)
  Bowei Li
 el 18 de Ag. de 2022
        Hi, I run into this error when using parfor as well. I found there was a undefined variable in my parfor loop. To check it, you may change your parfor to for, run it, and see what it says. 
0 comentarios
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




