Is it not possible to call a Matlab .DLL from .NET in parallel?
1 view (last 30 days)
Show older comments
I have a compiled Matlab DLL called "GeneticAlgorithmOptimizer.dll" with a class/method "gaOptimizer.optimize()" that uses said algorithm to generate a solution based on some input data and parameters. It takes about an hour to generate the solution.
I would like to call it in parallel through a .NET application like so:
List<bool> boolList= new List<bool> { false, true };
Dictionary<bool, double[]> matlabSolutions = new Dictionary<bool, double[]>();
Parallel.ForEach(boolValueList, (boolValue) =>
{
var inputData = dataGetter.getData(boolValue);
var parameters = parametersGetter.getParameters(boolData);
var opt = new gaOptimizer();
% THIS IS WHERE THE MATLAB DLL IS CALLED
result = opt.optimize(inputData, parameters);
lock (matlabSolutionsBothPools)
{
matlabSolutions.Add(boolValue, result);
}
});
However, the calls to Matlab end up happening in sequence rather in parallel. The first one has to complete before the second one starts.
Is this a limitation of Matlab? Does anyone know a way around this?
0 Comments
Answers (0)
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!