Git Product home page Git Product logo

sharedmemoryparallelcadmium's Introduction

cadmium Build Status License codecov DOI

Introduction

This library provides model classes for multiple Discrete-Event Simulation formalisms and the tools to simulate those models. This project goal is replace CD++ with a more flexible and better performant implementation. Initial research in the architecture of Cadmium can be found in Sequential PDEVS architecture paper. Our primary building tool is clang, but we also test builds using gcc and visual studio when having the resources to do so.

Top features

  • Model validation at compile time.
  • PDEVS models simulated in a single thread.
  • Typed messages going through typed ports.
  • Time representation is independent of model implementation.

Quick start

Requirements

  • A C++17 compliant compiler.

Install

  • The library is headers only. Then, it is enough to put the include directory in the path the compiler looks up for them.

Running cadmium in concurrent mode

By default, cadmium runs single threaded. There is also a concurrent version behind a flag, but it requires Boost.Thread library and some changes need to be made when compiling:

  • The preprocessor variable CADMIUM_EXECUTE_CONCURRENT should be defined (add '-DCADMIUM_EXECUTE_CONCURRENT' when compiling ).
  • Boost.Thread and Boost.System libraries should be linked (add '-lboost_system -lboost_thread')

Building tests and examples

  • Boost.Test, if running the testsfor running the tests.
  • Boost.Build, if using the building files provided for convenience.

References

sharedmemoryparallelcadmium's People

Contributors

cruizm avatar gtrabes avatar juanlanuzag avatar laouen avatar sdavtaker 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.