Giter VIP home page Giter VIP logo

neoparsa's Introduction

neoParSA: a scalable parallel simulated annealing library

neoParSA is a highly modularized parallel and serial simulated annealing library in C++. It is designed to be both easy to use and easy to extend.

Contents

  1. Dependencies
  2. Build
  3. Usage

1. Dependencies

MPI

neoParSA library proper requires an implementation of MPI version 2.0 or above. Common ones are

Intel MPI Library or other vender specific MPI implementations also work.

Other dependencies

In addition to MPI, neoParSA library propery also requires

2. Build

neoParSA uses CMake as a build system to allows cross platform, out of source builds with flexible build options. It is always recommended to compile the library in a separate directory. Suppose the source files are in the directory neoParSA, it is recommended to create a subdirectory build inside.

$ cd neoParSA
$ mkdir build

If all dependencies are in their usual location, the build can be configured without extra options.

$ cd build
$ cmake ..

You can specify options to for configuration:

$ CC=icc CXX=icpc cmake -D CMAKE_BUILD_TYPE=Release -D BOOST_ROOT=$HOME/boost_1_59 ..

To compile just the library, do

$ make parsa

To make the library and all the test problems, do

$ make

3. Usage

neoParSA requires the problem to be optimized to be enclosed in a class with the following member methods:

size_t getDimension();
double get_score();
void generateMove(int index, double theta);
void restoreMove(int index);

For parallel versions, it needs three more:

size_t getStateSize();
void serialize(void *buf);
void deserialize(void const *buf);

neoparsa's People

Contributors

zhlou avatar

Watchers

 avatar

neoparsa's Issues

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.