Multicore - Parallel processing on multiple cores
This package provides parallel processing on multiple cores on a single machine or on multiple machines that have access to a common directory.
If you have multiple function calls that are independent of each other, and you can reformulate your code as
for k = 1:numel(parameterCell)
resultCell{k} = myfun(parameterCell{k});
end
then, replacing the loop by
resultCell = startmulticoremaster(@myfun, parameterCell);
allows you to evaluate your loop in parallel. All you need to do is to start as many additional Matlab sessions/processes as you want slaves to work, and to run
startmulticoreslave
in those additional Matlab sessions.
Everything is programmed in plain and platform-independent Matlab - no toolboxes are used, no compilation of mex-files is necessary.
Please get started with 1. the documentation in file multicore.html, 2. the help lines of function startmulticoremaster.m and 3. the demo function multicoredemo.m.
Discuss with other users here: http://groups.yahoo.com/group/multicore_for_matlab
I have spent many hours to develop this package. If you would like to let me know that you appreciate my work, you can do so by leaving a donation: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GPUZTN4K63NRY
Keywords: Parallel processing, distributed computing, multiple cores.
Cite As
Markus Buehren (2024). Multicore - Parallel processing on multiple cores (https://www.mathworks.com/matlabcentral/fileexchange/13775-multicore-parallel-processing-on-multiple-cores), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired: gapolyfitn, Batch Job
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.39.0.0 | Performance improvement especially for projects using many slave processes. |
||
1.37.0.0 | Added parfor-loop to demo. |
||
1.35.0.0 | Performance improvement - especially when using a large number of slaves |
||
1.33.0.0 | New features:
|
||
1.32.0.0 | Bugfix: calling startmulticoremaster.m without settings works now. |
||
1.31.0.0 | Typo fixed. |
||
1.30.0.0 | Typo fixed. |
||
1.29.0.0 | Overhead resulting from expanding the function handle cell reduced. |
||
1.28.0.0 | Description changed again. |
||
1.27.0.0 | Links in help lines corrected. |
||
1.26.0.0 | Description modified to make it more concise. |
||
1.24.0.0 | Only E-mail changed in html document. |
||
1.23.0.0 | Bugfix. |
||
1.22.0.0 | Small changes to documentation and gethostname.m |
||
1.21.0.0 | Structure being passed to post-processing function changed (still undocumented feature) |
||
1.20.0.0 | Estimation of time left changed, post-processing function introduced. |
||
1.19.0.0 | Bug fixed. |
||
1.18.0.0 | File displayerrorstruct.m was missing. |
||
1.16.0.0 | Call to "clear functions" now in master and slaves, bug fixed. |
||
1.15.0.0 | In each multicore run, "clear functions" is now called once to ensure that changes to m-files take effect. |
||
1.14.0.0 | Two bugs fixed, one regarding the waitbar, one regarding the semaphore mechanism. |
||
1.13.0.0 | Using system-dependent file separators in paths again. Waitbar shows progress during parameter file generation now. |
||
1.12.0.0 | Added estimation of time left in waitbar. |
||
1.11.0.0 | Added an optional waitbar. |
||
1.10.0.0 | If a slave is killed during working on a job, the master will now generate the parameter file of that job again instead of working on the file himself. This will increase performance in certain situations. |
||
1.9.0.0 | File regexptokens.m added.
|
||
1.8.0.0 | Another change to the semaphore mechanism. |
||
1.7.0.0 | I have nearly re-written both master and slave in order to make the package even more robust and to reduce the overhead for inter-process communication. |
||
1.5.0.0 | Introduced parameter EVALSATONCE which causes the multicore package to do several function evaluations after each other before saving/loading and thus reducing the communication overhead. Demo function MULTICOREDEMO heavily commented. |
||
1.4.0.0 | Semaphore mechanism improved. |
||
1.3.0.0 | Forgot to include file chompsep.m |
||
1.2.0.0 | Semaphore stuff improved. |
||
1.1.0.0 | Subfunction datenum2 was not needed. |
||
1.0.0.0 | A subfunction that is only executed on certain systems was missing. |