Code Monkey home page Code Monkey logo

algencan.jl's Introduction

Algencan.jl

I am deprecating this project in favor of NLPModelsAlgencan.jl. All further development will happen there.

Algencan.jl is a JuMP / MathProgBase interface to the Algencan nonlinear solver.

Algencan is a large scale high performance augmented Lagrangian solver written by Ernesto Birgin and Mario Martínez. It has many special features like being able to use the HSL library to speed up the sparse matrix linear algebra and some smart acceleration strategies.

Status

At this point this is alpha software. From version v0.2.0 on, the code will work only with Julia 1.0 or later. If you need to run Algencan.jl with the old Julia 0.6, please install the version v0.1.x.

Installation

There are three main modes of installation, depending on how you want to compile Algencan.

The preferred way: using HSL

Obs: We only give support for MA57 at this point.

The preferred way to use Algencan is to link it against a HSL function to solve sparse linear systems. To do this you need to grab your copy of MA57 from HSL. It has a free academic license. You should receive a file named hsl_ma57-5.2.0.tar.gz.

All you need to do is to create an environment variable named MA57_SOURCE pointing to this file before installing Algencan.jl. For example, if the file is located at the /tmp folder, in bash you would do

export MA57_SOURCE=/tmp/hsl_ma57-5.2.0.tar.gz

After that just install Algencan.jl from Julia's REPL and import it to force precompilation.

(v1.0) pkg> add Algencan
julia> using Algencan

The easy way

Just type

(v1.0) pkg> add Algencan

in package mode in Julia's REPL.

This will download Algencan's code, compile it and make it available to the Algencan.jl package. However there is a major caveat here. The Algencan solver will be compiled without any HSL support. This will have a major negative impact on its behavior and performance. You should use HSL whenever you have access to it.

Pre-compiled libalgencan.so

If you have your own copy of libalgencan.so (note that you need a shared library), you can use it. Just create an environment variable like below pointing to the directory where the library find resides before installing Algencan.jl.

export ALGENCAN_LIB_DIR=/path/where/algencan/libray/is

You can then proceed to install Algencan.jl from the REPL

(v1.0) pkg> add Algencan
julia> using Algencan

Hints to self compilation of Algencan with HSL libraries

This wiki page documents the steps I used to compile a version of libalgencan.so with HSL support.

algencan.jl's People

Contributors

abelsiqueira avatar chkwon avatar pjssilva avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.