Re: parallel NMinimize[]
- To: mathgroup at smc.vnet.net
- Subject: [mg50527] Re: parallel NMinimize[]
- From: "Michal Kvasnicka" <michal.kvasnicka at No_s_Pam.quick.cz>
- Date: Thu, 9 Sep 2004 05:17:50 -0400 (EDT)
- Organization: Czech Technical University
- References: <chmova$a4j$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
From my point of view there are not simple straight way how to use function NMinimize directly on a cluster of PCs. There is only one way how to solve your optimization problem on the grid. You must completely rewrite differential evolution algorithm to the distributed parallel version. The Parallel Toolkit may be good starting point for you. This task is not so difficult, because the differential evolution is very simple optimization algorithm. Moreover, differential evolution is very suitable for parallelization via distributed evaluation of the optimized function f[x] during each population. For detailed information regarding differential evolution you can visit: http://www.icsi.berkeley.edu/~storn/code.html Hope this help, Michal Kvasnicka P.S. On the other hand try to contact Dan Lichtblau from Wolfram. The reformulation of the NMinimize function to the distributed parallel version via Parallel Toolkit will be really challenging task. "robert" <lupos at cheerful.com> pí¹e v diskusním pøíspìvku news:chmova$a4j$1 at smc.vnet.net... > dear all, > > I am trying to use NMinimize[f[x],x] from a windows based mathematica > to minimize the function f[x] which evaluates via RUN[] and rsh remote > shell > commands on a linux cluster. > this works fine so far. > > Now I would like to exploit the parallel capabilities of the linux > cluster. > > usually NMinimize[] calls f[x] for a single value x at one step. > the nature of NMinimize[f[x],x, Method->"DifferentialEvolution"] as I > understand it causes a whole population of x values to be evaluated > before > minimization progresses. > In order to profit from the cluster I would need NMinimize[] to > evaluate > f[] for the whole populatuion in a single call. > e.g. f[{x1,x2,x3,x4,....xn}] with n beeing the size of the actual > popolation such that NMinimize[] would call the function to be > minimized with a wole list of x values instead of calling it with just > a single value. this way the cluster could evaluate all the (time > expense) function calls in parallel and return a list of results > {f[x1],f[x2],f[x3], ... f[xn]} to NMinimize[] > > is there any chance to achieve this ? > > does anyone know what for the following "DifferentialEvolution" > options are used ? > > "InitialPoints" set of initial points > "SearchPoints" size of the population used for evolution > > note i dont ask for any parallel aktion of mathematica itself. > > thanks robert >