Code Monkey home page Code Monkey logo

serialbox's Introduction

serialbox

Introduction

The Serialbox is a set of tools around serialization / deserialization of data. The box is used in several projects for building validation frameworks against reference runs. This is useful in the scope of rewrite of large codes, or when porting codes to multiple computing architectures. As an example, porting scientific codes to graphical processing units, that require continuous validation against the existing x86 code.

Structure

  • src/ : It the main core of the Serialbox, written in C++, which provides
    • C++ functionality that can be used to serialize data from a reference run.
    • Interfaces for deserializing into memory data structures
    • Control the metadata of the fields being serialized/deserialized.
    • src/utils: logger and other C++ utilities
    • wrapper: a C wrapper that allows to interoperate the core C++ functionality from other languages like Fortran
  • doc/ : latex documentation, tutorials and presentations
  • python/ : contains various python tools based on the Serialbox format, namely
    • pp_ser: a tiny DSL/parser that facilitates inserting Serialbox statements into your Fortran Code.
    • Visualizer: a python tool that helps visualizing serialized data
  • tools/ : various tools used to validation, dumping, converting or comparing of multiple serialized runs, etc.
  • fortran/ : fortran interfaces to the Serialbox C++ functionality

Building

simply mkdir build; cd build; cmake ../; make [install]

for building the documentation make doc

CSCS Environment

On daint, greina, kesch and lema a Serialbox installation is provided by jenkins (daily checkout of MeteoSwiss-APN master). If you want to compile and install Serialbox manually you can do so using the build environment.

Go to your checkout of Serialbox, then execute:

git clone [email protected]:C2SM-RCM/buildenv.git
./buildenv/package_builder/build_apkg.sh -p serialbox -d . --local -c $COMPILER

This will build and install serialbox into the ./install folder with the compiler $COMPILER (usually gnu or cray). If the -c $COMPILER option is omitted the script will build against all available targets.

Refer to the script for further configuration options.

serialbox's People

Contributors

clementval avatar andyspiros avatar pspoerri avatar cosunae avatar pallaskat avatar lxavier 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.