<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&nbsp;</b>(full description -&gt;<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&nbsp;</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&nbsp;</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.&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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.&nbsp;</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&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>model can be solved synchronously or asynchronously.&nbsp;</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.&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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.&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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&nbsp;</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 &lt;command&gt; &nbsp;[&lt;port&gt;] [-showLog]&nbsp;</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> &nbsp; -start<span class="Apple-tab-span" style="white-space:pre">                        </span>- starts as single CMPLServer&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; -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> &nbsp; -startScheduler &nbsp;<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> &nbsp; -stop &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>-&nbsp;stops CMPLServer or CMPLGridScheduler&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span> &nbsp; -status &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="Apple-tab-span" style="white-space:pre">                </span>- returns the status of the CMPLServer or CMPLGridScheduler&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>port &nbsp; &nbsp; &nbsp;<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&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>-showLog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<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 = &lt;x&gt;<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.&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>If more problems than maxProblems are connected with the&nbsp;</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 = &lt;x&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Since CMPLGridSchedulers and CMPLServers have to call server functions mutually&nbsp;</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&nbsp;</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 = &lt;x&gt;<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 = &lt;x&gt;&nbsp;</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 = &lt;x&gt;<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&nbsp;</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&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>CMPLServers. This can be done by the parameter performanceIndex that influences the&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>load balancing function directly.&nbsp;</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 = &lt;solverName1&gt; [&lt;solverName2&gt; ...]&nbsp;</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.&nbsp;</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 = &lt;url&gt; &lt;maxproblems&gt;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>Specifies the CMPLGridScheduler to which the CMPLServer is to be connected.&nbsp;</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&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                                        </span>the maximum number of problems that the CMPLServer provides to this CMPLGridScheduler.&nbsp;</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&nbsp;</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)&nbsp;</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 &lt;x&gt; &nbsp; &nbsp; : maximum number of tries of failed CmplServer calls</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>-maxQueuingTime &lt;x&gt; &nbsp; &nbsp; : maximum time in &lt;x&gt; 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&nbsp;<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&nbsp;<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>&nbsp;&nbsp;&nbsp;svn co &nbsp;<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>&nbsp;&nbsp;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&nbsp;<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&nbsp;<a href="http://www.coliop.org/">www.coliop.org</a>&nbsp;&nbsp;and&nbsp;<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>