Source Code Not Required: Using the COIN-OR Binaries

Similar documents
CoinEasy. Kipp Martin Booth School of Business University of Chicago. November 9, 2010

An open-source stochastic programming solver. H.I. Gassmann, Dalhousie University J. Ma, JTechnologies R.K. Martin, The University of Chicago

Optimization Services: A Framework For Distributed Optimization

sbb COIN-OR Simple Branch-and-Cut

Optimization Services (OS) Today: open Interface for Hooking Solvers to Modeling Systems

MRCP. Installation Manual. Developer Guide. Powered by Universal Speech Solutions LLC

Using COIN-OR to Solve the Uncapacitated Facility Location Problem

How to build Simbody 2.2 from source on Windows

The Optimization Services Project on COIN-OR

Project Management. The COIN-OR Way Ted Ralphs. COIN forgery: Developing Open Source Tools for OR

Modeling with COIN-OR Tools

Build and Test. The COIN-OR Way Ted Ralphs. COIN forgery: Developing Open Source Tools for OR

AIMMS 4.0. Portable component Linux Intel version. Release Notes for Build 4.1. Visit our web site for regular updates AIMMS

D-Water Quality modelling with DELWAQ: Open source code compiling and start modelling in Windows. Webinar, March 13, 2013 Michel Jeuken

How to Improve FMI Compliance

Opera Web Browser Archive - FTP Site Statistics. Top 20 Directories Sorted by Disk Space

Building a Custom Solver with the COIN-OR Branch, Cut, and Price Frameworks

Mingw-w64 and Win-builds.org - Building for Windows

sbb COIN-OR Simple Branch-and-Cut

Optimization Services and Nonlinear Programming

CS 113: Introduction to

VSO. Configuration Management

AllInOneRuby - A "Just-in-Time and Temporary Installation of Ruby"

Eclipse CDT Tutorial. Eclipse CDT Homepage: Tutorial written by: James D Aniello

Transitioning from Spread 3.17.x to Spread 4.0

The SYMPHONY Callable Library for Mixed-Integer Linear Programming

Linking GAMS to Solvers Using COIN-OSI. Michael Bussieck Steve Dirkse GAMS Development Corporation

GUT. GUT Installation Guide

How to install and build an application

How to install and build an application. Giuliana Milluzzo INFN-LNS

Digital Factory 7 - SDK Quick installation instructions

Computational Integer Programming. Lecture 3: Software. Dr. Ted Ralphs

Implementing Scalable Parallel Search Algorithms for Data-Intensive Applications

e-companion ONLY AVAILABLE IN ELECTRONIC FORM

AutoForm plus R6.0.3 Release Notes

RASP Library for Java Version 2.0.0

CSC 453 Operating Systems

C++ for CMEA II. Kjetil Olsen Lye. September 24, 2015

Experience with CGL in the PICO Mixed- Integer Programming Solver

How to install and build an application

The build2 Toolchain Installation and Upgrade

Optimization Services hookup Language (OShL) Jun Ma. -- API for invoking Remote Solver Service

GLIMMER, Version Control and Build Systems

GUIDE Development tools for Windows(10) installation... 2

Nao User Manual (6/27): Contents

Using the GeoX Framework

CMake & Ninja. by István Papp

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

AMath 483/583 Lecture 2

Configuration. Monday, November 30, :28 AM. Configuration

Building epics on win32-x86

Optimization Services Instance Language (OSiL) Part I. Jun Ma. Robert Fourer. Jun Ma. Northwestern University Kipp Martin University of Chicago

Managing Change at the Speed of Business

Hello, World! in C. Johann Myrkraverk Oskarsson October 23, The Quintessential Example Program 1. I Printing Text 2. II The Main Function 3

ANUGA Installation Guide

Mono Development for Wine. A Cry for Help

GFEC Version 3.0 Installation Guide MATTHEW WARD SALVESON

Assignment 1: Plz Tell Me My Password

