diff --git a/docs.it4i/salomon/software/numerical-libraries/.gitkeep b/docs.it4i/salomon/software/numerical-libraries/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs.it4i/salomon/software/numerical-libraries/Clp.md b/docs.it4i/salomon/software/numerical-libraries/Clp.md new file mode 100644 index 0000000000000000000000000000000000000000..b69fe4ffc425f7fbd5d32882110781d37e408d6e --- /dev/null +++ b/docs.it4i/salomon/software/numerical-libraries/Clp.md @@ -0,0 +1,61 @@ + +# Clp + +## Introduction + +Clp (Coin-or linear programming) is an open-source linear programming solver written in C++. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available. + +Clp ([projects.coin-or.org/Clp](https://projects.coin-or.org/Clp)) is a part of the COIN-OR (The Computational Infrastracture for Operations Research) project ([projects.coin-or.org/](https://projects.coin-or.org/)). + +## Modules + +Clp, version 1.16.10 is available on Salomon via module Clp: + +```console +$ ml Clp +``` + +The module sets up environment variables required for linking and running applications using Clp. This particular command loads the default module Clp/1.16.10-intel-2017a, Intel module intel/2017a and other related modules. + +## Compiling and linking + +!!! note + Link with -lClp + +Load the Clp module. Link using -lClp switch to link your code against Clp. + +```console +$ ml Clp +$ icc myprog.c -o myprog.x -Wl,-rpath=$LIBRARY_PATH -lClp +``` + +## Example + +An example of Clp enabled application follows. In this example, the library solves linear programming problem loaded from file. + +```cpp +#include "coin/ClpSimplex.hpp" + +int main (int argc, const char *argv[]) +{ + ClpSimplex model; + int status; + if (argc<2) + status=model.readMps("/apps/all/Clp/1.16.10-intel-2017a/lib/p0033.mps"); + else + status=model.readMps(argv[1]); + if (!status) { + model.primal(); + } + return 0; +} +``` + +### Load modules and compile: + +```console +ml Clp +icc lp.c -o lp.x -Wl,-rpath=$LIBRARY_PATH -lClp +``` + +In this example, the lp.c code is compiled using the Intel compiler and linked with Clp. To run the code, the Intel module has to be loaded.