Navigation

Operators and Keywords

Function List:

C++ API

STARTMULTICOREMASTER  Start multi-core processing master process.
   RESULTCELL = STARTMULTICOREMASTER(FHANDLE, PARAMETERCELL, DIRNAME)
   starts a multi-core processing master process. The function specified
   by the given function handle is evaluated with the parameters saved in
   each cell of PARAMETERCELL. Each cell may include parameters in any
   form or another cell array which is expanded to an argument list using
   the {:} notation to pass multiple input arguments. The outputs of the
   function are returned in cell array RESULTCELL of the same size as
   PARAMETERCELL. Only the first output argument of the function is
   returned. If you need to get multiple outputs, write a small adapter
   function which puts the outputs of your function into a cell array.

   To make use of multiple cores/machines, function STARTMULTICOREMASTER
   saves files with the function handle and the parameters to the given
   directory DIRNAME. These files are loaded by function
   STARTMULTICORESLAVE running on other Matlab processes which have access
   to the same directory. The slave processes evaluate the given function
   with the saved parameters and save the result in another file into the
   same directory. The results are later collected by the master process.

		RESULTCELL = STARTMULTICOREMASTER(FHANDLE, PARAMETERCELL, DIRNAME,
		MAXMASTEREVALUATIONS) restricts the number of function evaluations done
		by the master process to MAXMASTEREVALUATIONS. After the given number
		of evaluations is reached, the master process waits for other processes
		to complete instead of working down the list of parameter sets itself.
		Use this value if the overall number of function evaluations is quite
		small or the duration of a single evaluation is very long. However,
		note that if the slave process is interrupted, the master process will
		never terminate the computations!

   Note that you can make use of multiple cores on a single machine or on
   different machines with a commonly accessible directory/network share
   or a combination of both.

   RESULTCELL = STARTMULTICOREMASTER(FHANDLE, PARAMETERCELL) uses the
   directory /multicorefiles, where  is the directory
   returned by function TEMPDIR2. Use this form if you are running on
   multiple cores on a single machine.

   RESULTCELL = STARTMULTICOREMASTER(FHANDLECELL, PARAMETERCELL, ...),
   with a cell array FHANDLECELL including function handles, allows to
   evaluate different functions.

   Example: If you have your parameters saved in parameter cell
   PARAMETERCELL, the for-loop

   	for k=1:numel(PARAMETERCELL)
   		RESULTCELL{k} = FHANDLE(PARAMETERCELL{k});
   	end

   which you would run in a single process can be run in parallel on
   different cores/machines using STARTMULTICOREMASTER and
   STARTMULTICORESLAVE. Run

   	RESULTCELL = STARTMULTICOREMASTER(FHANDLE, PARAMETERCELL, DIRNAME)

   in one Matlab process and

   	STARTMULTICORESLAVE(DIRNAME)

   in other Matlab processes.

		Markus Buehren
		Last modified 13.11.2007

   See also STARTMULTICORESLAVE, FUNCTION_HANDLE.