WIZARD-OF-OZ FOR ELDERLY EL-WOZ

Laboratory 1: Eclipse and Karel the Robot

Building 3D Slicer. MACbioIDi February March Carlos Luque

Studio 2010 Command Prompt

Computer Science 322 Operating Systems Mount Holyoke College Spring Topic Notes: C and Unix Overview

SOFTWARE CONFIGURATION MANAGEMENT

Installation Notes for Enhydra Director Netscape/IPlanet Web Servers

Red Hat Container Development Kit 3.0 Release Notes and Known Issues

Morpheus_eProbe Software to probe your Java environment. Version Copyright 2016 Dennis E. Slice

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

Accelerating Stateflow With LLVM

Source control with Subversion A user perspective

Writing a Client Application for Genesis II Contributors: Chris Sosa Last Modified: 06/05/2007

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Getting Started with Apache NiFi Registry

Tutorial : creating a Max/MSP external project for Windows using Visual Studio

Lab 1: First Steps in C++ - Eclipse

Wireless frequency auctions: Mixed Integer Programs and Dantzig-Wolfe decomposition

Slide Set 4. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

This documentation is for people who want to download CPAN modules and install them on their own computer.

CptS 360 (System Programming) Unit 2: Introduction to UNIX and Linux

COIN-OR: Software Tools for Implementing Custom Solvers

WinDocks 1.0 Administration Guide

Version Control with Git

Problem Set 6 Audio Programming Out of 40 points. All parts due at 8pm on Thursday, November 29, 2012

How to install and build an application

Version (Source Code) Control SWEN-250

Linux. What is it? What s good about it? What s bad about it?

Kampala August, Agner Fog

Hierarchical Data Format query language (HDFql)

SCIRun Developer Guide

Geometric Tools Engine Version 3.14 Installation Manual and Release Notes

Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018

Moving Materials from Blackboard to Moodle

Computational Applications in Nuclear Astrophysics using Java Java course Lecture 1

Getting Started with Eclipse/Java

ADVENTURE_IO. User s Manual. Version 1.2. ADVENTURE Project. February 17, 2006 ADVENTURE SYSTEM

Communications Library Manual

GRACES Data Reduction Cookbook

Subversion Branching and Merging. Jan Skalický

HugeServer Networks Software Archive - FTP Site Statistics. Top 20 Directories Sorted by Disk Space

Schlumberger Private Customer Use

Transcription:

Source Code Not Required: Using the COIN-OR Binaries COIN-OR TLC Binary Committee: JP Fasano, IBM Corporation Leo Lopes, University of Arizona Kipp Martin, University of Chicago Ted Ralphs, Lehigh University November 7, 2006

Outline MOTIVATION Binary Download Source Code Archive Download SVN Download WINDOWS USERS LINUX USERS GETTING HELP

Motivation I just want to solve a <expletive deleted> optimization problem and I don t give a <expletive deleted> about source code!!!!!!! Why make me suffer? What do I do? Note: Other COIN-OR members present please feel free to disagree. 3

COIN-OR User Objectives 1. Just solve a linear, integer, or nonlinear program. 2. Link to a library, e.g. write a application that contains a solver. 3. Research/Teaching take existing source code and modify to test ideas. Don t reinvent the wheel. 4. Project developer work on creating, maintaining, fixing a project. 4

Three ways to download COIN-OR software. 1. Get the project binaries (executables and libraries) as a zip or tgz file and unzip. 2. Get the source code archive as a zip. 3. Use svn more on this later. 5

User Objectives versus Download Method Solve a problem Link to a library Modify code Project management Binary X X Source Archive svn X? X Disclaimer: much of this talk reflects the opinion of the presenter and is not any kind of official COIN-OR policy. 6

