Code Monkey home page Code Monkey logo

otm-mpi's Introduction

otm-mpi

Open Traffic Models - MPI communication: This a parallized version of the OTM simulation engine that uses Message Passing Interface (MPI) for multi-core communication on high performance computing (HPC) systems. It can exploit parallel computation and HPC power to significantly speed up large-scale traffic simulations.

Installation

Third party dependencies

  • Download open-mpi 3.1.
  • Install Metis. Two methods:
    • metis-5.1.0.tar.gz. Follow the instructions in Install.txt. To build METIS you will need to have cmake.
    • Ubuntu: sudo apt install metis

Install otm-sim

git clone [email protected]:ggomes/otm-sim.git
cp otm-sim/settings.xml ~/.m2
cd otm-sim
git checkout remotes/origin/ctmrefac
mvn clean install -DskipTests

Alternatively you can download the otm-sim jar here

Build in IntelliJ

  • IntelliJ > Import project > otm-mpi > create project from existing sources ...
  • Add otm-sim and json jar files
Files > Project Structure > Project Settings > Modules
	> Dependencies > + JARs or directories
 		> otm-sim/target/otm-sim-1.0-SNAPSHOT-jar-with-dependencies.jar
   			check "Export" for otm-sim   
		> otm-mpi/lib/json-simple-1.1.1.jar
	> Sources > Add Content Root
		> openmpi-3.1.0/ompi/mpi/java
			Edit Root Properties > Package prefix : mpi

Test in IntelliJ

  • Run test.tests.XMLSplitterTest.main()

Environment

export OTMSIMJAR=<path to otm-sim jar>
export OTMMPIHOME=<path to otm-mpi folder>
chmod u+x $OTMMPIHOME/scripts/*.sh

Scripts

  • ./run_splitter.sh : Test offline scenario splitting with a small network.
  • ./compile_mpi.sh : Compile the program using mpijavac.
  • ./compare_veh.sh : Run small example with 2 processes, and compare result to single-process run.
  • ./run_mpi.sh : Run small example with 4 processes.

otm-mpi's People

Contributors

ggomes avatar ugirumurera avatar temetski avatar

Watchers

James Cloos 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.