Moritz Hesse asked . 2022-04-11

Does predict function work in parallel when predicting k-nearest neighbour?

Hi ,
 
I have a k-nearest neighbour classifier which I have trained with fitcknn. I am wondering, when predicting labels on the model using predicit does it work in parallel?
 
I have tested using predict in a for loop and parfor loop. The simple for loop performs a bit faster which makes me think there is some optimisation and built in parallelisation that the predict function is taking advantage of. However, the documentation makes no reference to this, and I thought MATLAB always runs in a single thread unless specifically using a parallel pool? In both cases, I am supplying the predict function with a vector of 1000 rows of test data at a time. Although my test dataset is a million rows, I am doing this so I can get see progress while the program is making predictions.
 
So basically:
  1. Does the predict function use parallisation on k-nn models?
  2. Any other tips to increase test time when using a large k-nn model?

AI, Data Science, and Statistics , Deep Learning Toolbox , Deep Learning in Parallel and in the

Expert Answer

Neeta Dsouza answered . 2024-03-23 09:50:56

Perhaps you are mistaken. Most high level tools in MATLAB do not directly, intentionally use parallel processing, splitting the problem up. It is the lower level computations that do so, where you see the gains. And you can check when that is happening. It is quite easy to create a situation where MATLAB will use all the CPU power you have available. For example, just form a matrix multiply between two very large matrices. MATLAB passes this operation to the BLAS, lower level routines that can intelligently use multiple cores to do the work more efficiently. So if you watch a CPU monitor when that happens, suddenly your computer will get very busy. But it was not really MATLAB that did the parallel split, it was done more deeply under the hood.
 
Another case where I frequently see this happen is in a large computation where I might want to do a powermod operation, where I choose to compute mod(b^n,p) for huge values of n, and for many millions of numbers in the vector p. (Did you know there are roughly 51 million primes less than 1e9? I do know that.) My system fan kicks on immediately when I do these computations, with all CPUs running flat out. But again, it is not a high level MATLAB code that will decide when to parallelize code, but low level routines that see a process that can be split efficiently when that makes sense.
 
These computations are only split when the problem becomes sufficiently large, of course. For small problems the overhead of the parallelization becomes more effort than the gain would be worth. Add 3 or 4 numbers together, and one core is useful, and done in the blink of a computational eye. Add a billion numbers together, and there is real gain to be found in splitting the problem up.
 
There are also huge problems where no simple parallelization seems to be available. For example, perform a VERY large symbolic computation. Much of the time this is not so easily broken up. So I can give examples where my computer might be seen to be running flat out, but in only one thread for as long as hours at a time, so only one core is being used for the entire operation. And of course, any code where there would be lots of branches will screw up parallelized processes, which absolutely thrive on feeding the long lists of numbers through adds or multiplies.


Not satisfied with the answer ?? ASK NOW

Frequently Asked Questions

MATLAB offers tools for real-time AI applications, including Simulink for modeling and simulation. It can be used for developing algorithms and control systems for autonomous vehicles, robots, and other real-time AI systems.

MATLAB Online™ provides access to MATLAB® from your web browser. With MATLAB Online, your files are stored on MATLAB Drive™ and are available wherever you go. MATLAB Drive Connector synchronizes your files between your computers and MATLAB Online, providing offline access and eliminating the need to manually upload or download files. You can also run your files from the convenience of your smartphone or tablet by connecting to MathWorks® Cloud through the MATLAB Mobile™ app.

Yes, MATLAB provides tools and frameworks for deep learning, including the Deep Learning Toolbox. You can use MATLAB for tasks like building and training neural networks, image classification, and natural language processing.

MATLAB and Python are both popular choices for AI development. MATLAB is known for its ease of use in mathematical computations and its extensive toolbox for AI and machine learning. Python, on the other hand, has a vast ecosystem of libraries like TensorFlow and PyTorch. The choice depends on your preferences and project requirements.

You can find support, discussion forums, and a community of MATLAB users on the MATLAB website, Matlansolutions forums, and other AI-related online communities. Remember that MATLAB's capabilities in AI and machine learning continue to evolve, so staying updated with the latest features and resources is essential for effective AI development using MATLAB.

Without any hesitation the answer to this question is NO. The service we offer is 100% legal, legitimate and won't make you a cheater. Read and discover exactly what an essay writing service is and how when used correctly, is a valuable teaching aid and no more akin to cheating than a tutor's 'model essay' or the many published essay guides available from your local book shop. You should use the work as a reference and should not hand over the exact copy of it.

Matlabsolutions.com provides guaranteed satisfaction with a commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been empanelled after extensive research and quality check.

Matlabsolutions.com provides undivided attention to each Matlab assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work done at the best price in industry.