Home My Page Projects StarPU
Summary Activity Forums Tracker Lists Tasks Docs News SCM Files

File Release Notes and Changelog

Release Name: starpu-1.0.0

Change Log
StarPU 1.0.0 (svn revision 6306)
==============================================
The extensions-again release

New features:
  * Add SOCL, an OpenCL interface on top of StarPU.
  * Add a gcc plugin to extend the C interface with pragmas which allows to
        easily define codelets and issue tasks.
  * Add reduction mode to starpu_mpi_insert_task.
  * A new multi-format interface permits to use different binary formats
        on CPUs & GPUs, the conversion functions being provided by the
        application and called by StarPU as needed (and as less as
        possible).
  * Deprecate cost_model, and introduce cost_function, which is provided
        with the whole task structure, the target arch and implementation
        number.
  * Permit the application to provide its own size base for performance
        models.
  * Applications can provide several implementations of a codelet for the
        same architecture.
  * Add a StarPU-Top feedback and steering interface.
  * Permit to specify MPI tags for more efficient starpu_mpi_insert_task

Changes:
  * Fix several memory leaks and race conditions
  * Make environment variables take precedence over the configuration
        passed to starpu_init()
  * Libtool interface versioning has been included in libraries names
        (libstarpu-1.0.so, libstarpumpi-1.0.so,
        libstarpufft-1.0.so, libsocl-1.0.so)
  * Install headers under $includedir/starpu/1.0.
  * Make where field for struct starpu_codelet optional. When unset, its
        value will be automatically set based on the availability of the
        different XXX_funcs fields of the codelet.
  * Define access modes for data handles into starpu_codelet and no longer
        in starpu_task. Hence mark (struct starpu_task).buffers as
        deprecated, and add (struct starpu_task).handles and (struct
        starpu_codelet).modes
  * Fields xxx_func of struct starpu_codelet are made deprecated. One
        should use fields xxx_funcs instead.
  * Some types were renamed for consistency. when using pkg-config libstarpu,
        starpu_deprecated_api.h is automatically included (after starpu.h) to
        keep compatibility with existing software. Other changes are mentioned
        below, compatibility is also preserved for them.
        To port code to use new names (this is not mandatory), the
        tools/dev/rename.sh script can be used, and pkg-config starpu-1.0 should
        be used.
  * The communication cost in the heft and dmda scheduling strategies now
        take into account the contention brought by the number of GPUs. This
        changes the meaning of the beta factor, whose default 1.0 value should
        now be good enough in most case.

Small features:
  * Allow users to disable asynchronous data transfers between CPUs and
        GPUs.
  * Update OpenCL driver to enable CPU devices (the environment variable
        STARPU_OPENCL_ON_CPUS must be set to a positive value when
        executing an application)
  * struct starpu_data_interface_ops --- operations on a data
        interface --- define a new function pointer allocate_new_data
        which creates a new data interface of the given type based on
        an existing handle
  * Add a field named magic to struct starpu_task which is set when
        initialising the task. starpu_task_submit will fail if the
        field does not have the right value. This will hence avoid
        submitting tasks which have not been properly initialised.
  * Add a hook function pre_exec_hook in struct starpu_sched_policy.
        The function is meant to be called in drivers. Schedulers
        can use it to be notified when a task is about being computed.
  * Add codelet execution time statistics plot.
  * Add bus speed in starpu_machine_display.
  * Add a STARPU_DATA_ACQUIRE_CB which permits to inline the code to be
        done.
  * Add gdb functions.
  * Add complex support to LU example.
  * Permit to use the same data several times in write mode in the
        parameters of the same task.

Small changes:
  * Increase default value for STARPU_MAXCPUS -- Maximum number of
        CPUs supported -- to 64.
  * Add man pages for some of the tools
  * Add C++ application example in examples/cpp/
  * Add an OpenMP fork-join example.
  * Documentation improvement.