SiPS 2016 Paper and Slides

Posted the 10.26.2016 by K. Desnos

We are presenting our latest work on "Distributed Memory Allocation Technique for Synchronous Dataflow Graphs" during the SiPS conference in Dallas.

You can find a copy of the paper and presented slides hereafter:

Preesm Release 2.2.4

Posted the 09.30.2016 by K. Desnos

We just released version 2.2.4 of PREESM, and version 1.1.8 of DFTools. You can find these new versions on our update site:

Please note that you will need to update your code generation workflows when using the new version. Ports of workflow tasks responsible for Memory Allocation and Code Generation were updated. MEGs replaces MemEx for Memory Allocation output port and Code Generation input port. Alternatively, you can also download an updated workflow from the tutorials, or on GitHub.

New features

  • New support for distributed memory architectures during memory allocation and code generation. (cf. Memory allocation task documentation).
  • New workflow tasks documentation describing purpose, inputs/outputs, parameters, and errors of tasks.
  • C and InstrumentedC code generation supports following new processing elements types: ARM, GPP, ARM_CortexA7, ARM_CortexA15.
  • Generated C code supports finite number of graph iteration.
  • New systematic simplification of Fork-Join and Join-Fork patterns during single-rate transformation.

Detailed changes and bug fixes for this new version is available in the changelog.

Tutorial 1 Update

Posted the 09.21.2016 by K. Desnos

The tutorial Parallelize an Application on a Multicore CPU has been updated.

The following changes have been made:

  • SDL 2.0 library replaces SDL 1.2.
  • Visual Studio 2013 replaces Visual Studio 2008.
  • Projects are now compatible with latest versions of CMake.

Happy New Year - Preesm Release 2.2.3

Posted the 01.04.2016 by K. Desnos

Preesm Team whishes you a happy new year 2016.

We just released version 2.2.3 of PREESM, and version 1.1.7 of DFTools. You can find these new versions on our update site:


  • Error/warning checking mechanism for PiGraphs integrated in eclipse.
  • New SVG exporter for PiGraphs
  • Lighten most decorator related computation to improve PiMM editor performance.

Bug fixes

  • Fix the abnormally long execution time of mapper.

Preesm Release 2.2.1

Posted the 09.14.2015 by K. Desnos

[EDIT 09.16.2015] Preesm was updated to version 2.2.2 after correction of a minor bug in the graphical interface.

We just released version 2.2.1 of PREESM, version 1.1.6 of DFTools and version 1.3.15 of Graphiti. You can find these new versions on our update site:

New Feature

  • New automatic layout feature for PiSDF graph (Ctrl+Shift+F).
  • New hotkeys in PiSDF graph editor. (Right-click on graph elements for new key combinations).
  • New Hierarchy flattening algorithm.
  • Promela exporter following SDF3 syntax (task id "org.ietr.preesm.algorithm.exportPromela.PromelaExporter").
  • Display associated prototypes in actor properties.
  • Throughput and Liveness evaluation for IBSDF graphs. (not documented yet)
  • Add a "release notes" file.


  • Migration to java 8.
  • Better excetion handling and signaling during workflow execution.
  • Migration to Graphiti 0.12.0
  • Adding Maven nature to project.
  • Code cleanup (no more warnings !)

Bug fixes

  • Cyclic parameter dependencies crash.
  • File access"Not local" and "Missing" resources in Codegen and memory scripts.
  • Problem with UTF-8 characters in header parser.

PREESM 2.1: Minor releases

Posted the 05.26.2015 by C. Guy

Preesm 2.1.3 removes dependencies to CDT and add some graphical improvements and provide wokflow execution through command line interface.

DFTools 1.1.5 add some minor UI improvements.

Preesm 2.1.3, DFTools 1.1.5 and Graphiti 1.3.14 also include a source refactoring and cleaning.

Posted the 12.04.2014 by C. Guy

Preesm 2.1.2 corrects the problem with embedded memory scripts for special actors (fork, join, roundbuffer and broadcast).

