GAMS Deployment. Michael Bussieck GAMS Software GmbH GAMS Development Corporation

Similar documents
Pre-Conference Workshops

Pre Conference Workshop. GAMS Software GmbH GAMS Development Corporation

Recent enhancements in. GAMS Development Corporation

Rapid Application Prototyping using GAMS

Recent enhancements in. GAMS Software GmbH GAMS Development Corporation

Decomposition Methods for Mathematical Programming Problems. GAMS Software GmbH / GAMS Development Corp.

Solving Scenarios in the Cloud

GAMS. How can I make this work... arrgghh? GAMS Development Corporation

GAMS. General Algebraic Modeling System. EURO 2009 Bonn. Michael Bussieck Jan-Hendrik Jagla

Pre-Conference Workshops

GAMS Striving for Innovation and Compatibility

Introduction to MATLAB application deployment

Enhanced Model Deployment and Solution in GAMS

Enhanced Model Deployment in GAMS

GMO: GAMS Next-Generation Model API. GAMS Development Corporation

Processes. Operating System Concepts with Java. 4.1 Sana a University, Dr aimen

Pre-Conference Workshops

Design Principles that Make the Difference

Interactions between a Modeling System and Advanced Solvers. GAMS Development Corporation

Part Two - Process Management. Chapter 3: Processes

Chapter 4: Processes. Process Concept

Rapid Application Development & Grid Computing Using GAMS. Software Demonstration INFORMS San Francisco 2005

Solving Large-Scale Energy System Models

Chapter 4: Processes

Java EE 7: Back-End Server Application Development

Topic 8: Lazy Evaluation

GAMS and High-Performance Computing

Processes. Electrical and Computer Engineering Stephen Kim ECE/IUPUI RTOS & Apps 1

Certified Selenium Professional VS-1083

CO Java EE 7: Back-End Server Application Development

Fundamentals of Integer Programming

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits

Recent Enhancement in GAMS. GAMS Software GmbH GAMS Development Corp.

CPSC 427a: Object-Oriented Programming

Chapter 4: Processes. Process Concept. Process State

Automated Trading with MATLAB Stuart Kozola Computational Finance

Getting Started with OpenDSS

Developing Ajax Web Apps with GWT. Session I

Advanced Use of GAMS Solver Links

Determining the Best Approach

SAP Automation (BC-FES-AIT)

C And Unix Programming: A Comprehensive Guide By N. S. Kutti

Datacenter Simulation Methodologies Web Search. Tamara Silbergleit Lehman, Qiuyun Wang, Seyed Majid Zahedi and Benjamin C. Lee

with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials

SPSS Statistics 21.0 Fix Pack 1 Fix List

COL100 Lab 2. I semester Week 2, Open the web-browser and visit the page and visit the COL100 course page.

More Programming Languages. Spring 2014 Carola Wenk

Los Angeles Cancer Surveillance Program. Links and Slides google Rich Pinder USC.

PGQ, Pretty Darn Quick

W h i t e P a p e r. Integration Overview Importing Data and Controlling BarTender from Within Other Programs

FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING

MATLAB as a Financial Engineering Development Platform Delivering Financial / Quantitative Models to the Enterprise Eugene McGoldrick

SSC - Web applications and development Introduction and Java Servlet (I)

Jaspersoft APIs. Integrating BI with your Applications. Community and Professional Editions

PROCE55 Mobile: Web API App. Web API.

CSCE 313 Introduction to Computer Systems. Instructor: Dezhen Song

Process Concept. Chapter 4: Processes. Diagram of Process State. Process State. Process Control Block (PCB) Process Control Block (PCB)

Chapter 4: Processes

Sharing and Deploying MATLAB Applications

CSCE 313: Intro to Computer Systems

Solving Difficult MIP Problems using GAMS and Condor

AMPL in the Cloud Using Online Services to Develop and Deploy Optimization Applications through Algebraic Modeling

Processes. CSE 2431: Introduction to Operating Systems Reading: Chap. 3, [OSC]

Programmazione. Prof. Marco Bertini

AIM. 10 September

CS 300 Leftovers. CS460 Pacific University 1

Sharing and Deploying MATLAB Programs Sundar Umamaheshwaran Amit Doshi Application Engineer-Technical Computing

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server

Chapter 4: Processes. Process Concept

Software Release Communication 02/07/2014. Topics covered. Solutions You Can Count On

In this third unit about jobs in the Information Technology field we will speak about software development

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Administrator Guide. v Decisions on Demand, Inc. - All Rights Reserved

The Big Picture So Far. Chapter 4: Processes

Major New Features in Gurobi 7.0

App Studio 4.0 Deployment Guide

s Protocol Buffer Knight76 at gmail.com

Oracle Service Cloud Integration for Develope

Chapter 4: Processes

MQTT Message Queue Telemetry Transport.

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010

Chapter 3: Processes

C H A P T E R 1. Introduction to Computers and Programming

Agenda. GAMS Development / GAMS Software. GAMS at a Glance. An illustrative Example: The Mean Variance Model. Grid Computing

CS2141 Software Development using C/C++ C++ Basics

MSMQ-MQSeries Bridge Configuration Guide White Paper

