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
%--------------------------------------------------------------------------
引用格式
Daniel R. Herber (2024). MDCSTest (https://www.mathworks.com/matlabcentral/fileexchange/44396-mdcstest), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!