ChangeLog 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. # StarPU --- Runtime system for heterogeneous multicore architectures.
  2. #
  3. # Copyright (C) 2009, 2010, 2011 Université de Bordeaux 1
  4. # Copyright (C) 2010, 2011, 2012 Centre National de la Recherche Scientifique
  5. #
  6. # StarPU is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU Lesser General Public License as published by
  8. # the Free Software Foundation; either version 2.1 of the License, or (at
  9. # your option) any later version.
  10. #
  11. # StarPU is distributed in the hope that it will be useful, but
  12. # WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. #
  15. # See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. StarPU 1.0 (svn revision xxxx)
  17. ==============================================
  18. The extensions-again release
  19. * Allow users to disable asynchronous data transfers between CPUs and
  20. GPUs.
  21. * Update OpenCL driver to enable CPU devices (the environment variable
  22. STARPU_OPENCL_ON_CPUS must be set to a positive value when
  23. executing an application)
  24. * struct starpu_data_interface_ops --- operations on a data
  25. interface --- define a new function pointer allocate_new_data
  26. which creates a new data interface of the given type based on
  27. an existing handle
  28. * Make environment variables take precedence over the configuration
  29. passed to starpu_init()
  30. * Add man pages for some of the tools
  31. * Add reduction mode to starpu_mpi_insert_task
  32. * Add C++ application example in examples/cpp/
  33. * Increase default value for STARPU_MAXCPUS -- Maximum number of
  34. CPUs supported -- to 64.
  35. * Libtool interface versioning has been included in libraries names
  36. (libstarpu-1.0.so, libstarpumpi-1.0.so,
  37. libstarpufft-1.0.so, libsocl-1.0.so)
  38. * Enable by default the SOCL extension.
  39. * Enable by default the GCC plug-in extension.
  40. * Add a field named magic to struct starpu_task which is set when
  41. initialising the task. starpu_task_submit will fail if the
  42. field does not have the right value. This will hence avoid
  43. submitting tasks which have not been properly initialised.
  44. * Make where field for struct starpu_codelet optional. When unset, its
  45. value will be automatically set based on the availability of the
  46. different XXX_funcs fields of the codelet.
  47. * Add a hook function pre_exec_hook in struct starpu_sched_policy.
  48. The function is meant to be called in drivers. Schedulers
  49. can use it to be notified when a task is about being computed.
  50. * Define access modes for data handles into starpu_codelet and no longer
  51. in starpu_task. Hence mark (struct starpu_task).buffers as
  52. deprecated, and add (struct starpu_task).handles and (struct
  53. starpu_codelet).modes
  54. * Install headers under $includedir/starpu/1.0.
  55. * Deprecate cost_model, and introduce cost_function, which is provided
  56. with the whole task structure, the target arch and implementation
  57. number
  58. * Permit the application to provide its own size base for performance
  59. models
  60. * Fields xxx_func of struct starpu_codelet are made deprecated. One
  61. should use instead fields xxx_funcs.
  62. * Applications can provide several implementations of a codelet for the
  63. same architecture.
  64. * A new multi-format interface permits to use different binary formats
  65. on CPUs & GPUs, the conversion functions being provided by the
  66. application and called by StarPU as needed (and as less as
  67. possible).
  68. * Add a gcc plugin to extend the C interface with pragmas which allows to
  69. easily define codelets and issue tasks.
  70. * Add codelet execution time statistics plot.
  71. * Add bus speed in starpu_machine_display.
  72. * Add a StarPU-Top feedback and steering interface.
  73. * Documentation improvement.
  74. * Add a STARPU_DATA_ACQUIRE_CB which permits to inline the code to be
  75. done.
  76. * Permit to specify MPI tags for more efficient starpu_mpi_insert_task
  77. * Add SOCL, an OpenCL interface on top of StarPU.
  78. * Add gdb functions.
  79. * Add complex support to LU example.
  80. * Add an OpenMP fork-join example.
  81. * Permit to use the same data several times in write mode in the
  82. parameters of the same task.
  83. * Some types were renamed for consistency. The tools/dev/rename.sh
  84. script can be used to port code using former names. You can also
  85. choose to include starpu_deprecated_api.h (after starpu.h) to keep
  86. using the old types.
  87. StarPU 0.9 (svn revision 3721)
  88. ==============================================
  89. The extensions release
  90. * Provide the STARPU_REDUX data access mode
  91. * Externalize the scheduler API.
  92. * Add theoretical bound computation
  93. * Add the void interface
  94. * Add power consumption optimization
  95. * Add parallel task support
  96. * Add starpu_mpi_insert_task
  97. * Add profiling information interface.
  98. * Add STARPU_LIMIT_GPU_MEM environment variable.
  99. * OpenCL fixes
  100. * MPI fixes
  101. * Improve optimization documentation
  102. * Upgrade to hwloc 1.1 interface
  103. * Add fortran example
  104. * Add mandelbrot OpenCL example
  105. * Add cg example
  106. * Add stencil MPI example
  107. * Initial support for CUDA4
  108. StarPU 0.4 (svn revision 2535)
  109. ==============================================
  110. The API strengthening release
  111. * Major API improvements
  112. - Provide the STARPU_SCRATCH data access mode
  113. - Rework data filter interface
  114. - Rework data interface structure
  115. - A script that automatically renames old functions to accomodate with the new
  116. API is available from https://scm.gforge.inria.fr/svn/starpu/scripts/renaming
  117. (login: anonsvn, password: anonsvn)
  118. * Implement dependencies between task directly (eg. without tags)
  119. * Implicit data-driven task dependencies simplifies the design of
  120. data-parallel algorithms
  121. * Add dynamic profiling capabilities
  122. - Provide per-task feedback
  123. - Provide per-worker feedback
  124. - Provide feedback about memory transfers
  125. * Provide a library to help accelerating MPI applications
  126. * Improve data transfers overhead prediction
  127. - Transparently benchmark buses to generate performance models
  128. - Bind accelerator-controlling threads with respect to NUMA locality
  129. * Improve StarPU's portability
  130. - Add OpenCL support
  131. - Add support for Windows
  132. StarPU 0.2.901 aka 0.3-rc1 (svn revision 1236)
  133. ==============================================
  134. The asynchronous heterogeneous multi-accelerator release
  135. * Many API changes and code cleanups
  136. - Implement starpu_worker_get_id
  137. - Implement starpu_worker_get_name
  138. - Implement starpu_worker_get_type
  139. - Implement starpu_worker_get_count
  140. - Implement starpu_display_codelet_stats
  141. - Implement starpu_data_prefetch_on_node
  142. - Expose the starpu_data_set_wt_mask function
  143. * Support nvidia (heterogeneous) multi-GPU
  144. * Add the data request mechanism
  145. - All data transfers use data requests now
  146. - Implement asynchronous data transfers
  147. - Implement prefetch mechanism
  148. - Chain data requests to support GPU->RAM->GPU transfers
  149. * Make it possible to bypass the scheduler and to assign a task to a specific
  150. worker
  151. * Support restartable tasks to reinstanciate dependencies task graphs
  152. * Improve performance prediction
  153. - Model data transfer overhead
  154. - One model is created for each accelerator
  155. * Support for CUDA's driver API is deprecated
  156. * The STARPU_WORKERS_CUDAID and STARPU_WORKERS_CPUID env. variables make it possible to
  157. specify where to bind the workers
  158. * Use the hwloc library to detect the actual number of cores
  159. StarPU 0.2.0 (svn revision 1013)
  160. ==============================================
  161. The Stabilizing-the-Basics release
  162. * Various API cleanups
  163. * Mac OS X is supported now
  164. * Add dynamic code loading facilities onto Cell's SPUs
  165. * Improve performance analysis/feedback tools
  166. * Application can interact with StarPU tasks
  167. - The application may access/modify data managed by the DSM
  168. - The application may wait for the termination of a (set of) task(s)
  169. * An initial documentation is added
  170. * More examples are supplied
  171. StarPU 0.1.0 (svn revision 794)
  172. ==============================================
  173. First release.
  174. Status:
  175. * Only supports Linux platforms yet
  176. * Supported architectures
  177. - multicore CPUs
  178. - NVIDIA GPUs (with CUDA 2.x)
  179. - experimental Cell/BE support
  180. Changes:
  181. * Scheduling facilities
  182. - run-time selection of the scheduling policy
  183. - basic auto-tuning facilities
  184. * Software-based DSM
  185. - transparent data coherency management
  186. - High-level expressive interface