Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained...

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

Transcript of Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained...

Page 1: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

1

Rapid Application Development & Grid Computing Using GAMS

Software DemonstrationINFORMS San Francisco 2005

Page 2: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

2

Demo Objectives

Basics / Algebraic ModelingData Exchange / ChartingTying things together (procedural elements)Grid ComputingModel Deployment

Page 3: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

3

Company Profile

General Algebraic Modeling System Started as a research projectat the World Bank 1976Went commercial in 1987Offices in Washington, D.C and CologneProfessional software tool providerOperating in a segmented niche marketBroad academic and commercial user base

Page 4: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

4

Modeling Systems

Describe problems to a computer system in the same way that people describe problems to each other.Simplify the model building and solution processCreate maintainable modelsAdapt models quickly to new situations

Page 5: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

5

Basic Technical Principles

Separation of model and dataSeparation of model and solution methodsComputing platform independenceMultiple model types, solvers, platformsBalanced mix of declarative and procedural approachesModel is a data base operator and/or object

Page 6: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

6

Basic Technical Principles II

Open architecture and interfaces to other systems:

GUIExcel, DatabasesProgramming Languages etc.

Maintainable models and protection of investments

Page 7: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

7

Multiple Model Types

LP - Linear ProgrammingMIP - Mixed Integer ProgrammingQCP - Quadratically Constrained ProgrammingNLP - Nonlinear ProgrammingCNS – Constrained Nonlinear SystemsMINLP - Mixed Integer Nonlinear ProgrammingMPEC - NLP with Complementarity ConstraintsMPSGE - General Equilibrium ModelsStochastic Optimization

Page 8: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

8

Multiple Solvers & Platforms

Page 9: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

9

Basic Portfolio Selection

MarkowitzClosing Values of Stocks over TimeCalculate Return, Deviation, Co-variance using Closing ValuesSelect Portfolio to

Minimize Variances.t. Some Return GoalMinimum Portfolio Size per Stock

Page 10: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

10

Basic Portfolio Selection Model QP1

Page 11: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

11

Data from Excel QP2

Page 12: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

12

Gams Data eXchange

Separation of Responsibility for Data and Model (Data contract)Gams Data eXchange (GDX):

A priori validation of data contractComplements the ASCII text data input

Application GDX GAMS

Page 13: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

13

GDX Tools

GDX

gdxxrw(MS Office)

gams

IDE gdxsql

gdxdiff

gdxdump

gdxmerge

gdxsplitGDXAPI

Page 14: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

14

Reporting

Integrated Standard Reporting Facilitiestext filesGDX: MS Office, DB, Charting, …

Specialized ReportingScenario Management/Data Cube: VEDAGeographical Information System: MapInfoVisualization with MATLAB

Page 15: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

15

Page 16: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

16

GAMS/MapInfo

Less Than 0

0 - 199

200-1000

1000-3000

Increase in Ktons Per Year

Page 17: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

17

GAMS/MATLAB

Page 18: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

18

Procedural Elements

Contrast pure declarative approach:e.g. AMPL, MPL, OPL

Scripting added outside languageAMPL Script, OPL scriptProgramming Languages API (OptiMax)

Experience shows importance of procedural paradigmPart of the GAMS Language

Page 19: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

19

Procedural Elements QP3

Page 20: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

20

What is Grid Computing?

A pool of connected computers managed and available as a common computing resource

Allows parallel task executionAllows effective sharing of CPU powerFor us, not necessarily distributedScheduler handles management tasksCan be rented or owned in commonE.g. Condor, Sun Grid Engine, Globus

Page 21: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

21

Economics of Grid Computing

Yearly cost, 2-CPU workstation: $5200Hardware - $1200Software - $4000

Hourly cost on the grid: $2$1/hour for CPU time (to grid operator)$1/hour for software (GAMS, model owner)

1 workstation == 50 hrs/week grid timeUp-front vs. deferred, as-needed costs

Page 22: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

22

Energy planning problems

Given expected energy demands, costs, and supplies, one can quickly form an optimal plan.Uncertain data many possible scenariosPlanning time increases dramatically

30 sec/scen * 4K scen = 33 hoursLimits the number of scenarios allowed

Page 23: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

23

Solution A: Optimize for Speed

Modify model to batch scenariosEliminate generation time

GAMS generates each model from scratchFraction of total time used is non-trivialRequires significant programmingIncreased chance of errorNot maintainable/flexible/layered

Speedup: 1.5 (at most!), or 22 hours

Page 24: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

24

Solution B: Use a Grid

Solve the scenarios in parallel, e.g.100 CPUs: 20 minutes

Marginal cost is $66No programming requiredModel stays maintainableSeparation of model and solution maintained

Page 25: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

25

Grid Specifics

echo "#!/bin/bash" > ${3}runit.shecho $1 $2 >> ${3}runit.shecho gmscr_ux.out $2 >> ${3}runit.shecho mkdir ${3}finished >> ${3}runit.shchmod 750 ${3}runit.sh${3}runit.sh > /dev/null &

Page 26: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

26

Parallel Submission QP4

Page 27: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

27

Massively Parallel MIP

MIP/B&C Algorithm ideal to parallelizeSeymour problem solved that waySoftware: FATCOP/Condor, BCP/PVMA priori subdivision in n independent problems

Open Pit Mining Problem (openpit in GAMS Model library)

Used integer variables to subdivide Model into into 4096 sub-problemsExperiments (Ferris) at UW using Condor Pool

Page 28: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

28

Results

Submission start Nov. 9 at 6 pmAll job submitted by Nov. 9 at 7:30 pmAll jobs returned by Nov 10, 10:15 am

16 hours wall time, 1812 CPU hoursPeak number of CPUs: 270

Different Instance:24 hours wall time, 3000 CPU hours

Page 29: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

29

Condor Statistics

Page 30: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

30

Other Examples

Student-centric scheduling at USMA (West Point)

Models used intensively 4 times/year4000 independent MIP models

Hill & Associates (energy/coal experts)National Power Model (coal & electricity)Multi-period (20 yr) model: runs 10 hours Tens of runs & quick turnaround required

Page 31: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

31

Model Deployment

All options are availableSpreadsheets, databasesWeb servicesGUI (IDE, custom built)On the Grid

Independent of model or data sourcesBasic philosophy: layers of separation

Page 32: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

32

Fully Embedded Application

Server

GAMS

WEB CLIENT

JAVA ServletSpawns GAMS

Communication via HTML/JAVA

Servlets

Web Front End

SERVER

Access / Excel Database

Return Solution

Graph Solution as HTML (JAVA

Servlets)

BACK END APPLICATION

Page 33: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

33

Web Front End

User may specify:

• Expected Return

• Investment Period (Days)

• Number of Stocks

• Solver

• Database (Excel or Access)

Page 34: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

34

Output

Output:

• User input parameters

• Real-time GAMS output of model solve

Page 35: Rapid Application Development & Grid Computing …...NLP - Nonlinear Programming CNS – Constrained Nonlinear Systems MINLP - Mixed Integer Nonlinear Programming MPEC - NLP with Complementarity

35

Output (continued)

Output:

• GAMS Return Codes

• Investment distribution

•Graphical output