<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Dear COIN-OR community,<br></div><br><div>I am pleased to announce the release of CMPL 1.10.0.<br></div><br><div><b>New main features and change log </b>(full description -><a href="http://www.coliop.org/changelog.html">http://www.coliop.org/changelog.html</a>)</div><div><br></div><div>CMPLServer and CmplGrid (1.3.0)</div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>CMPLGrid </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>A CMPLServer can now be used in a single server mode or in a grid mode.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>The grid mode extends the single server mode by coupling CMPLServers from several locations and at </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>least one coordinating CMPLGridScheduler to one "virtual CMPLServer" as a grid computing system. </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>For the client there does not appear any difference whether there is a connection to a single </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>CMPLServer or to a CMPLGrid. The client's model is to be connected with the same functionalities </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>as for a single CMPLServer to a CMPLGridScheduler which is responsible for the load balancing </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>within the CMPLGrid and the assignment of the model to one of the connected CMPLServers. </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>After this step the client is automatically connected to the chosen CMPLServer and the </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>model can be solved synchronously or asynchronously. </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>A CMPLGrid can be used for handling a huge amount of large scale optimisation problems. </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>An example can be a simulation in which each agent has to solve its own optimisation problem at </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>several times. An additional example for such a CMPLGrid application is an optimisation </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>web portal that provides a huge amount of optimisation problems.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Problem waiting queues for CMPLServer and CMPLGridScheduler</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>If a problem is connected to a CMPLServer or a CMPLGridScheduler and the number of running problems </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>including the model sent is greater than number of problems that can be solved </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>simultaneously (defined in cmplServer.opt) it does not make sense to cancel the problem. </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>Especially in case of an iterating solving process with a couple of depending problems </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>it is the better way to refer the supernumerary problems automatically to the problem waiting queue.</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>For the single server mode the problem queue handling is organised by the CMPLServer </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>whilst in the grid mode the CMPLGridScheduler(s) is(are) responsible for it. In both modes </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>a problem stored in the problem waiting queue has to wait until an empty solving </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>slot is available or the maximum queuing time is reached.</div><div><br></div><div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Changes in CMPLServer script:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>Usage: cmplServer <command> [<port>] [-showLog] </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>command:</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> -start<span class="Apple-tab-span" style="white-space:pre">                        </span>- starts as single CMPLServer </div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> -startInGrid<span class="Apple-tab-span" style="white-space:pre">                </span>- starts CMPLServer and connects to CMPLGrid</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> -startScheduler <span class="Apple-tab-span" style="white-space:pre">        </span>- starts as CMPLGridScheduler</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> -stop <span class="Apple-tab-span" style="white-space:pre">                </span>- stops CMPLServer or CMPLGridScheduler </div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> -status <span class="Apple-tab-span" style="white-space:pre">                </span>- returns the status of the CMPLServer or CMPLGridScheduler </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>port <span class="Apple-tab-span" style="white-space:pre">        </span> <span class="Apple-tab-span" style="white-space:pre">                        </span>- defines CMPLServer's or CMPLGridScheduler's port </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>-showLog <span class="Apple-tab-span" style="white-space:pre">                </span>- shows the CMPLServer or CMPLGridScheduler log file (only Mac and Linux)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>New arguments and changes in cmplServer.opt:</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>maxProblems = <x><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Defines how many problems can be carried out simultaneously. </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>If more problems than maxProblems are connected with the </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>CMPLServer the supernumerary problems are assigned to the problem waiting queue<span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                                                                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>maxServerTries = <x></div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Since CMPLGridSchedulers and CMPLServers have to call server functions mutually </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>it is necessary to ensure a high availability and failover by repeating failed CMPLServer </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>calls whereby the number of tries are specified by the parameter maxServerTries.</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>serviceIntervall = <x><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Time in seconds between to iterations of the CMPLServer service thread</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>schedulerServiceIntervall = <x> </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Time in seconds between to iterations of the CMPLGridScheduler service thread</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>performanceIndex = <x><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Assuming heterogeneous hardware for the CMPLServers in a CMPLGrid it is necessary </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>for a reasonable load balancing to identify several performance levels of the invoked </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>CMPLServers. This can be done by the parameter performanceIndex that influences the </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>load balancing function directly. </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>solvers = <solverName1> [<solverName2> ...] </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Specifies which solvers in the set of the installed solvers can be provided by the CMPLServer. </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>cmplGridScheduler = <url> <maxproblems></div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Specifies the CMPLGridScheduler to which the CMPLServer is to be connected. </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>The first argument is the URL of the scheduler. The second parameter defines </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>the maximum number of problems that the CMPLServer provides to this CMPLGridScheduler. </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>If a CMPLServer should be connected to more than one scheduler one entry per </div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>CMPLGridScheduler is required. <span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>pyCMPL (v.1.3.0) and jCMPL (v.1.2.0) </div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>For both APIs the CMPLServer client is expanded for the new CMPLGrid mode and the problem waiting queue.</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span>CMPL (1.10.0)</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>New command line arguments due to the new CMPLServer modes:</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>-maxServerTries <x> : maximum number of tries of failed CmplServer calls</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>-maxQueuingTime <x> : maximum time in <x> seconds that a problem waits in a CmplServer queue</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>Cmpl script for Mac, Linux and Windows - some minor changes due to the new CMPLServer modes</div><div><span class="Apple-tab-span" style="white-space:pre">                </span></div><div><br></div></div></div><div><div><b>Manual</b><br></div><div>The Manual is available at <a href="http://www.coliop.org/_download/CMPL.pdf">http://www.coliop.org/_download/CMPL.pdf</a>.</div></div><div><br></div><div><div><b>Binaries</b><br></div><div>The Binaries are available at <a href="http://www.coliop.org/download.html">www.coliop.org/download.html</a>.<br></div><br><div><b>Source code</b><br></div><div>can be obtained by checking out the source code using a subversion client.<br></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span> svn co <a href="https://projects.coin-or.org/svn/Cmpl/releases/1.10.0">https://projects.coin-or.org/svn/Cmpl/releases/1.10.0</a> CMPL<br></div><br><div><b>Mailing list and support<br></b></div><div>If you are interested to get a direct support, to post bugs or to communicate wishes then please use our CMPL mailing list hosted at COIN-OR <a href="http://list.coin-or.org/mailman/listinfo/Cmpl">http://list.coin-or.org/mailman/listinfo/Cmpl</a><br></div><br><div>For more information please visit <a href="http://www.coliop.org/">www.coliop.org</a> and <a href="http://projects.coin-or.org/Cmpl">projects.coin-or.org/Cmpl</a>.<br></div><br><div><br></div><div>Cheers<br></div><br><br><div>Mike Steglich</div></div><div><br></div><div><br></div><div><br></div>_______________________________________________<br>Cmpl mailing list<br><a href="mailto:Cmpl@list.coin-or.org">Cmpl@list.coin-or.org</a><br><a href="http://list.coin-or.org/mailman/listinfo/cmpl">http://list.coin-or.org/mailman/listinfo/cmpl</a></body></html>