~ubuntu-branches/ubuntu/saucy/starpu-contrib/saucy

« back to all changes in this revision

Viewing changes to doc/starpu.info-1

  • Committer: Package Import Robot
  • Author(s): Samuel Thibault
  • Date: 2012-04-12 15:04:15 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20120412150415-gzp107thb5wknugm
Tags: 1.0.1-1
* New upstream release.
* Explicitly use gcc-4.6 to fix plugin build (Closes: Bug#667381).
* Use gcc-4.5 for starpu, as nvcc does not actually support all 4.6
  features, notably not __float128.
* patches/relax-gcc-plugin: Relax gcc-4.6 dependency for plugins to upstream
  release version (Closes: #670422)
* watch: Fix URL.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
Preface
27
27
*******
28
28
 
29
 
This manual documents the usage of StarPU version 1.0.0.  It was last
30
 
updated on 28 March 2012.
 
29
This manual documents the usage of StarPU version 1.0.1.  It was last
 
30
updated on 29 March 2012.
31
31
 
32
32
   Copyright (C) 2009-2011  Universite' de Bordeaux 1
33
33
 
251
251
---------------------
252
252
 
253
253
Research papers about StarPU can be found at
254
 
 
255
 
   <http://runtime.bordeaux.inria.fr/Publis/Keyword/STARPU.html>
256
 
 
257
 
   Notably a good overview in the research report
258
 
 
259
 
   <http://hal.archives-ouvertes.fr/inria-00467677>
 
254
<http://runtime.bordeaux.inria.fr/Publis/Keyword/STARPU.html>.
 
255
 
 
256
   A good overview is available in the research report at
 
257
<http://hal.archives-ouvertes.fr/inria-00467677>.
260
258
 
261
259
 
262
260
File: starpu.info,  Node: Installing StarPU,  Next: Using StarPU,  Prev: Introduction,  Up: Top
309
307
 
310
308
   (1) The client side of the software Subversion can be obtained from
311
309
<http://subversion.tigris.org>. If you are running on Windows, you will
312
 
probably prefer to use TortoiseSVN from <http://tortoisesvn.tigris.org/>
 
310
probably prefer to use TortoiseSVN (http://tortoisesvn.tigris.org/).
313
311
 
314
312
 
315
313
File: starpu.info,  Node: Optional dependencies,  Prev: Getting Sources,  Up: Downloading StarPU
317
315
2.1.2 Optional dependencies
318
316
---------------------------
319
317
 
320
 
The topology discovery library, `hwloc', is not mandatory to use StarPU
321
 
but strongly recommended. It allows to increase performance, and to
322
 
perform some topology aware scheduling.
323
 
 
324
 
   `hwloc' is available in major distributions and for most OSes and
325
 
can be downloaded from <http://www.open-mpi.org/software/hwloc>.
 
318
The `hwloc' topology discovery library
 
319
(http://www.open-mpi.org/software/hwloc) is not mandatory to use StarPU
 
320
but strongly recommended.  It allows for topology aware scheduling,
 
321
which improves performance.  `hwloc' is available in major free
 
322
operating system distributions, and for most operating systems.
326
323
 
327
324
 
328
325
File: starpu.info,  Node: Configuration of StarPU,  Next: Building and Installing StarPU,  Prev: Downloading StarPU,  Up: Installing StarPU
1777
1774
 
1778
1775
   * Measured at runtime and refined by regression
1779
1776
     (`STARPU_*REGRESSION_BASED' model type). This still assumes
1780
 
     performance regularity, but can work with various data input
1781
 
     sizes, by applying regression over observed execution times.
 
1777
     performance regularity, but works with various data input sizes,
 
1778
     by applying regression over observed execution times.
1782
1779
     STARPU_REGRESSION_BASED uses an a*n^b regression form,
1783
1780
     STARPU_NL_REGRESSION_BASED uses an a*n^b+c (more precise than
1784
1781
     STARPU_REGRESSION_BASED, but costs a lot more to compute). For
2114
2111
In the Fork mode, StarPU will call the codelet function on one of the
2115
2112
CPUs of the combined worker. The codelet function can use
2116
2113
`starpu_combined_worker_get_size()' to get the number of threads it is
2117
 
allowed to start to achieve the computation. The CPU binding mask is
2118
 
already enforced, so that threads created by the function will inherit
2119
 
the mask, and thus execute where StarPU expected. For instance, using
2120
 
OpenMP (full source is available in `examples/openmp/vector_scal.c'):
 
2114
allowed to start to achieve the computation. The CPU binding mask for
 
2115
the whole set of CPUs is already enforced, so that threads created by
 
2116
the function will inherit the mask, and thus execute where StarPU
 
2117
expected, the OS being in charge of choosing how to schedule threads on
 
2118
the corresponding CPUs. The application can also choose to bind threads
 
2119
by hand, using e.g. sched_getaffinity to know the CPU binding mask that
 
2120
StarPU chose.
 
2121
 
 
2122
   For instance, using OpenMP (full source is available in
 
2123
`examples/openmp/vector_scal.c'):
2121
2124
 
2122
2125
     void scal_cpu_func(void *buffers[], void *_args)
2123
2126
     {
2208
2211
object of the hwloc topology (NUMA node, socket, cache, ...) a combined
2209
2212
worker will be created. If some nodes of the hierarchy have a big arity
2210
2213
(e.g. many cores in a socket without a hierarchy of shared caches),
2211
 
StarPU will create combined workers of intermediate sizes.
 
2214
StarPU will create combined workers of intermediate sizes.  The user
 
2215
can give some hints to StarPU about combined workers sizes to favor.
 
2216
This can be done by using the environment variables
 
2217
`STARPU_MIN_WORKERSIZE' and `STARPU_MAX_WORKERSIZE'. When set, they
 
2218
will force StarPU to create the biggest combined workers possible
 
2219
without overstepping the defined boundaries.  However, StarPU will
 
2220
create the remaining combined workers without abiding by the rules if
 
2221
not possible.  For example : if the user specifies a minimum and
 
2222
maximum combined workers size of 3 on a machine containing 8 CPUs,
 
2223
StarPU will create a combined worker of size 2 beside the combined
 
2224
workers of size 3.
2212
2225
 
2213
2226
5.9.5 Concurrent parallel tasks
2214
2227
-------------------------------
3054
3067
automatically at application shutdown.
3055
3068
 
3056
3069
   This will create a `paje.trace' file in the current directory that
3057
 
can be inspected with the ViTE trace visualizing open-source tool. More
3058
 
information about ViTE is available at <http://vite.gforge.inria.fr/>.
3059
 
It is possible to open the `paje.trace' file with ViTE by using the
3060
 
following command:
 
3070
can be inspected with the ViTE trace visualizing open-source tool
 
3071
(http://vite.gforge.inria.fr/).  It is possible to open the
 
3072
`paje.trace' file with ViTE by using the following command:
3061
3073
     % vite paje.trace
3062
3074
 
 
3075
   To get names of tasks instead of "unknown", fill the optional `name'
 
3076
field of the codelets, or use a performance model for them.
 
3077
 
 
3078
   By default, all tasks are displayed using a green color. To display
 
3079
tasks with varying colors, pass option `-c' to `starpu_fxt_tool'.
 
3080
 
3063
3081
 
3064
3082
File: starpu.info,  Node: DAG,  Next: starpu-workers-activity,  Prev: Gantt diagram,  Up: Off-line
3065
3083
 
3866
3884
   This section describes the C extensions implemented by StarPU's GCC
3867
3885
plug-in.  It does not require detailed knowledge of the StarPU library.
3868
3886
 
3869
 
   Note: as of StarPU 1.0.0, this is still an area under development
 
3887
   Note: as of StarPU 1.0.1, this is still an area under development
3870
3888
and subject to change.
3871
3889
 
3872
3890
* Menu:
4277
4295
   This section does not require detailed knowledge of the StarPU
4278
4296
library.
4279
4297
 
4280
 
   Note: as of StarPU 1.0.0, this is still an area under development
 
4298
   Note: as of StarPU 1.0.1, this is still an area under development
4281
4299
and subject to change.
4282
4300
 
4283
4301
   TODO
4324
4342
 
4325
4343
 -- Data Type: struct starpu_conf
4326
4344
     This structure is passed to the `starpu_init' function in order to
4327
 
     configure StarPU.  When the default value is used, StarPU
4328
 
     automatically selects the number of processing units and takes the
4329
 
     default scheduling policy. The environment variables overwrite the
4330
 
     equivalent parameters.
 
4345
     configure StarPU. It has to be initialized with `starpu_conf_init'.
 
4346
     When the default value is used, StarPU automatically selects the
 
4347
     number of processing units and takes the default scheduling
 
4348
     policy. The environment variables overwrite the equivalent
 
4349
     parameters.
4331
4350
 
4332
4351
    `const char *sched_policy_name' (default = NULL)
4333
4352
          This is the name of the scheduling policy. This can also be
6056
6075
     blocks until _all_ the NTAGS tags contained in the ID array are
6057
6076
     terminated.
6058
6077
 
 
6078
 -- Function: void starpu_tag_restart (unsigned ID)
 
6079
     This function can be used to clear the "already notified" status
 
6080
     of a tag which is not associated with a task. Before that, calling
 
6081
     `starpu_tag_notify_from_apps' again will not notify the
 
6082
     successors. After that, the next call to
 
6083
     `starpu_tag_notify_from_apps' will notify the successors.
 
6084
 
6059
6085
 -- Function: void starpu_tag_remove (starpu_tag_t ID)
6060
6086
     This function releases the resources associated to tag ID. It can
6061
6087
     be called once the corresponding task has been executed and when
6067
6093
     outside StarPU tasks (e.g. third-party libraries).  It is also
6068
6094
     provided as a convenient tool for the programmer, for instance to
6069
6095
     entirely construct the task DAG before actually giving StarPU the
6070
 
     opportunity to execute the tasks.
 
6096
     opportunity to execute the tasks. When called several times on the
 
6097
     same tag, notification will be done only on first call, thus
 
6098
     implementing "OR" dependencies, until the tag is restarted using
 
6099
     `starpu_tag_restart'.
6071
6100
 
6072
6101
 
6073
6102
File: starpu.info,  Node: Implicit Data Dependencies,  Next: Performance Model API,  Prev: Explicit Dependencies,  Up: StarPU Basic API