https://github.com/carv-ics-forth/vine_talk

https://github.com/carv-ics-forth/vine_talk

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: CARV-ICS-FORTH
  • License: apache-2.0
  • Language: C
  • Default Branch: master
  • Size: 3.82 MB
Statistics
  • Stars: 1
  • Watchers: 6
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 8 years ago · Last pushed over 7 years ago
Metadata Files
Readme License

README.md

VineTalk Logo

This library aims to implement the main communication layer between the Application VMs and the Appliance VMs.

Requirements

To build Vinetalk you will require cmake, ccmake and (optionaly but recomened) libpoco:

ArchLinux

sudo pacman -S cmake poco

CentOS

sudo yum install cmake poco-foundation poco-net

Ubuntu

sudo apt-get install cmake cmake-curses-gui libpoco-dev

Folder layout

  • docs - Documentation
  • examples - Usage examples of the code
  • 3rdparty - Third-party libraries.
  • include - Header files that expose the public interface
  • src - Source code
    • core - The core implementation of the program/library
    • arch - The architectural specific implementations
    • utils: Contains helper modules, such as data structures, wrappers to external libraries, etc.
  • tests - Contain the tests that should be run with make test

API Documentation

Documentation

Building

Vinetalk is built as a shared library(libvine.so), using cmake and make:

First build and navigate to your build folder:

mkdir build;cd build

You must then configure your build using ccmake or cmake directly:

Configure with CCMake

Run ccmake .. in your build folder and press c once:

ccmake screenshot

Every line correspond to a build option(see below for option descriptions). To change/set an option press enter, this will toggle a Boolean flag or allow you to edit a string option. For string press enter again to end string input.

Once you have configured your build, press c followed by g.

Configure with CMake

To configure using, on the build folder you type:

cmake [Configuration Options] ..

Configuration Options

| Option | Description | |--------------------------------------------------|--------------------------------------------------------------------------------------| |-DALLOCSTATS=ON|OFF | Enable Allocator Statistics | |-DARCHALLOCMAXSPACE=NUMBER | Set maximum usable allocator space | |-DBREAKSENABLE | Enable breakdown reporting | |-DBUILDTESTS=ON|OFF | Build unit tests | |-DCMAKEBUILDTYPE=Debug | Produce debug symbols | |-DCOVERAGE=ON|OFF | Enable gcov coverage | |-DJVineTalk | Build java Vinetalk wrappers | |-DTRACEENABLE=ON|OFF | Enable trace file creation | |-DMMAPPOPULATE=ON|OFF | Add MAPPOPULTE flag in mmap. This will make vinetalkinit() slower, use wisely. | |-DUTILSQUEUECAPACITY=NUMBER | Maximum number of outstanding tasks per task queue (Up to 65536), MUST BE power of 2 | |-DVINECONFIGFILE=FILE | Vinetalk configuration file | |-Dasyncarchitecture=spin|mutex|ivshmem | Method used to ensure ordering | |-Dtarget_architecture=shm | Method used to transfer data |

CCMake

Run ccmake .. in your build forder and press c:

Build with Make

After configuring, run make

Testing

After building with tests enabled, you can run tests with make test.

Install

VineTalk can be 'installed' in two ways. System Wide install is the recomened method if deploying on a dedicated machine and have root/sudo access. User Specific installation is recomended if deploying in a shared machine with multiple users and dont have root/sudo access.

System Wide Install

After a successful build, run make install, with root privileges.

User Specific Install

You can use the LDLIBRARYPATH eviroment variable to load VineTalk from the build path.

export LDLIBRARYPATH=

To find the apropriate VineTalk build path, run:

make VineTalkBuildPath

Using the Vine Talk Library

After a successful build your build directory will have a libvine.so file as well as an include folder. Add your build path as a library path and link with vinetalk -lvine. Also add the build/includes folder to your gcc include paths -Ibuild/includes.

Configuration

In order to configure the vine_pipe endpoints, the user must provide architecture specific options.

These configuration options are stored at ~/.vinetalk and follow the format specified in utils/config.h.

This is a minimum working configuration:

shm_file vine_talk

The sections bellow specify the required keys for each supported vinetalk architecture:

Breakdowns

The BREAKS_ENABLE allow the generation of breakdowns(.brk) and headers (.hdr) for performance evaluation of the VineTalk system.

Steps: - Enable BREAKS_ENABLE option and rebuild VineTalk. - Run applications... - When the controller terminates, you will have .hdr and .brk files for all procedures that run.

Vdf

Vdf is a program located at the examples folder, allowing run time inspection of allocator statistics and breakdowns(and more to come). To be built it requires the Poco framework to be installed.

After running it spawns a web server at localhost:8888. The web ui allows inspection of allocator statistics and breakdowns.

shm

Shm implements the vinetalk API/protocol over a shared segment (POSIX or ivshmem).

Required Configuration Keys

| Option | Description | |----------|--------------------------------------------------| | shmfile | A file path specifying the shared segments file. | | shmsize | The size of the shared segment in bytes. |

Optional Configuration Keys

| Option | Description | |-------------|-------------------------------------------------------------------------------------------------------------------------| | shmtrunc | A boolean (0,1) setting if the shmfile should be truncated during initialization. | | shmoff | Start mmap from the given byte offset instead from 0.Can be used to split a single shm to multiple vinepipe instances. | | shm_ivshmem | Boolean , set to 1 if running inside a Vm with ivshmem. |

tracer

Tracer implements an api that tracing vine_talk interface.

Required Configuration Keys

Optional Configuration Keys

| Option | Description | |--------------------|-----------------------------------------------------------------------| | tracerbuffersize | The size of log buffer in bytes,default is 100 entries | | tracer_path | Existing folder, where trace log files will be placed, default is cwd |

VDF

VDF is a monitoring tool for Vinetalk, exposing statistics through a web interface. It accepts the following arguements:

| Arguement | Description | |--------------------|-----------------------------------------------------------------------| | embed | Skips html and head tags from output, allowing output to be embeded | | noalloc | Dont show allocation statistics | | noobj | Dont show object statistics | | nobreak | Dont show breakdowns |

Owner

  • Name: Computer Architecture and VLSI Systems (CARV) Laboratory
  • Login: CARV-ICS-FORTH
  • Kind: organization
  • Location: Heraklion, Greece

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels