Too many output arguments while launching workers with parfeval
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Quant
am 18 Nov. 2021
Kommentiert: Quant
am 18 Nov. 2021
I try to write and read in parallel to/from a hardware device (under Linux) for the purpose of testing the device and it must happen infinitely until instructed to stop.
script:
write_file='testdata';
read_file='result';
pattern=int16([ 0x0102, 0x0304, 0x0506, 0x0708; %test pattern is chosen so individual bytes could be identified
0x090a, 0x0b0c, 0x0d0e, 0x0f10;
0x1112, 0x1314, 0x1516, 0x1718;
0x191a, 0x1b1c, 0x1d1e, 0x1f20]);
repetition=128;
testdata=repmat(pattern, 1, 8192*repetition); %replicate for 32768* repetition test data points
read_dim=[4, 32768*repetition];
write_thread=parfeval(@writeXillybus, 2, write_file, testdata);
read_thread=parfeval(@readXillybus, 2, read_file, read_dim);
pause %let the workers run indefinitely
cancel(write_thread);
cancel(read_thread);
functions:
function out=writeXillybus(device, testdata)
test_fid=fopen(['/dev/xillybus_', device], 'w');%open device file
cleanup = onCleanup(@() fclose(test_fid));
while(true)
out=fwrite(test_fid, testdata,'int16');
end
end
function out=readXillybus(device, format)
data_fid=fopen(['/dev/xillybus_', device], 'r');
cleanup = onCleanup(@() fclose(data_fid));
while(true)
out=fread(data_fid, format, '*int16');
end
end
However the workers crash with future reporting. 'Too many output arguments.' I have trouble making sense out of it, because it rises deep from Matlab internals: remote cause shows line 39 of toolbox/parallel/cluster/+parallel/+internal/+queue/evaluateRequest.m as origin.
Anyway, isn't parfeval supposed to be able to handle arbitrary number of outputs?
0 Kommentare
Akzeptierte Antwort
Yongjian Feng
am 18 Nov. 2021
According to the help of parfeval, the second input argument is NUMOUT. You gave 2?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Asynchronous Parallel Programming 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!