Giter VIP home page Giter VIP logo

spider's Introduction

PREESM

PREESM (the Parallel and Real-time Embedded Executives Scheduling Method) is an open source rapid prototyping and code generation tool. It is primarily employed to simulate signal processing applications and generate code for multi-core Digital Signal Processors. PREESM is developed at the Institute of Electronics and Telecommunications-Rennes (IETR) in collaboration with Texas Instruments France in Nice.

Build Status

All branches [Github Action] SonarCloud
master Build & Test Quality Gate Status Coverage
develop Build & Test Quality Gate Status Coverage

Documentation

Documentation is available online at http://preesm.org/website/

Install>

Releases are available online:

Changelog

See release notes.

Contact

This project is maintained by the Preesm maintainers. Contact us using one of the following:

License

This project is distributed under the CeCILL-C license (see LICENSE file).

spider's People

Contributors

hmiomand avatar jheulot avatar kdesnos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

louisbob mfkiwl

spider's Issues

Add Expected Schedule export

It would be great if the expected schedule from Spider is exported as the real schedule is exported.
Comparison between Real and Espected is very useful for debugging

Broadcast not optimized

Spider version 1.4.1. When using Broadcast Actor, if a value is generated x times, the Actor copies it x times instead of reusing the same value. If x or if the data size are big, it can take a lot of memory.

Non-desirable comma in the generated file

It seems that a comma is printed in the "pi_top.cpp", even if no static parameter is present in the ".pi".
In the general case, I obtain a code like this:

/* Top graph definition */
top(topVertex, );

Of course, this fact leads to a compilation error. Deleting the comma, compilation can finish successfully.
I noticed that, if there is at least one static parameter, the generated code is well printed, and no comma is added after the name of this parameter (the last argument).

change long or long long to standard uint64_t

Currently repetition vector is computed either through topology matrix or LCM using long (or long long).
To avoid any problem of overflow (if any) reproducibility, those types should be set to standard uint64_t type.

Delays setters and getters not generated by codegen

Spider version 1.4.1. Generated codegen does not add setters and getters to delays. Instead, adds edges to the delays.

Code example:
test_auto_layout_error.zip
File pi_test_delay.cpp generated by codegen has 3 edges objects when it should have only one. The first edge containing the delay does not define setter and getter as it should.

undefined reference stopThreads

When compiling current develop version of Spider (00b1059) with code generated with develop version of preesm (39c6eedcfdaca76252), there is an undefined reference to variable stopThreads.

Definition of max values

There are some hard coded constants like
MAX_IO_EDGES and MAX_MSG_SIZE
that should be set from the generated main.cpp the same way the
size of the shared memory is.
This would avoid "painfull" search of why spider crashes on some applications.

(Building Spider) Website tutorial

preesm.insa-rennes.fr/website/index.php?id=building-spider

The branch pthread_platform doesn't exist anymore and, maybe, the tutorial should be updated

SPiDER freezing after a while

In the application that can be downloaded from [1], after a while, using SpiderCodege.workflow with the 4CorePapify.scenario (Papify is completely disabled in both the workflow and the scenario) the application freezes after running for a while.

The timing in which the application is running varies but it comes faster when reducing the parallelism using the arrows.

[1] https://drive.upm.es/index.php/s/LSCUJ6dwh6lYHHt

Performance loss with PAPIFY disabled

After analyzing applications whit and without PAPIFY configurations and enabling/disabling the monitoring, we have discovered a performance issue associated to the use of papify within SPiDER. The behaviour is the following one:

  • No monitoring configuration and papify flag in main.cpp 'false' --> 11.8 FPS
  • No monitoring configuration and papify flag in main.cpp 'true' --> 10.4 FPS
  • Monitoring configuration and papify flag main.cpp 'false' --> 11.8 FPS
  • Monitoring configuration and papify flag main.cpp 'true' --> 11.4 FPS

With these values, it seems that when SPiDER tries to use PAPIFY without any configuration it spends extra time looking for it unsuccessfully. The (logic) workaround of disabling PAPIFY if it is not used works, but maybe some improvements can be done internally to avoid this behaviour, because it is slowing down SPiDER applications.

(CodeGen) Spider codegen does not find timings for actors with identical names

During code generation, Spider fails at looking up the timings for actors with identical name within different hierarchy level. For instance (using actor path notation), actors topgraph/Display and topgraph/subgraph/Display can coexist, but Spider will fail to generate the code that sets the timings for the actor topgraph/Display.

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.