![]() |
|
November 2008Built-In Support for Parallel ComputingAs the complexity of modern systems and algorithms increase, the need to thoroughly test, analyse, verify and validate as well as have an optimal design in the shorter time frames is called for. The MathWorks have a number of tools that are essential to complete these tasks successfully, and here we will focus on ways to improve the computation time for testing and optimisation. Running tests and analysing results for system verification and validationAs part of any design process, test and analysis is an essential step. One may want to run tests to verify and validate the design, or run a Monte Carlo simulation to see what the effect of unknown parameters will be on the overall performance. In short, the more we know about the system up front, the lower the risk and we are able to handle unforeseen issues quicker. Design OptimizationThe Optimization Toolbox , Genetic Algorithm and Direct Search Toolbox and Simulink Response Optimization can now access built-in parallel functionality through the Parallel Computing Toolbox.
For more information about using parallel computing for time-domain response optimization, see Speeding Up Response Optimization Using Parallel Computing in the Simulink Response Optimization documentation. Example: Running a Monte Carlo Analysis on an Image Processing AlgorithmFor complex designs it is often the case that the gold standard (reference design) will be different to the hardware design. This is because when the reference design is built little consideration given to hardware implementation since the main focus at this level is to see if the algorithm meets the project requirement.
This particular sweep over the two parameters results in 108 iterations.
Sample test report showing a failed and passed iteration. Click here for a larger image.
Final test report. Click here for a larger image. Parallel Computing Speeds up Test TimesThis test was run in serial on a single machine, and then using the distributed computing cluster in our offices. The serial version took 98 seconds on the serial machine. This test time was reduced to 27 seconds using only 5 workers. By utilising more workers, the time could have been reduced even further. Again, the time taken to distribute the task over the cluster includes communication of the entire problem to the cluster, running the sub-tasks on each cluster, and gathering the results. Most importantly (for the user) the process consisted of defining a few options in the SystemTest user interface, to tell SystemTest to distribute the task, which cluster configuration to use, and how many tasks to provide to each worker as a single “job”. More InformationFor more information about how SystemTest can use Parallel Computing Toolbox to speed up testing, see the online documentation (MathWorks Account login required).
|
|
|
|
|