Posted the 11.24.2014 by K. Desnos

Preesm 2.1.1 contains a bug-fix for infinite loop behavior under 32bit Windows and Mac OS.

PREESM 2.1.0 and DFTools 1.1.3

Posted the 11.20.2014 by C. Guy

The last versions of PREESM (2.1.0) and DFTools (1.1.3) has been released on our update-site (see the side bar for a link).

These versions provide several bugfixes and improvements :

  • a new workflow task for transformation of static PiMM algorithms (without configuration actors) is now available;
    • id: org.ietr.preesm.pimm.checker.task.PiMMAlgorithmCheckerTask;
    • input and output are a PiGraph (port name: PiMM).
  • a checker for PiMM algorithm is now available, it can be accessed by a right click on a .pi file > PREESM > Algorithm Checker or through a workflow task;
    • id: org.ietr.preesm.experiment.pimm2sdf.StaticPiMM2SDFTask;
    • inputs are a PiGraph (port name: PiMM) and a PreesmScenario (port name: scenario);
    • output is a SDFGraph (port name: SDF).
  • editor now supports rename refactorings and copy/paste of pairs of .pi/.diagram files;
  • bug preventing to set a new refinement to an actor without an initialization function has been corrected;
  • export of .graphml files (through DAG and SDF exporters) in non-existing folders is now possible (folders are created).

Simultaneous release of PREESM, DFTools and Graphiti

Posted the 03.21.2014 by C. Guy

We just released version 1.1.0 of PREESM, version 1.1.0 of DFTools and version 1.3.12 of Graphiti. You can find these new versions on our update site :

PREESM v1.1.0

New features (under the form of new PREESM workflow tasks):

  • Generation of C++ code from a PiMM model. The generated code build an PiSDF graph equivalent to the model when executed. Generation is done by the org.ietr.preesm.experiment.pimm.cppgenerator.scala.PiMMCppGenerationTask plug-in.
  • Connection of subgraphs of a PiMM model to obtain a fully connected model (i.e., where refinement files are replaced by connections between objects). Connection is done by the org.ietr.preesm.experiment.pimm.subgraph.connector.SubgraphConnectorTask plug-in.
  • Optimization of IBSDF graphs. The graphs are cleaned from useless vertices in order to reduce their size and speed up following tasks of the workflow. Optimization is done by the org.ietr.preesm.algorithm.optimization.AlgorithmOptimizationTask plug-in.
  • Export of IBSDF graphs to SDF For Free (SDF3) xml format. Export is done by the org.ietr.preesm.algorithm.exportSdf3Xml.Sdf3Exporter plug-in.

+ Minor performance improvement in MEG addEdge operation.

DFTools v1.1.0

New features:

  • Hierarchy flattening and single-rate transformation automatically add a new port for each fifo to special vertices (fork/join/broadcast/roundbuffer).
  • New port modifier: "unused".
  • Hierarchy flattening and single-rate transformation automatically add port modifiers to most special vertices
  • (fork/join/broadcast/roundbuffer).