The COIN-OR Version Control System StableVersion: created when project manager wishes to declare a new version of the project. 1. A stable version should pass the unit test 2. A stable version is roughly fixed, but may evolve 3. Bug fixes may be applied to stable versions 4. A stable version is identified by a two-digit numbering system, e.g. Clp has stable version 1.3 Think of the stable version as the most reliable up-to-date version of the project complete with bug fixes. Stable versions probably used mostly by project managers who build their project on other COIN-OR projects. 7

Point Release: A fixed stable version. 1. The point release is the intended version of the project for source archive, binaries (executable and libraries), and svn. 2. A point release is fixed. Not even bug fixes are applied to a point release. 3. A point release has a three digit number, e.g. 3.1.2. 4. If a bug is patched, it is fixed in stable, and a new release is created, eg. 3.1.3. Note by using releases the project manager can track the exact version of the code. 8

Download Method versus Version Type Stable Binary Source Archive svn X Release X X? A project manager uses svn to download the trunk version of the code. 9

https://www.coin-or.org/download/binary/ 10

BINARIES Convention for naming: I Project Name I Three digit Release I Platform usually operating system and compiler Clp-1.3.3-linux-ix86-gcc4.0.tgz (A linux platform binary) Cbc-1.0.0-win32-msvc7.zip (W Windows platform) Platforms: Windows, Linux, and Mac OS X (Power PC). 11

www.coin-or.org/binaries 12

BINARIES The binary download contains the following directories. bin Contains the executable files, e.g. Clp.exe lib The libraries used by the executable files. Right now Linux and Mac are dynamic libs and static libs for Windows. include Not needed if you are just using the executables, needed if you are going to write code to use the libraries. 13

Using the executables: Just solve a linear program! clp path/file.mps More complicated executable OSSolverService -config testremote.config The executable reads the configure file testremote.config and executes based on the parameters 14

The file testremote.config: -osil../data/parinclinear.osil -solver cbc -browser /Applications/Firefox.app/Contents/MacOS/firefox -osol../data/demo.osol -servicelocation http://***/cbc/cbcsolverservice.jws -servicemethod solve The file testremote.config: -osil../data/parinclinear.osil -solver lindo -browser /Applications/Firefox.app/Contents/MacOS/firefox -osol../data/demo.osol -servicemethod solve -osrl /Users/kmartin/temp/test2.osrl 15

Using the pre-compiled libraries: Writing a main program that links to the libraries in the binary distribution. Step 1: Include any necessary header files in the include directory. #include "OsiClpSolverInterface.hpp" Step 2: Define a pointer to a base class. OsiSolverInterface *si; si = new OsiClpSolverInterface; Step 3: Read in the data. si->readmps( argv[ 1]); 16

Using the pre-compiled libraries: Writing a main program that links to the libraries in the binary distribution. Step 4: Solve the problem si->initialsolve(); Step 5: Get the solution. double *psolution; psolution = si->getcolsolution(); Step 6: Print the answer std::cout << "Variable " << i << " = " << psolution[i] ; 17

Source download. www.coin-or.org/download/source 18

Source download. www.coin-or.org/download/source 19

Use a version control system. COIN-OR uses svn. Download the code: svn co https://projects.coin-or.org/svn/clp/stable/1.3 coin-clp Run the configure script;./configure make make test make install This is mainly for project managers. 20

Windows Users Some options for Windows Users who wish to compile code: I Visual Studio project files for VS6, VS7, and VS8 for Clp and Cbc. See https://projects.coin-or.org/msvisualstudio If you wish to link to a DLL see https://projects.coin-or.org/coinmp I Cygwin - for the truly adventuresome. I MinGW very easy download, easy to use 21

Linux Users Leo s rpm work 22

Getting Help Binary Downloads: https://www.coin-or.org/download/binary/ Source Code Downloads: https://www.coin-or.org/download/binary/ Subversion Help: https://www.coin-or.org/faqs.html#obtainsrccode BuildTools: https://projects.coin-or.org/buildtools Discussion Lists: http://www.coin-or.org/mail.html 23