Major releases contain substantial changes to the GAMS system. The License Check date is set to the release date of the major release.
Minor releases are mainly issued to provide bug fixes, performance improvements, and maintenance releases of solver libraries. Additionally, they can provide a few new features that do not change existing behavior. The License Check Date remains the same as for the prior major release. This means that any license file that worked with the prior major release will also work with this minor release.
Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements, and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with the prior major release will also work with this maintenance release.
GAMS Distribution 24.6
|24.6.1||(Major release)||January 18, 2016|
GAMS Major Release 24.6.1 - January 18, 2016
Table of Contents
- GAMS System
- Object Oriented APIs
- Model Libraries
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-Sauve, Michael Ferris, Per Ivar Helgesen, Erwin Kalvelagen, Martha Loewe, Geoff Moore, and Renger van Nieuwkoop.
- 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. To continue using Windows GAMS under Wine, see Installation of the Windows system under Linux using Wine for (expert) instructions.
- 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
$calland ignore errors because of missing files with
- 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
SolveLinkis set to 6 (compile time constant
%solveLink.Async Threads%), 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.Async Grid%=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 with
SolveLink = %solveLink.Load Library%=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:
The new function
ReadyCollect(handleParameter [, maxWait])can be used to wait until a model is ready to be collected. It can be used for both
SolveLink = %solveLink.Async Threads%and
SolveLink = %solveLink.Async Grid%. The arguments and return codes are:
handleParameter: parameter holding handles of model instances to wait for
maxWait: maximum time to wait (
- 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.Async Threads%handle
- 5: user specified time-out when using a
SolveLink = %solveLink.Async Grid%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.Async Threads%:
If another solver is selected,
SolveLink = %solveLink.Async Grid%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.
- Fixed a bug which caused wrong expected values for parametric distribution using the
- New libraries.
- The handling of branching priorities in a GAMS/BARON options file has changed. Priorities should now always be given in the GAMS convention.
- GAMS branching priorities are now converted to BARON branching priorities when writing a BARON input file.
- New libraries 12.6.3.
- Cplex and CplexD now report the deterministic time spend (in
ticksnot in seconds) in the model attribute
- IBM's Cplex cloud offering "DOcloud" can be accessed via the Kestrel solver.
- New option usexinit instructs DICOPT to start the NLP sub-solves from the user supplied input point.
- 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.
- MKL Pardiso is now available as linear solver on Mac OS X, too.
- The Kestrel client provides experimental access to IBM's DOcloud offering.
- Minor fix for zero tolerance in the basis reset routine of the Lemke method.
- Sulum will be dropped from the distribution with GAMS 24.8.
- 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.
- New feature SelectDirectory.
- 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.
- New version 0.7.
- Protect against very large symbols causing memory errors.
- Added option EXCLUDE to exclude symbols from being merged.
- An empty range is no longer an error.
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.
- 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.
- Fixed a bug in
GAMSModelInstance.copyModelInstancemethod when duplicating scratch directory.
- New example
nbcontindep (76): Modification, use sampling for continuous distributions if another solver than Lindo is selected
nbcontjoint (77): Modification, use sampling for continuous distributions if another solver than Lindo is selected
nbsimple (85): Modification, use discrete distribution
|Solver/Platform availability - 24.6|
Mac OS X
|IBM Power 64bit