Tags:
view all tags
---+ *LPG*: Linear Programming on GPGPUs <img alt="lpg2.png" src="%ATTACHURL%/lpg2.png" /> ---++ Project contains: * libLPG - library that contains functions to solve linear programmes using a CPU or GPGPU. * LPG - a command-line based interface to the libLPG solver [not implemented yet!] * libOsiLPG - an Open Solver Interface library to allow COIN-OR projects to use LPG as their LP solver. ---++ Project file structure * !BuildTools _[taken from the COIN-OR BuildTools SVN]_ * !CoinUtils _[taken from the COIN-ORCoinUtils SVN]_ * libLPG * kernel _[the !OpenCL kernels used by libLPG]_ * src _[the C++ files and headers used by libLPG]_ * !MSVisualStudio _[the solution/project file for libLPG]_ * libOsiLPG * !MSVisualStudio _[the solution/project file for libOsiLPG]_ * src _[the C++ files and headers used by libOsiLPG]_ ---++ Project status ---+++ Done before 24th January * Solve LPs in single and double precision on CPU (dense A matrix, standard computational form) * Solve LPs in single precision on GPU (dense A, SCF) * Solve LPs with CBC ---+++ Todo * Implement all functions required for CBC to solve IPs using LPG * Write code to take any problem and convert to SCF * Enhance solvers to accept bounds on columns * Make solvers that can handle sparsity * Write the CLI for LPG * Compress single/dbl cpu solver into one file using preprocessor defines Done 24th Jan ---++ Firing up CBC with LPG (on Windows, VS2008) These instructions will help you compile a simple example that uses CBC: 1 Download CBC from its SVN repository 1 Download LPG from...! 1 Open the _\Cbc\MSVisualStudio\v9\Cbc.sln_ solution file 1 Add the libLPG and libOsiLPG projects to the solution 1 Add a new empty project, call it cbcExampleMin 1 Add _\Cbc\examples\minimum.cpp_ to the new project 1 Set cbcExampleMin as the Start Up project (right click on the project name, pick from menu) 1 Set cbcExampleMin's dependecies to be: 1 libCbc 1 libCoinUtils 1 libLPG 1 libOsi 1 libOsiCBC 1 libOsiLPG 1 libClp [needed for CBC, could probably be removed with correct config] 1 libOsiClp [needed for CBC, could probably be removed with correct config] 1 libCgl [needed for CBC] 1 Set project properties -> C/C++ -> Code Generation -> Runtime library to /MTd 1 Set the project to look in the following folders for includes: 1 \Cbc\src 1 \CoinUtils\src 1 \BuildTools\headers 1 \Osi\src 1 LPG (wherever it is)\libOsiLPG\src 1 Change the line: 1 #include "OsiClpSolverInterface.hpp" 1 to 1 #include "OsiLpgSolverInterface.hpp" 1 Change the line: 1 !OsiClpSolverInterface solver1; 1 to 1 !OsiLpgSolverInterface solver1;
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
png
lpg2.png
r1
manage
11.0 K
2011-01-24 - 21:36
IainDunning
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r6
<
r5
<
r4
<
r3
<
r2
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r3 - 2011-01-24
-
IainDunning
Home
Site map
Forum web
Main web
NDSG web
ORUA web
OpsRes web
Sandbox web
TWiki web
ORUA Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Edit
Attach
Copyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback