Table of Contents
24.6.1 Major release (January 18, 2016)
Acknowledgments
We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Wolfgang Britz, Etienne Ayotte-Sauvé, Michael Ferris, Per Ivar Helgesen, Erwin Kalvelagen, Martha Loewe, Geoff Moore, and Renger van Nieuwkoop.
Platforms
- The minimal supported Mac OS X version has been increased to 10.9 (Mavericks). COIN-OR solvers, Gurobi, SCIP, and SoPlex now require a system with at least Mac OS X 10.9. The GAMS base system, tools, and other solvers are still working on Mac OS X 10.7 and 10.8, but may stop working in a future release without extra announcement.
- The installer for Wine on Linux has been dropped.
GAMS System
GAMS
- Increased controlled set nesting limit from 120 to 300.
- New option SHUFFLE.
- New option for command line parameter MultiPass:
- 0: standard compilation
- 1: check-out compilation
- 2: as 1 and in addition skip
$call
and ignore errors because of missing files with$include
(NEW)
- Allow to load variable and equation attributes into a parameter at compile time, e.g.
$LOAD par=var.L
(par being a parameter and var a variable) Solving in parallel threads (beta feature)
A new variant for the solveLink option and model attribute has been added. If
solveLink
is set to 6 (compile time constant%solveLink.asyncThreads%
), GAMS does not wait for the solver to return and does not collect the result when a solve statement is executed. Instead, the model is generated and then passed to the solver in a separate thread while GAMS continues the execution. This way, multiple models can be solved in parallel and the results can be collected later.This is similar to the Grid Facility (
solveLink = %solveLink.asyncGrid%=3
) with the difference, that the solver does not operate in its own process space but in a separate thread, which allows efficient in-memory communication between GAMS and the solver (like it is done withsolveLink = %solveLink.loadLibrary%=5
). After the solve statement, one can store a handle of the model instance (using the model attribute mymodel.handle) and use the same functions that are used for the Grid Facility to collect the solution and deal with the model instance:HandleCollect(handle)
,HandleStatus(handle)
, andHandleDelete(handle)
.The new function
ReadyCollect(handleParameter [, maxWait])
can be used to wait until a model is ready to be collected. It can be used for bothsolveLink = %solveLink.asyncThreads%
andsolveLink = %solveLink.asyncGrid%
. The arguments and return codes are:- Arguments
handleParameter
: parameter holding handles of model instances to wait formaxWait
: maximum time to wait (+INF
if omitted)
- Return Codes
- 0: (one of) the requested job(s) is ready
- 1: no active job to wait for
- 2: no handle provided
- 3: invalid handle
- 4: user specified time-out when using a
solveLink = %solveLink.asyncThreads%
handle - 5: user specified time-out when using a
solveLink = %solveLink.asyncGrid%
handle - 8: unknown error (should not happen)
The new option threadsAsync (available on the command line and with the option statement) sets the maximum number of threads that should be used for the asynchronous solves. If a negative number is set, this specifies how many of the available processors on the host machine should not be used. The default setting is -1.
Currently, the following solvers can be used with
solveLink = %solveLink.asyncThreads%
:- CONOPT
- CPLEXD
- GUROBI
- MOSEK
- OSICPLEX
- OSIGUROBI
- SCIP
If another solver is selected,
solveLink = %solveLink.asyncGrid%
will be used instead (which is noted in the log).An example of how this new feature can be used, can be seen in the GAMS Model Library model tgridmix.
- Arguments
Stochastic Programming with EMP
- Fixed a bug which caused wrong expected values for parametric distribution using the
RandVar
keyword.
Solvers
ANTIGONE
- New libraries.
BARON
- The handling of branching priorities in a GAMS/BARON options file has changed. Priorities should now always be given in the GAMS convention.
Convert
- GAMS branching priorities are now converted to BARON branching priorities when writing a BARON input file.
CPLEX
- New libraries 12.6.3.
- Cplex and CplexD now report the deterministic time spend (in
ticks
not in seconds) in the model attributeETAlg
. - IBM's Cplex cloud offering "DOcloud" can be accessed via the "Kestrel solver".
DICOPT
- New option usexinit instructs DICOPT to start the NLP sub-solves from the user supplied input point.
GUROBI
- New libraries 6.5.
- New option PreMIQCPForm that determines the format of the presolved version of an MIQCP model.
- New option
WorkerPort
specifies a non-default port number for the distributed worker machines. - New option VarHint. The variable hints communicated through level and tryint will affect the heuristics that Gurobi uses to find feasible solutions, and the branching decisions that Gurobi makes to explore the MIP search tree.
- GAMS/Gurobi supports solving models in the Gurobi Instant Cloud.
- Fixed a problem with option IIS for models with SOS variables.
IPOPT
- MKL Pardiso is now available as linear solver on Mac OS X, too.
KESTREL
- The Kestrel client provides experimental access to "IBM's DOcloud" offering.
PATH
- Minor fix for zero tolerance in the basis reset routine of the Lemke method.
Sulum
- Sulum will be dropped from the distribution with GAMS 24.8.
XPRESS
- Updated Optimizer libraries for Windows and Linux: 28.01.05 → 28.01.10.
- Several minor bug fixes that affect correctness and performance in some corner cases.
Tools
ASK
- New feature SelectDirectory.
GAMS IDE
- Sorting by symbol name is no longer case sensitive.
- GDX viewer can now show numbers with full precision.
- The option editor no longer shows the dot options.
- Fixed a bug where the cursor was not shown after double-clicking on a red line.
GDX2SQLITE
- New version 0.7.
- Added option
varchar
to export character columns asVARCHAR(255)
instead ofTEXT
. - Better names of columns when option
small
is used. - Adding timing info.
- Added option
GDXMERGE
- Protect against very large symbols causing memory errors.
- Added option EXCLUDE to exclude symbols from being merged.
GDXXRW
- An empty range is no longer an error.
SQL2GMS
In the old version double quotes were removed when reading a command file. In this version we keep double quotes to be able to escape SQL names (table names, column names). E.g. we now can handle non-standard names by double quoting them in a query. Depending on the database you can do:
q=select "Some COLUMN" from "This Table"
Note that some databases (such as SQL Server) use [ ] for this goal.
In the special case where you write:
q="select c from t"
the surrounding double quotes are removed before passing the query on to the database.
MODEL2TEX
- If an identifier is changed using the specifications in the JSON style file, underscores are no longer changed from "_" to "\_". This makes it possible to use subscripts when replacing an identifier.
Object Oriented APIs
Java
- Fixed a bug in
GAMSModelInstance.copyModelInstance
method when duplicating scratch directory.
Python
- New example
transport8a.py
.
Model Libraries
GAMS EMP Library
- nbcontindep: use sampling for continuous distributions if another solver than Lindo is selected
- nbcontjoint: use sampling for continuous distributions if another solver than Lindo is selected
- nbsimple: use discrete distribution
GAMS Test Library
- shuffle1.gms : Test for option shuffle (690)
- sl601.gms : Check correct behavior when using solveLink=6 (691)
Solver/Platform availability - 24.6 | |||||||
---|---|---|---|---|---|---|---|
x86 32bit MS Windows |
x86 64bit MS Windows |
x86 64bit Linux |
x86 64bit Mac OS X |
x86 64bit SOLARIS |
Sparc 64bit SOLARIS |
IBM Power 64bit AIX |
|
ALPHAECP | |||||||
ANTIGONE 1.1 | |||||||
BARON 15.9 | |||||||
BDMLP | |||||||
BONMIN 1.8 | |||||||
CBC 2.9 | |||||||
CONOPT 3 | |||||||
COUENNE 0.5 | |||||||
CPLEX 12.6 | |||||||
DECIS | |||||||
DICOPT | |||||||
GLOMIQO 2.3 | |||||||
GUROBI 6.5 | |||||||
GUSS | |||||||
IPOPT 3.12 | |||||||
KESTREL | |||||||
KNITRO 10.0 | |||||||
LGO | |||||||
LINDO 9.0 | |||||||
LINDOGLOBAL 9.0 | |||||||
LOCALSOLVER 5.5 | |||||||
MILES | |||||||
MINOS | |||||||
MOSEK 7 | |||||||
MSNLP | |||||||
NLPEC | |||||||
OQNLP | 32bit | ||||||
PATH | |||||||
SBB | |||||||
SCIP 3.2 | |||||||
SNOPT | |||||||
SOPLEX 2.2 | |||||||
SULUM 4.3 | |||||||
XA | |||||||
XPRESS 28.01 |