MDCSTest
This short (but useful!) program was created to support my research group's
recent purchase of an MATLAB Distributed Computing Server license. I wanted
to make sure the cluster was working properly and benchmark the improvements
it would provide over a single machine. Then it was used for evaluating the
cooling of the setup to ensure it would not overheat on long jobs.
%-------------------------------------------------------------------
% MDCSTest.m
% Flexible MATLAB benchmarking program for multiple workers, long jobs, and
% high memory tasks
%--------------------------------------------------------------------------
% [ttime] = MDCSTest(Aworkers,Bnumber,Csize)
%
% Inputs
% Aworkers : number of parallel tasks (larger for more parallel tasks, make
% sure it is at least as large as the number of workers
% available to use all CPU resources)
% Bnumber : size of the inner loop problem (larger for increased
% computation time per worker task
% Csize : size of the random matrices to be manipulated (larger for
% increased amount of memory per worker-task and increased
% computation time)
% Outputs
% ttime : total time required to complete the tasks (also printed)
%--------------------------------------------------------------------------
% Three examples:
% 1. Testing all your workers (local or MDCS cluster). My cluster named
% mycluster has 60 workers available so run the inner loop task once per
% worker. Useful for checking the success of your cluster and performance
% improvement over a single machine in the cluster (e.g. local).
%
% matlabpool mycluster
% ttime1 = MDCSTest(60,100,1000); % cluser time
% matlabpool close
% matlabpool local
% ttime2 = MDCSTest(60,100,1000); % local machine time
% ratio = ttime2/ttime1;
%
% 2. Stress test your setup (local or MDCS cluster). Large Bnumber value
% to ensure 100% CPU utilization for a long period of time. Useful for
% checking steady state cooling of your setup.
%
% ttime = MDCSTest(60,4000,1000);
%
% 3. High memory test on a single 12 worker machine.
%
% ttime = MDCSTest(12,100,10000);
%
% Make sure to open the pool first!
% WARNING! This could damage (overheat) your machine if not properly cooled
%--------------------------------------------------------------------------
% Csize helper (memory used for each worker-task, 8*Csize^2 Bytes)
% Csize | rand(Csize)
% 100 | 0.08 MB
% 1000 | 8.00 MB
% 10000 | 800.00 MB
%--------------------------------------------------------------------------
% Author: Daniel R. Herber, Graduate Student, University of Illinois at
% Urbana-Champaign
% Date: 11/19/2013
% 11/19/2013 v1.0 Initial release
%--------------------------------------------------------------------------
Cite As
Daniel R. Herber (2024). MDCSTest (https://www.mathworks.com/matlabcentral/fileexchange/44396-mdcstest), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
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.