bs^ir^qfkd=obcib`qflk= prfqb=clo=u

IBM JZOS Meets Web 2.0

IBM MQSeries Integrator Agent for CICS Transaction Server Enables MDp Customers to Move to Business Integration

Testing, code coverage and static analysis. COSC345 Software Engineering

Computer Laboratories: Mathematical Formulation and Implementation in GAMS. S. Vitali Charles University. 3/15/2017 Copyright 2017 S.

Computational Photonics, Summer Term 2014, Abbe School of Photonics, FSU Jena, Prof. Thomas Pertsch

Chapter 3: Processes. Chapter 3: Processes. Process in Memory. Process Concept. Process State. Diagram of Process State

MULTI GPU PROGRAMMING WITH MPI AND OPENACC JIRI KRAUS, NVIDIA

Pointers and scanf() Steven R. Bagley

Lecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8

Implementing and Maintaining Microsoft SQL Server 2008 Integration Services

ITT8060 Advanced Programming

Developing Applications with Java EE 6 on WebLogic Server 12c

Transcription:

GAMS Deployment Michael Bussieck mbussieck@gams.com GAMS Software GmbH GAMS Development Corporation www.gams.com

Topics for Deployment Protection of models Save/restart Secure save/restart Encryption Embedding Models in an application Low-level APIs GAMS OO API Web application Delivering models Delivering standalone applications 2

Protection Protection against stealing models or model ideas Guaranteeing integrity of the application GAMS offers the Save/Restart (Checkpoint) Facility Capture the state of a (partial) GAMS model (data plus code) Restarting (continued compilation plus execution) Secure Save/Restart Facility Embed client s license in the checkpoint, so only the client with a particular license can restart from the checkpoint. 3 Deployment licenses using the Checkpoint facility qualify for a discounted license fee

Protection cont. Capturing a model without data in a checkpoint can be sometimes difficult Alternative: Source file encryption GAMS still provides clear text listing file Listing of the code Equation listing, etc. GAMS offers features to Hide data (no restart file has access to this data) Make symbols read-only 4

Embedding GAMS in your Application Application GAMS GDX SOLVER Creating Input for GAMS Model Data handling using GDX API Callout to GAMS GAMS option settings using Option API Starting GAMS using GAMS API Reading Solution from GAMS Model Data handling using GDX API 5

Low level APIs Object Oriented API Low level APIs GDX, OPT, GAMSX, GMO, High performance and flexibility Automatically generated imperative APIs for several languages (C, Delphi, Java, Python, C#, ) Object Oriented GAMS API Additional layer on top of the low level APIs Object Oriented Written by hand to meet the specific requirements of different Object Oriented languages 6

Features of the object oriented API No modeling capability. Model is still written in GAMS Prepare input data and retrieve results in a convenient way GAMSDatabase Control GAMS execution GAMSJob Seamless integration of GAMS into other programming environments.net API and several examples are part of the current GAMS release available at www.gams.com 7

Summary Object Oriented API provides an additional abstraction layer of the low level GAMS APIs Powerful and convenient link to other programming languages.net API is part of the current GAMS release available at www.gams.com. Many examples available: Sequence of Transport examples Cutstock, Warehouse, Benders Decomposition Python and Java under development. 8

Put Facility/Windows Messages Put Files ASCII files written from GAMS 9 Windows Message Communication between Windows Forms Send Windows Messages from GAMS model to application Capture Messages from a Windows Forms Application Provide additional arbitrary information during GAMS execution

Windows Messages Simple executable to send Windows Messages to a particular Window: argv[1]: Name of Window argv[2]: Message int main(int argc, char* argv[]) { HWND receiver; COPYDATASTRUCT cds; receiver = FindWindow(NULL, argv[1]); cds.dwdata = 1; cds.lpdata = argv[2]; cds.cbdata = strlen(argv[2]); 10 } SendMessage(receiver, (UINT)WM_COPYDATA, (WPARAM)0, (LPARAM)&cds);

Windows Messages loop(s, c(i,j) = uniform(0.9,1.1)*c(i,j); Solve transport using lp minimizing z ; avgobj = avgobj + z.l; put_utility fx 'exec' / 'sendmessage Transport "solve ' s.tl:4 ': Model obj = 'z.l '"'; ); 11

Excel and GAMS VBA GAMS API to call GAMS from Excel Exchange of input data and results using either GDXXRW or GDX API Excel Spreadsheet Data Result Visualization Data Results GAMS 12

13 Excel and VBA - CHP

14 NEOS Case Studies

Wiki as Deployment Environment Technologies: Dokuwiki, JavaScript, PHP, Useful for sharing knowledge of a particular model Run GAMS from wiki environment Sharing results of a GAMS model Start a GAMS model asynchronously and come back later to see the results (batch job) http://apps.gams.com/doku.php 15

16 Wiki Line Optimization Example

17 JavaScript & Google Maps

Wiki Interactive Applications Interactive Applications using Ajax (Asynchronous JavaScript and XML) Small models that allows the user to wait for the results 18

Delivering Models Minimal GAMS System Deployment using a minimal GAMS System Subset of a full GAMS Installation Ship only the files that are necessary to run a particular model/application GAMS Component Wizard Helps choosing the right files in a convenient way Deploy as Zip file or as MSI Installer 19

20 Minimal GAMS System

21 Minimal GAMS System