Bugs fixed:

  • Insertion of edges with the wrong production rate, provoking non-schedulable graph errors (see issue#3 of preesm repository).
  • Wrong BRV computation on unconnected actors.
  • Wrong BRV computationwith implicit interfaces.
  • Ports of Broadcast and RoundBuffer vertices were not cloned correctly.

Graphiti v1.3.12

Code refactoring.

Export/Import graphs to/from SDF For Free (SDF3)

Posted the 03.20.2014 by K. Desnos

You are working both with Preesm and the SDF For Free (SDF3) framework and you are tired of modeling your applications in both tools; we have a solution for you. It is now possible to convert SDF Graphs from the SDF3 format to Preesm, and vice-versa. To do so, simply follow our SDF3 tutorial.

Our update site has moved

Posted the 01.29.2014 by C. Guy

We recently moved our update site. The new address to find install the PREESM, DFTools and Graphiti plug-ins is: You can also find it on the right side bar of the website, under Preesm Update Site.

Migration to git and release

Posted the 01.29.2014 by C. Guy

The Preesm team recently moved from SVN to git and from Sourceforge to Github. Our projects are visible on our Github page. Issues can be notified on the issues pages of the differents repositories (Preesm issues, DFTools issues, Graphiti issues).

We also released version 1.0.0 of Preesm, which notably correct a bug about hierarchical actors.

Release Candidate 1.0.0

Posted the 01.29.2014 by C. Guy

We issue today on our update site a release candidate designed to support the latest version of Graphiti (all dependencies to Graphiti 0.9.2 have been replaced to dependencies to Graphiti 10). Furthermore, several bugs have been fixed.

Meet us at HiPEAC 2014 in Vienna

Posted the 01.16.2014 by K. Desnos

We will present our latest work on Preesm during the poster session on January 20 at HiPEAC 2014 in Vienna. For more information about this event:
Don't hesitate to contact us to arrange a meeting during the event or if you want a personal demonstration of Preesm.
Edit: The poster presented at HiPEAC is now available here.

Preesm Tutorial for dispatching code on a Texas Instruments TMS320C6678 multicore DSP

Posted the 12.23.2013 by M. Pelcat

Actors coded in C are combined in a dataflow graph and automatically mapped and scheduled on the 8 c66x cores of a Texas Instruments TMS320C6678 processor. The complete tutorial can be found here.

New publications

Posted the 11.29.2013 by K. Desnos

Five new publications are now available on the "Publications" page:

Release 1.0.0

Posted the 10.30.2013 by M. Pelcat

Release 1.0.0 is now available on the update site. New features include:

  • New Xtend-based code generation
  • Updated fancier Gantt display
  • Support for Multicore x86 processors
  • Support for the Texas Instruments Multi-c66x processors
  • And many bug fixes

Have a look at the tutorials for more details.


Posted the 10.29.2013 by K. Desnos

You want an easy way to follow the Preesm project? Your wish is granted. We just created a new Twitter account where we will post news about Preesm updates, new features and other related topics. Stay tuned for upcoming new, and follow @PreesmProject on twitter.

New developer tutorial

Posted the 12.12.2012 by K. Desnos

A new tutorial explaining how to create your own workflow tasks is now available in the Developer page. This tutorial is a step-by-step guide that covers both the creation of a new Eclipse plugin and the creation, the configuration, and the implementation of a new workflow task. The tutorial can be found here.

New publication

Posted the 11.29.2012 by K. Desnos

A new publications is now available on the "Publications" page:

New publications

Posted the 07.27.2012 by K. Desnos

Two new publications are now available on the "Publications" page:

New tutorials

Posted the 04.24.2012 by M. Pelcat

Flash tutorials are now replaced by text tutorials. Preesm now targets Eclipse 4.2 and Java 7. A new developer tutorial can be found here and a new user tutorial here.

Describe Applications with CAL Actor Language

Posted the 03.12.2012 by K. Desnos

Applications described with CAL Actor Language (CAL) can now be imported into Preesm through the Open-RVC-CAL Compiler (Orcc). To do so, applications are compiled using the "Embedded C" backend of Orcc. This compilation process takes as inputs the CAL description of the actors and a network of instances of these actors. This compilation process produces a C source code file for each actor and an algorithm graph equivalent to the input network.
Only applications with a Synchronous Data-Flow behavior will pass the compilation process. An example of application is available here.

New Developer Page

Posted the 11.21.2011 at 11:24 by K. Desnos

A new Developer page was added to this website. All information enabling you to modify and improve Preesm to your needs will be posted on this page. A new flash tutorial was added to this page to show you how to setup an Eclipse instance with the Preesm project.

News Page

Posted the 11.21.2011 at 11:05 by K. Desnos

This new page allows you to easily follow the activity around the Preesm project such as new version releases, new publications, additions of functionalities or new tutorials. The latest news will also be present on the home page of this website.