Commit f765bba1 authored by Samuel GAIST's avatar Samuel GAIST Committed by Flavio TARSETTI

[doc][algorithms] Remove edition part

parent b267f967
......@@ -29,130 +29,8 @@
Algorithms are user-defined piece of software that run within the blocks of a
toolchain. An algorithm can read data on the input(s) of the block and write
processed data on its output(s). For detailed information see the "Algorithms" section of "Getting Started with BEAT" in `BEAT documentation`_.
.. _Algorithm Editor:
Manipulating an Algorithm
-------------------------
The Algorithm editor can be accessed via the "User Resources" tab on your BEAT
login page (click on "User Resources" and select "Algorithms" from the
drop-down list). On your Algorithms page you should see something similar to
the following:
.. image:: img/SS_algorithms_info.*
Note the search-box and the privacy-filter above the list of algorithms
displayed on the page. You can use these to limit your search. For example,
entering "anjos" in the search-box will allow you to list only those algorithms
that have the string "anjos" in the algorithm name. An example is shown in the
image below.
.. image:: img/SS_algorithms_anjos_search.*
There are several options when defining algorithms. They can be *Analyzer*, and *Splittable*.
*Analyzer* algorithms are special algorithms where the purpose is to generate
statistics about the processing results (graphs, means, variances, etc.).
Usually, biometric data processing algorithms are *Splittable*, indicating
to the platform that these algorithms can be executed in a distributed fashion,
depending on the available computing resources.
There are also two types of algorithms depending on the way they handle data samples that are fed to them. They can be *Sequential* or *Autonomous*. For more information see the "Algorithms" section of "Getting Started with BEAT" in `BEAT documentation`_.
There are two basic ways to create an algorithm at the |project| platform. You
may either start from scratch or fork a new copy of an existing algorithm and edit that.
Create an algorithm from scratch
================================
To create an algorithm from scratch, start by clicking the ''new'' button (green
button on the top-right corner on the Algorithms page).
You should see a web-page similar to what is displayed below:
.. image:: img/algorithm_new.*
For instructions on how to create an algorithm from scratch, please refer to the Section of `algorithm editor`_ and see the "Algorithms" section of "Getting Started with BEAT" in `BEAT documentation`_ to understand how to write the source code for new algorithms.
Edit an existing algorithm
==========================
In general, an existing algorithm that is already used in a toolchain cannot be edited.
However, a new copy can be created by forking an existing algorithm, and this copy can
be edited to create a new algorithm.
The advantage is that the forked algorithm provides reference templates
assisting user in creating the new algorithm. To fork an algorithm displayed in
the list of algorithms, click on the violet ''fork'' icon to the right of the algorithm name.
You should see a webpage similar to what is displayed below
.. image:: img/algorithm_fork.*
Please refer to the Section of :ref:`algorithm editor` for creating an algorithm.
New Version
-----------
You can update your existing algorithm by clicking a new version button.
Please refer to the Section of :ref:`algorithm editor` for creating an algorithm.
Editor
------
To create an algorithm, there are seven sections which are:
* Name: the name of algorithm.
* Algorithm option: Analyzer or Splittable.
* Algorithm type: Sequential or Autonomous.
* Language: The language used to implement the algorithm (Python or C++).
* Endpoints: Define the properties of the Input and Output endpoints for this algorithm.
* Parameters: Define the configuration-parameters for the algorithm.
When you have saved the algorithm you can add documentation that describes that algorithm as well.
For Python-based algorithms only:
* Libraries: If there are functions in a library, you can add them for the algorithm to use.
* Source code: The (Python) code implementing the algorithm.
You should see a webpage similar to what is displayed below:
.. image:: img/algorithm_editor.*
How to debug?
=============
Even though the |project| platform is an evaluation system (as opposed to a
development tool), porting algorithms to run on it may require some debugging,
specially for blocks with multiple input groups with different synchronization
channels. For that purpose, the standard output and error streams for each
block ran in an experiment are logged for later inspection through the
experiment view page (see our :ref:`Experiments` section). This include stack
traces of uncaught exceptions, but also any data printed by an algorithm or
associated libraries, on any of these streams.
You may take advantage of this to include ``print`` statements or similar in
your algorithm code, to help with your debugging.
.. warning::
To comply with data privacy requirements in our `terms of service`_, only the
very last 4 kilobytes of these streams is kept for user inspection.
processed data on its output(s). For detailed information see the "Algorithms" section
of "Getting Started with BEAT" in `BEAT documentation`_.
.. _binary algorithms:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment